Oracle ODBC определяет переменную [Oracle] [ODBC] [Ora] ORA-00900: недопустимый оператор SQL - PullRequest
0 голосов
/ 26 октября 2018

Я использую драйвер Oracle ODBC и хочу динамически передавать переменные.Вот как выглядит мой запрос:

define val = 'Test';
select * from Table where Name = '&val'

Хотя этот запрос работает нормально в Oracle SQL Developer, я думаю, что я не пишу запрос для правильного выполнения драйвера ODBC.Есть предложения?

из журналов ODBC:

EXIT SQLExecDirectW с кодом возврата -1 (SQL_ERROR) "define val = 'Test'; \ aselect * из таблицы, где Name = '& val'; \0 "DIAG [42000] [Oracle] [ODBC] [Ora] ORA-00900: недопустимый оператор SQL

1 Ответ

0 голосов
/ 26 октября 2018

DEFINE допустимо в SQLPlus и SQLDeveloper, но не является допустимым оператором PL / SQL.

В PL / SQL вы должны сделать что-то вроде

DECLARE
  val   VARCHAR2(25) := 'Test';
  aRow  SOME_TABLE%ROWTYPE;
BEGIN
  SELECT *
    INTO aRow
    FROM SOME_TABLE
    WHERE NAME = val;
END;

Best ofудачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...