...少なくともそれが問題だと思います。
列の 1 つが予約語 NUMBER であるテーブルにアクセスするカーソル宣言を含む関数を作成しています (ええ、私は知っています..)。コンパイル時に関数に問題が発生しました。
エラー(16,10): PL/SQL: ORA-06552: PL/SQL: コンパイル単位分析が終了しました ORA-06553: PLS-488: 無効な変数宣言: オブジェクト 'NUMBER' はタイプまたはサブタイプである必要があります
私のコードは次のようになります。
CURSOR my_cur
IS
SELECT "NUMBER", col2, col3
FROM tb1_x;
それが問題であることを確認するために、コードを次のように変更しました
CURSOR my_cur
IS
SELECT 'NUMBER', 'col2', 'col3'
FROM dual;
それは問題なくコンパイルされましたが、明らかにそれは私が望んでいるものではありません。
残念ながら、列名を変更するオプションはありません(ため息)、そして記録のために
SELECT "NUMBER", col2, col3
FROM tb1_x;
通常の SQL 実行では問題なく動作します。
とにかく、この問題を回避できますか? どんな助けでも大歓迎です!