0

OracleデータベースにCLOB値を挿入したいのですが、これが私ができることです。「ORA-01461: LONG 列に挿入するためだけに LONG 値をバインドできます」という操作を挿入しているときに、この例外が発生しました。誰かが私に何をすべきか教えてくれますか? ありがとう。

List<Object> listObjects = dao.selectAll("TABLE NAME", new XRowMapper());
String queryX = "INSERT INTO X (A,B,C,D,E,F) VALUES (?,?,?,?,?,XMLTYPE(?))";
OracleLobHandler lobHandler = new OracleLobHandler();
for(Object myObject : listObjects) {
   dao.create(queryX, new Object[]{
     ((X)myObject).getA(),
     ((X)myObject).getB(),
     new SqlLobValue (((X)myObject).getC(), lobHandler),
     ((X)myObject).getD(),
     ((X)myObject).getE(),
     ((X)myObject).getF()
     },
     new int[] {Types.VARCHAR,Types.VARCHAR,Types.CLOB,Types.VARCHAR,Types.VARCHAR,Types.VARCHAR});
}
4

2 に答える 2

0

パラメータの順序は正しいですか? SQL ステートメントに 6 番目のパラメーターとして LOB があるようですが、LOB を 3 番目のパラメーターとして設定しています。

また、すべて文字列値getA()getF()返すと思いますか?

于 2010-05-05T21:19:34.693 に答える
0

最初に行うことは、挿入から列 C または F のいずれかを削除して、どちらがエラーの原因であるかを判断することです。

于 2010-05-05T22:38:32.520 に答える