'SYSCS_UTIL.SYSCS_EXPORT_TABLE_LOBS_TO_EXTFILE'未被识别为函数或过程

时间:2013-11-18 23:51:16

标签: database file export derby

我正在使用德比数据库。使用准备好的语句并执行。 我没有非BLOB字段表的问题。如果表有blob并尝试导出到文件。然后出现这个错误。请帮我解决一下。我想我没有正确地发表声明。请指导我。在这里附上我的代码。提前谢谢。

java.sql.PreparedStatement statement = 
  connect.prepareStatement("CALL SYSCS_UTIL
                            .SYSCS_EXPORT_TABLE_LOBS_TO_EXTFILE(?,?,?,?,?,?,?)");
statement.setString(1, null);
statement.setString(2, "xyz");
statement.setString(3, "c:/derbytest/xyz.csv");
statement.setString(4, null);
statement.setString(5, null);
statement.setString(6, null);
statement.setString(7, "c:/derbytest/xyz.dat");

statement.executeUpdate();
statement.close();

这是错误:

Caused by: org.apache.derby.client.am.SqlException: 'SYSCS_UTIL.SYSCS_EXPORT_TABLE_LOBS_TO_EXTFILE' is not recognized as a function or procedure.
at org.apache.derby.client.am.Statement.completeSqlca(Unknown Source)
at org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source)
at org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown Source)
at org.apache.derby.client.net.NetStatementReply.readPrepare(Unknown Source)
at org.apache.derby.client.net.StatementReply.readPrepare(Unknown Source)
at org.apache.derby.client.net.NetStatement.readPrepare_(Unknown Source)
at org.apache.derby.client.am.Statement.readPrepare(Unknown Source)
at org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInput(Unknown Source)
at org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(Unknown Source)
at org.apache.derby.client.am.PreparedStatement.prepare(Unknown Source)
at org.apache.derby.client.am.Connection.prepareStatementX(Unknown Source)
... 3 more

1 个答案:

答案 0 :(得分:0)

您是否有可能使用太旧的Derby版本?该程序在DERBY-378的版本10.3.1.4中添加到Derby中。见https://svn.apache.org/viewvc/db/derby/code/tags/10.3.1.4/RELEASE-NOTES.html?view=co

对于许多系统过程,如果在尝试准备呼叫时给出错误数量的参数,则会收到一条可怕的消息;这是DERBY-2859:https://issues.apache.org/jira/browse/DERBY-2859

但看起来你提供了正确数量的论点。

如果您可以使用小型独立测试程序重现此问题,我建议您联系derby-dev邮件列表并询问它们是否存在错误。

有一些Derby回归测试可以运行SYSCS_UTIL.SYSCS_EXPORT_TABLE_LOBS_TO_EXTFILE,所以它不像那个功能被破坏了。

我认为编译器不会给你一个非常好的错误信息。