INSERT ステートメントを含む Oracle テーブル ダンプがあります。一部のテーブルには、CLOB データ フィールドが含まれています。SQL Developer を使用してダンプを復元しようとすると、「ORA-01704: 文字列リテラルが長すぎます」というエラーが表示されます。
ここで、Java を使用して JDBC でダンプを復元しようとしました。問題は、完全に構成された PreparedStatement を既に持っているため、列のデータ型を文字列から clob に変更できないことです。
以下にアプリケーションを示します。
// strBufLine contains already the fully composed insert statement from the dump file
PreparedStatement pstmt = connection.prepareStatement("BEGIN " + strBufLine.toString() + " END;");
pstmt.executeUpdate();
pstmt.close();
この問題を解決する方法(別のプログラムを使用してダンプを復元する、他のダンプ手法、またはデータ型を clob に変更する方法)