ビューからオラクルの対応するテーブルにデータをコピーするプロセスを設計しました。「ビュー名」をパラメータとして渡すプロシージャを呼び出すだけで、対応するテーブルが作成されます(存在しない場合はドロップしてテーブルを作成します)。したがって、これは動的に発生し、約 50 のビューがあり、それらは Oracle ジョブとしてスケジュールされています。
今問題になっているのは、いくつかの日に以下のエラーで失敗するいくつかのテーブルがあります...
ORA-01723: 長さゼロの列は許可されていません
この理由は、ビュー内のいくつかの列が null であることは承知していますが、すべての日ではありません。はい、これらの列に CAST を使用する必要がありますが、前述したように、これは動的に発生するため、それらの列がどれであるか、またはどのビューであるかが事前にわかりませんか? テーブルの作成を開始する前に、ビューに「長さゼロの列」があるかどうかを特定して、解決策を考えることができます。これに対するより良い救済策は本当に感謝しています。
ノート:
- CREATE TABLE TABLE_NAME AS SELECT * FROM VIEW_NAME --> これが私のテーブル作成SQLです。
- これを選択した理由は、'INSERT INTO' は、ログとロックのために、より多くの時間とリソースを必要とする可能性があるためです。
ありがとう、ナーガ」