回答

收藏

Oracle SQL:对日期使用绑定变量

技术问答 技术问答 194 人阅读 | 0 人回复 | 2023-09-14

这是一个没有绑定变量的简单工作查询:
& M1 k5 K7 m, t3 N. Aselect * from table1 where time_stamp > sysdate - INTERVAL '1' day;
( R; I3 `' E/ U0 H5 m9 C- u7 B% G  N% v哪里time_stamp是类型DATE。$ ~* Z) W: v; K: T! U6 L5 M3 y
我应该能够使用绑定变量在上述查询中输入任意天数。& f; z) a9 ?% C6 \# L! H; u5 d! C1 S
因此,我尝试了以下操作,但似乎不起作用:
& ]. E; \7 K3 g) {6 _1 Fselect * from table1 where time_stamp > sysdate - INTERVAL :days day;+ k. N! {1 Y# n" K+ G2 ]
我尝试输入数字输入,例如10和‘10’。您在10g上收到 ORA-00933 错误。
- X' n6 W6 x2 Y) o               
$ X; D% I7 X- l& l9 [, c$ f解决方案:
, ~0 l& c- J3 r                ( w& X& w% r9 |

1 E* b  _) K1 d
6 m- H5 w3 P8 S                INTERVAL '1' day原始查询中的字符串是间隔文字,即解析器将其评估为单个值。您不能将其一部分替换为绑定变量。" h" n) ~9 `* E! S0 u- j/ g
如果改用NUMTODSINTERVAL( 1, 'DAY' ),则1是整数文字,您应该可以将其替换为绑定变量。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则