私は 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)
Cursor.execute()
fromを使用するcx_Oracle
と、次のエラーが表示されます。
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()
、それに対してチェックします。