可能会引起(ORA-01006: 绑定变量不存在)的问题

有很多的时候各种原因都会引起这个问题,现在说一个比较小众的原因。

V_QUERY_SQL  =  ‘SELECT  COUNT(DISTINCT (B.BATCH_ID))  FROM T_DD_RES T
        JOIN T_DD_REQ Q
        ON T.ID_DD_REQ = Q.ID
        JOIN T_DD_BATCH B
        ON T.BATCH_ID = B.BATCH_ID  WHERE T.INSERT_TIME >= TRUNC(PI_DATE)
         AND T.INSERT_TIME < TRUNC(PI_DATE) + 1
         AND Q.REQUEST_DATE >= TRUNC(PI_DATE)
         AND Q.REQUEST_DATE < TRUNC(PI_DATE) + 1 
         AND B.CDATE >= TRUNC(PI_DATE)
         AND B.CDATE < TRUNC(PI_DATE) + 1’

OPEN PO_EXPCUR FOR V_QUERY_SQL USING …

存储过程中的SQL如上边代码,在调用的时候抛出了ORA-01006: 绑定变量不存在的异常,查看SQL语句的时候,确定所有的变量都是存在的。但是为什么会抛出这个异常?

最终找到原因,因为SQL语句返回的是一个整型的值,而我们这里却把这个值给到了游标,所以抛出了这个异常。把游标相关语句改为如下SQL就一切正常了。

EXECUTE IMMEDIATE V_QUERY_SQL INTO PO_AMOUNT USING…

猜你喜欢

转载自blog.csdn.net/sundacheng1989/article/details/91962326
今日推荐