最初に少し背景を説明します。私の会社は、InformixデータベースをOracle10gに移行するかどうかを評価しています。いくつかのESQL/Cプログラムがあります。私はOracleMigrationワークベンチをいくつか実行し、いくつかのテストを混乱させてきました。今、私はいくつかのことに気づきました。
まず、null値をまったく処理しない動的SQLステートメントがあります。私が読んだことから、nvl()関数を利用するようにクエリを手動で変更するか、インジケーター変数を実装する必要があります。誰かが手動で変更する必要があるかどうかを確認できますか?変換されたESQL/Cプログラムに手動で変更を加える必要が少ないほど、優れています。
次に、さまざまなテーブルなどから日付を取得するクエリがいくつかあります。Informixでは、日付は1899年12月31日からの日数であるlong型として扱われます。
Pro * Cでは、日付はどの形式として選択されていますか?long変数に日付フィールドを選択しようとしたところ、「NUMBERが期待されましたが、DATEが取得されました」というOracleエラーが発生したため、数値ではないことがわかりました。したがって、日付フィールドの選択方法を変更する必要があると想定しています。日付フィールドを変換して長くなるように選択するか(つまり、1899年12月31日からの日数)、ホストを変更します。 Oracleが返すものと一致する変数(それは何ですか、文字列?)。