我有一个包含insert语句的Oracle表转储。其中一些表包含clob数据字段。如果我尝试使用SQL Developer恢复转储,我得到错误消息"ORA-01704: string literal too long“
现在,我尝试使用JDBC和Java恢复转储。问题是我已经有了完全组合的PreparedStatement,所以我不能将列的数据类型从string更改为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)
发布于 2012-07-15 01:39:41
如果字符串文字对于SQL Developer来说太长,那么对于JDBC也会太长,因为它是在服务器端解析的。
我建议您将文件转换为CSV或固定长度的文件。这应该不会太难,因为它是单个表的转储。所以每一行都会有一个相似的结构。甚至可以在文本编辑器中使用搜索/替换来完成此操作。
然后,您可以使用SQL Developer导入它(导入数据...在所需表格上的上下文菜单中)。
https://stackoverflow.com/questions/11485695
复制相似问题