sql >> データベース >  >> RDS >> PostgreSQL

PostgresPlus AdvancedServer9.3Betaの新しいOracle互換機能

    EnterpriseDB製品のPostgresPlusAdvancedServerについて簡単に説明すると、Oracle互換機能を備えたPostgreSQLコミュニティバージョンに基づいて構築されており、再コーディングせずに既存のOracleアプリケーションで実行でき(通常は移行に必要)、企業はOpenのメリットを享受できます。 PostgresPlusAdvancedServerを使用したソースデータベース。

    PostgresPlus Advanced Server 9.3 Betaは、コミュニティPostgreSQL 9.3 Beta機能に基づいて構築されているため、Oracleスタイルの構文、パッケージ、SQL関数など、ベータ版で導入されたさまざまなOracle互換機能があります。PPAS9.3BETAで実行された例のいくつかを以下に示します。

    マテリアライズドビューの構文:

    CREATE MATERIALIZED VIEW name [build_clause][create_mv_refresh] AS subquery
    Where build_clause is:
    BUILD {IMMEDIATE | DEFERRED}
    Where create_mv_refresh is:
    REFRESH [COMPLETE] [ON DEMAND]

    • ビルドの延期 –このオプションでは、データは作成時にMVに入力されず、代わりにREFRESHMATERIALIZEDVIEWを使用して後で入力されます。
    • 即時ビルド –このオプションでは、作成時にテーブルからMVに入力されたデータ(デフォルト)

    edb=# create materialized view mymview1 
    build immediate
    as select ename,sum(sal) from emp group by ename;
    SELECT 14
    edb=# create materialized view mymview2
    build deferred
    as select ename,sum(sal) from emp group by ename;
    SELECT 0

    上記の出力からわかるように、「BUILD IMMEDIATE」は作成時にすべての行に入力されますが、「BUILD DEFERRED」は、後でREFRESHMATERIALIZEDVIEWを使用して入力する必要があるダミーオブジェクトを作成しただけです。

    >
    edb=# refresh materialized view mymview2 ;
    REFRESH MATERIALIZED VIEW
    edb=# select count(*) from mymview2;
    count
    -------
    14
    (1 row)

    REFRESH [COMPLETE] [ON DEMAND]モードは、マテリアライズド・ビューの作成時にもサポートされます。

    その他のOracleSQL関数のサポート:
    REGEXP_SUBSTR()

    edb=# SELECT REGEXP_SUBSTR('EDB documentation AT http://www.enterprisedb.com/','http://([[:alnum:]]+){3,4}/?') as RESULT FROM dual;
    result
    ------------
    http://www
    (1 row)

    REGEXP_COUNT()

    edb=# select regexp_count('I am in PG-Mailing list','i',1,'i');
    regexp_count
    --------------
    5
    (1 row)

    REGEXP_INSTR()

    edb=# SELECT REGEXP_INSTR('PostgreSQL','P') "position" FROM dual;
    position
    ----------
    1
    (1 row)

    RAWTOHEX()/ HEXTORAW()

    edb=# CREATE TABLE test (raw_col RAW(10));
    CREATE TABLE
    edb=# INSERT INTO test VALUES (HEXTORAW('7D'));
    INSERT 0 1
    edb=# select * from test ;
    raw_col
    ---------
    x7d
    (1 row)

    edb=# select rawtohex(raw_col) from test ;
    rawtohex
    ----------
    7d
    (1 row)

    その他のOracleパッケージのサポート:

    DBMS_SCHEDULER
    DBMS_RANDOM
    DBMS_CRYPTO
    DBMS_MVIEW
    DBMS_LOCK.sleep
    UTL_HTTP
    UTL_ENCODE
    UTL_URL

    詳細については、リリースノートを参照してください:
    http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf


    1. SQLServerはグループから最初の行を選択します

    2. SQL Server Parallel Backup Restore -1

    3. SQLServerの日付と時刻のデータ型の比較

    4. Excelの日付のシリアル番号を通常の日付に変換します