【发布时间】:2010-10-01 21:28:40
【问题描述】:
使用java.sql.Preparedstatement 意味着在解析查询时会进行字符转义,当我的数据中有单引号但当我的表名本身有单引号时查询不起作用(我我正在使用 Oracle 11g)。
这是我的代码:
Class.forName("oracle.jdbc.OracleDriver");
con = DriverManager.getConnection(
"jdbc:oracle:thin:client/adept@ind-db-02:1521:ind02");
PreparedStatement preparedStatement = con.prepareStatement(
"SELECT * FROM (?) where rownum=1");
preparedStatement.setString(1,"CLIENT.\"SR'tab\"");
ResultSet rs3=preparedStatement.executeQuery();
有没有办法使用准备好的语句从表名中转义单引号?
【问题讨论】:
-
为什么表名中有引号?
-
我无法控制表名称,它是 ETL 过程的一部分,需要从第三方数据源加载数据