1
private final static String EXTERNAL_DATA_DIR_PATH = "E:/rptax/input/RPTAX_TAPEDATE_20120406";

PreparedStatement stmt1 = conn.prepareStatement("create or replace EXT_DATA_DIR as ?");
        stmt1.setString(1, EXTERNAL_DATA_DIR_PATH);
        stmt1.execute();

这给了我... java.sql.SQLException: ORA-01780: string literal required ?

4

1 回答 1

3

不能在 DDL 语句(例如CREATE DIRECTORY语句)中使用绑定变量。您必须使用字符串连接来生成 DDL(请注意,您也缺少DIRECTORY后面的关键字REPLACE)。

通常,您希望 Java 应用程序发布 DDL 是很不寻常的。您的目录对象应该作为安装脚本的一部分在数据库中创建,同时创建表和视图等其他数据库对象。

作为健全性检查,您EXTERNAL_DATA_DIR_PATH是数据库服务器上的一个目录,对吗?它不是应用服务器或客户端机器上的路径。

于 2012-04-19T16:56:58.217 回答