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

8 EnterpriseDBPPAS9.2ベータ版の新しいOracle互換性機能

    PostgresPlus AdvancedServer9.2ベータに含まれるOracleの新機能の一部。それらのほとんどは製品にとって魅力的であり、誰かがOracleからPostgreSQLに移行した場合に必要です。製品自体にはさらに多くの新機能がありますが、Oracleの互換性に関連するいくつかの新機能について説明します。

    1。オブジェクトタイプのサポート: このバージョンでは、メンバー関数はサポートされていますが、MAPメンバー関数はまだサポートされていません。

    create or replace type mf_test as object
    (
    name varchar2(30),
    member function disp return varchar2
    );
    create or replace type body mf_test as
    member function disp return varchar2 is
    begin
    return 'Name : '||name;
    end;
    end;
    edb=# declare
    edb-# v_mf mf_test;
    edb$# begin
    edb$# v_mf := mf_test('Raghavendra');
    edb$# dbms_output.put_line(v_mf.disp());
    edb$# end;
    Name : Raghavendra

    EDB-SPL Procedure successfully completed

    2。 Pl / SQLサブタイプ: これで、PL / SQLブロック、サブプログラム、またはパッケージの宣言部分で独自のサブタイプを定義できます。

    Syntax: SUBTYPE subtype_name IS base_type[(constraint)] [NOT NULL];

    declare
    subtype hiredate is date not null;
    pfdate hiredate := sysdate;
    begin
    dbms_output.put_line(pfdate);
    end;
    06-OCT-12 19:53:44

    EDB-SPL Procedure successfully completed

    3。ドロップテーブルカスケードの制約: このオプションは、削除するテーブルを参照しているすべての外部キー制約を削除してから、テーブルを削除します。

    edb=# create table master(id int primary key);
    edb=# create table master1(id int references master(id));
    edb=# d master1
    Table "enterprisedb.master1"
    Column | Type | Modifiers
    --------+---------+-----------
    id | integer |
    Foreign-key constraints:
    "master1_id_fkey" FOREIGN KEY (id) REFERENCES master(id)

    edb=# drop table master cascade constraints;
    NOTICE: drop cascades to constraint master1_id_fkey on table master1
    DROP TABLE
    edb=# d master1
    Table "enterprisedb.master1"
    Column | Type | Modifiers
    --------+---------+-----------
    id | integer |

    4。パッケージ定義のTYPE:

    create or replace package t_pack as 
    type ftype is record(name varchar2(20));
    end;
    edb=# call t_pack.ftype('EDB');
    ftype
    -------
    (EDB)
    (1 row)

    5。ネストされたテーブルに対するTABLE()関数呼び出し: TABLE()を使用すると、テーブルのようにFROM句のコレクションをクエリできます。

    CREATE OR REPLACE TYPE string_a IS TABLE OF VARCHAR2(765);
    select * from table(string_a('abc','xyz')) ;
    column_value
    --------------
    abc
    xyz
    (2 rows)

    6。関数呼び出しでのUDTのIN/OUT: 関数udtabletype_inおよびudtabletype_outが、ネストされたテーブルでサポートされるようになりました。

    7。予約キーワードの使用法(LOG / CURRENT_DATE): これで、LOGワードを使用して関数に名前を付けることができます。また、CURRENT_DATEは、変数名に使用できます。

    edb=# create or replace function log(t text) return text as 
    begin
    return t;
    end;

    edb=# select log('EDB');
    log
    -----
    EDB
    (1 row)

    edb=# declare
    edb-# current_date date := '07-OCT-2012';
    edb$# begin
    edb$# dbms_output.put_line(current_date);
    edb$# end;
    07-OCT-12 00:00:00

    EDB-SPL Procedure successfully completed

    8。 STRING / NVARCHAR2データ型のサポート: 現在、マルチバイトデータのSTRINGデータ型とNVARCHAR2がテーブル列でサポートされています。 VARCHAR2およびNVARCHAR2にエイリアスされた文字列は、PPASデータ型のvarcharにマップされます。

    edb=# create table dtype( a string, b nvarchar2);
    CREATE TABLE
    edb=# d dtype
    Table "enterprisedb.dtype"
    Column | Type | Modifiers
    --------+-------------------+-----------
    a | character varying |
    b | character varying |

    ダウンロードとリリースノートのリンク:
    http://www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server/downloads


    1. Oracle .Net ManagedDataAccessエラー:タイプ「OracleInternal.Common.ConfigBaseClass」をアセンブリからロードできませんでした

    2. SQLServerの「datetime2」ストレージサイズを理解する

    3. グループ化されたMySQLデータから最新の日付を取得する

    4. MariaDBクラスターを使用したAmazonAWSでのホットスタンバイの構築