Ошибка Oracle ORA-01036: недопустимое имя / номер переменной - PullRequest
0 голосов
/ 06 мая 2018

Почему я получаю эту ошибку в БД Oracle?

cx_Oracle.DatabaseError: ORA-01036: недопустимое имя / номер переменной

cur.execute("select jobid, jobname, technology, skillset, salary, minimumexp from job where technology=:technology or int(salary)>=:int(salary) or int(minimumexp)<=int(minimumexp)",{"technology":technology,"int(salary)":int(salary),"int(minimumexp)":int(minimumexp)})

1 Ответ

0 голосов
/ 06 мая 2018

Я не думаю, что функция INT действительна в этом контексте; по крайней мере, это ничего не делает в Oracle. Если я не ошибаюсь, он конвертирует числа с плавающей точкой в целые числа . Если это так, попробуйте вместо этого использовать функцию TRUNC, так как INT в Python обрезает десятичные дроби.

Кроме того, кажется, что вы использовали знак двоеточия (который представляет параметр , верно?) В неправильном месте (должно быть перед именем параметра, а не INT (или TRUNC) функция).

Например:

No : or int(salary)   >= :int(salary)
Yes: or trunc(salary) >= trunc(:salary)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...