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:需要字符串文字吗?
答案 0 :(得分:3)
您不能在DDL语句中使用绑定变量,例如CREATE DIRECTORY
语句。您必须使用字符串连接来生成DDL(请注意,您在DIRECTORY
之后也错过了关键字REPLACE
)。
通常,您希望Java应用程序发出DDL是相当不寻常的。您的目录对象应该作为安装脚本的一部分在数据库中创建,同时创建其他数据库对象(如表和视图)。
作为完整性检查,您的EXTERNAL_DATA_DIR_PATH
是数据库服务器上的目录,对吧?它不是应用程序服务器或客户端计算机上的路径。