行のバッチを既存のテーブルに挿入しようとすると、例外が発生します
ORA-00942:表またはビューが存在しません
テーブルがdbに存在することを確認でき、oraclesqldeveloperを使用してそのテーブルにデータを挿入できます。しかし、Javaでpreparedstatementを使用して行を挿入しようとすると、そのスローテーブルは存在しませんというエラーが発生します。
以下のエラーのスタックトレースを見つけてください
java.sql.SQLException: ORA-00942: table or view does not exist
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1889)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout>>(OracleStatement.java:2709)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
at quotecopy.DbConnection.insertIntoDestinationDb(DbConnection.java:591)
at quotecopy.QuoteCopier.main(QuoteCopier.java:72)
誰かがこのエラーの理由を提案できますか?
更新:問題は解決しました
データベース接続のプロパティ、またはテーブル名やビュー名に問題はありませんでした。問題の解決策は非常に奇妙でした。挿入しようとした列の1つは、Clobタイプでした。以前にOracleデータベースでclobデータを処理するのに多くの問題があったので、clobセッターを一時的な文字列セッターに置き換えて同じコードを問題なく実行し、すべての行が正しく挿入されたことを試してみました!!!。
すなわち。peparedstatement.setClob(columnIndex、clob)
に置き換えられました
peparedstatement.setString(columnIndex、 "String")
エラーテーブルまたはビューが存在する理由エラーは、clobデータの挿入中にエラーが発生したためにスローされました。誰か説明してもらえますか?
あなたの答えとコメントをどうもありがとう。