【发布时间】:2011-11-21 19:51:48
【问题描述】:
我正在使用 python 2.7 和 cx_Oracle 模块。当我尝试运行以下查询时:
UPDATE bs_cart
SET qty = qty + :moreBooks
WHERE userid = :userID
AND isbn = :bookNumber;
IF SQL%ROWCOUNT = 0 THEN
INSERT INTO bs_cart
(userid,isbn)
VALUES
(:userID,:bookNumber)
使用来自cx_Oracle 的Cursor.execute() 我收到以下错误:
DatabaseError: ORA-00911: invalid character
当我把它放在 SQL plus 中时,它说:
SP2-0734: unknown command beginning "IF SQL%ROW..." - rest of line ignored.
如果用户已经在购物车中拥有所选书籍,我将尝试创建购物车 UPDATE,如果购物车中没有他们想要的书籍的当前副本,我将尝试创建 INSERT。
执行方法如下:
ds.execute(sql,moreBooks=howMany,userID=userLoggedIn,bookNumber=booksToBuy)
每个参数都是用户使用rawinput() 生成的,然后根据正则表达式进行检查。
【问题讨论】:
标签: oracle cx-oracle ora-00911