intra-mart Accel GroupMail 移行ツールガイド 第3版 2022-12-01

4.2.3. iAG へのデータ登録

iAG のテナントデータベースとして利用するスキーマに対して、出力した「migration.sql」を実行してください。

コラム

「migration.sql」にはクライアントのシステム変数の設定、及び commit文が含まれていません。

sqlplus や Oracle SQL Developer で実行する際、 SQL中の &(アンパサンド)で始まる単語は変数として解釈され、 また空白のみの行はSQL文終端として扱われる場合があります。 これを無効化するには「migration.sql」の実行の前に 以下を実行しておきます。

SET DEFINE OFF
SET SQLBLANKLINES ON

また自動コミットが無効の場合、「migration.sql」の実行後に必ずcommit文を実行してください。

注意

「migration.sql」にはメール本文の内容がそのまま含まれるため、メールの内容によっては以下のような文字列が発生することがあります。

  • 行末が ; (セミコロン)、または ; (セミコロン)と一つ以上の空白で終わる。
  • / (スラッシュ)のみの行。

上記のようなデータは sqlplus で実行してしまうといずれもSQL文の終端として認識されてしまうため、正常に登録が完了しないおそれがあります。 この場合、 Oracle SQL Developer のような GUI ツールのご利用を検討いただくか、 migration.sql の内容を直接編集し問題ない形に修正の上実行してください。

注意

移行先のデータベースにデータ登録を行う際、sqlplus等の、JDBCを使用しない方法でデータ登録を行う場合は、UTF-8とAL32UTF8を厳密に区別してデータ登録を行う必要があるため、注意が必要です。 下記にsqlplusを使用してデータ登録を行う場合の例を示します。 (NLS_LANG環境変数にAL32UTF8 (OS上のUTF-8と等価) を指定し、データベース上でUTF-8 (Oracleで使用される古いUTF-8) として取り扱われないようにします。)

$ export NLS_LANG=Japanese_Japan.AL32UTF8
$ sqlplus /nolog
SQL> SET DEFINE OFF
SQL> SET SQLBLANKLINES ON
SQL> conn username/password
SQL> @migration.sql
SQL> commit;
SQL> exit
$