java - Oracle JDBC PreparedStatement 中的 TO_DATE 提供无效标识符
问题描述
我对此感到有些困惑,因为我确信我已经这样做了一百次,但是从这段 JDBC 准备语句中:
"SELECT {0} FROM " +
"(select a.* " +
"from TABLE a " +
"inner join TABLE p ON " +
"and p.AS_OF_DT = TO_DATE(?, 'yyyyMMdd')";
...
pStmt.setString(1, dateAsString);
我正进入(状态
java.sql.SQLSyntaxErrorException: ORA-00904: "YYYYMMDD": invalid identifier
我可以通过删除 YYYYMMDD 周围的引号来重现 TOAD 中的错误。
我需要在准备好的语句字符串中做什么来防止这种情况发生?
我努力了
- 使用 YYYYMMDD 的大写/小写
- 确保 dateAsString 格式正确
- 转义引号,例如 ''YYYYMMDD'' 和 '''YYYYMMDD'''
解决方案
推荐阅读
- java - 如何使用 ReactiveUserDetailsService springboot 通过 Rest API 登录
- java - 如何确定 WebSphere 应用程序是否真的在进行 XA 事务?
- assembly - 为什么 0xffffffc 是一个无效的访问地址?
- javascript - Ngbuild 带有 --prod 标志时出现 Angular5 错误
- git - 无法从 Eclipse 中的 Bitbucket 下载项目,出现“传输错误”
- python - FOR 循环的语法无效
- ios - 来自移动设备的公共 IP 地址
- simulation - omnet 如何处理来自未来事件集的消息?
- odata - 如何在 sap ui5 中将一个变量的值从一个控制器传递到另一个控制器
- python - 将 lineEdit 值设置为另一个类中的标签(Pyqt4)