Я использую 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()
из cx_Oracle
Я получаю следующую ошибку:
DatabaseError: ORA-00911: invalid character
Когда я помещаю его в SQL, он говорит:
SP2-0734: unknown command beginning "IF SQL%ROW..." - rest of line ignored.
Я пытаюсь сделать корзину UPDATE
, если у пользователя уже есть выбранная книга в корзине, и INSERT
, если в корзине нет текущих копий книги, которую он хочет.
Метод execute выглядит так:
ds.execute(sql,moreBooks=howMany,userID=userLoggedIn,bookNumber=booksToBuy)
и каждый из параметров генерируется пользователем с использованием rawinput()
, а затем проверяется на соответствие регулярному выражению.