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 ?
最佳答案
您不能在 DDL 语句中使用绑定(bind)变量,例如 CREATE DIRECTORY
语句。您必须使用字符串连接来生成 DDL(请注意,您在 REPLACE
之后也缺少关键字 DIRECTORY
)。
一般来说,您希望 Java 应用程序发布 DDL 是很不寻常的。您的目录对象应该作为安装脚本的一部分在数据库中创建,同时创建其他数据库对象(如表和 View )。
作为完整性检查,您的 EXTERNAL_DATA_DIR_PATH
是数据库服务器上的一个目录,对吗?它不是应用程序服务器或客户端计算机上的路径。
关于java - ORA-01780 : string literal required using prepared statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232943/