新機能

このリリースのEDBPostgres移行ポータルには、次の機能強化が追加されています。

  • 選択したスキーマのオブジェクトが移行に失敗した理由は、ワークスペースページの Common Failures タブで確認できます。

common failures tab
  • プロジェクトの一般的な失敗のCSVファイルをダウンロードできます。

csv file download
  • プロジェクトまたはスキーマの互換性が70%未満の場合、または複数回試行してもDDLが成功しない場合は、警告メッセージが表示されます。オンラインリンクから、移行の支援のために、`<migration-services@enterprisedb.com>`__のEDBエキスパートにすばやくアクセスできます。

warning sign
  • `FAQページ<https://www.enterprisedb.com/migration-portal-faqs>`_は、最新のよくある質問で定期的に更新されます。

  • ユーザーエクスペリエンスを向上させるために、新しいUI以下に変更が加えられました。

修復ハンドラ

新しい修復ハンドラ

AdvanceServerの互換性比を改善するために、次の修復ハンドラーが追加されました。

  • ERH1011-ブロックコメントターミネーター:

    プロシージャ、関数、パッケージ、パッケージボディ、トリガー、ビュー、およびタイプボディ内の未終了のブロックコメントにブロックコメントターミネータ */ を追加します。

    例:

 CREATE OR REPLACE FUNCTION example_unterminated (
     input_str  IN VARCHAR2
 )
/***************************************************************************
  Function      : example_unterminated
  Author        : EnterpriseDB
  Description   : Returns substring
/***************************************************************************
 Change
 Date          : sysdate
 Changes       : new changes
/***************************************************************************/
 RETURN VARCHAR2
 AS
   var1         VARCHAR2(50);
 BEGIN
   RETURN( SUBSTR(input_str) ) ;
 END example_unterminated;

以下に変更;

CREATE OR REPLACE FUNCTION example_unterminated (
input_str  IN VARCHAR2
)
/**************************************************************************
   Function      : example_unterminated
   Author        : EnterpriseDB
   Description   : Returns substring
*/
/**************************************************************************
    Change
    Date          : sysdate
    Changes       : new changes
*/
/**************************************************************************/
RETURN VARCHAR2
AS
  var1         VARCHAR2(50);
BEGIN
  RETURN( SUBSTR(input_str) ) ;
END example_unterminated;

修復ハンドラーを更新

次の修復ハンドラーが更新されました。

  • ERH2055-インデックス句の使用はサポートされていません

    パーティションテーブルのDDLステートメントからUSINGINDEXLOCAL/GLOBAL句を削除します。

    例:例1:

    CREATE TABLE tab(
       ID INT,
       OPEN_STATUS INT,
       CLOSED_DATE DATE,
       CONSTRAINT tab_pk PRIMARY KEY (ID, OPEN_STATUS,
       CLOSED_DATE) USING INDEX LOCAL (PARTITION CLOSED, PARTITION
       OPEN ) ENABLE
    ) PARTITION BY RANGE (OPEN_STATUS,CLOSED_DATE)
       (PARTITION CLOSED VALUES LESS THAN (0, MAXVALUE),
       PARTITION OPEN VALUES LESS THAN (1, MAXVALUE) );
    

    以下に変更;

CREATE TABLE tab(
   ID INT,
   OPEN_STATUS INT,
   CLOSED_DATE DATE,
   CONSTRAINT tab_pk PRIMARY KEY (ID, OPEN_STATUS, CLOSED_DATE)
) PARTITION BY RANGE (OPEN_STATUS,CLOSED_DATE)
   (PARTITION CLOSED VALUES LESS THAN (0, MAXVALUE),
   PARTITION OPEN VALUES LESS THAN (1, MAXVALUE) );

例2:

CREATE TABLE tab2(
    ID NUMBER(19,0) NOT NULL ENABLE,
    P_DATE DATE,
    CONSTRAINT tab2_pk PRIMARY KEY (ID)
    USING INDEX  GLOBAL PARTITION BY HASH (ID)
    (PARTITION SYS_P255 ,
    PARTITION SYS_P256 )
    )
PARTITION BY RANGE (P_DATE) INTERVAL (NUMTODSINTERVAL(7,''DAY''))
(PARTITION P_FIRST  VALUES LESS THAN (TO_DATE(''2017-01-04
00:00:00'', ''SYYYY-MM-DD HH24:MI:SS'',
''NLS_CALENDAR=GREGORIAN'')) )  ;

以下に変更;

CREATE TABLE tab2(
  ID NUMBER(19,0) NOT NULL ENABLE,
  P_DATE DATE,
  CONSTRAINT tab2_pk PRIMARY KEY (ID)
  )
PARTITION BY RANGE (P_DATE) INTERVAL (NUMTODSINTERVAL(7,''DAY''))
(PARTITION P_FIRST  VALUES LESS THAN (TO_DATE(''2017-01-04
00:00:00'', ''SYYYY-MM-DD HH24:MI:SS'',
''NLS_CALENDAR=GREGORIAN'')) )

ナレッジベース

新しいナレッジベースのエントリ

次の新しいナレッジベースエントリが追加されました。回避策の詳細については、移行ポータルのナレッジベースセクションを参照してください。

  • 剰余関数:

    In Oracle, the REMAINDER function behaves differently than the MOD function. However, Advanced Server does not support the REMAINDER function.

  • BFILENAME関数:

    In Oracle, the BFILENAME function returns the BFILE locator object from a specified directory and filename. This function is used to access the data within the BFILE.

  • 中央値関数:

    Oracleは、式の値の中央値を計算する MEDIAN 関数をサポートしています。AdvancedServerバージョン12は、MEDIAN機能をサポートしています。ただし、AdvancedServerの以前のバージョンはこの機能をサポートしていません。

  • SOUNDEX関数:

    Oracle supports the SOUNDEX function to return a string that contains the phonetic representation of a string. In Advanced server, the SOUNDEX function can be used after creating a fuzzystrmatch extension.

  • DBMS_UTILITYパッケージ:

    Oracle uses the COMPILE_SCHEMA procedure in the DBMS_UTILITY package to compile all procedures, functions, packages, and triggers in the specified schema. However, the COMPILE_SCHEMA procedure does not exist in the EDB Advanced Server DBMS_UTILITY package. Hence while deploying the migrated schema on EDB Advanced Server, a runtime error occurs.

  • DBMS_DDL.WRAPおよびCREATE_WRAPPED関数:

    In Oracle, DBMS_DDL.WRAP or DBMS_DDL.CREATE_WRAPPED function is used to obfuscate code. However, in Advanced Server, EDBWRAP function is used for obfuscation. Before migrating schema, you must unwrap the PL/SQL object from Oracle and then wrap the PL/SQL object in Advanced Server using EDBWRAP utility.

  • OracleTZ_OFFSET関数:

    Oracleでは、指定した値に対応するタイムゾーンオフセットを取得するために TZ_OFFSET() が使用されます。ただし、AdvancedServerでは、AdvancedServerカタログ pg_timezone_names に関数を記述したり、直接 pg_timesone_names をクエリしてタイムゾーンオフセットを取得したりできます。

ナレッジベースのエントリを更新

次のナレッジベースエントリが更新されました。

  • ステートメントをマージ:

    Oracleでは、テーブルを条件付きで挿入または更新するために MERGE ステートメントが使用されます。AdvancedServerでは、 ON CONFLICT DO UPDATE または UPSERT ステートメントを使用できます。