Переменные в QTODBC для Oracle - PullRequest
       0

Переменные в QTODBC для Oracle

0 голосов
/ 17 января 2019

В QTODBC с базой данных sqlServer я могу сделать:

declare @client int
set @client = 5
select * from clients where client = @client

Но это не работает, когда БД - Oracle. Какой самый простой способ сделать то же самое (без функций, процедур или подобного, если это возможно ...).

Я пробовал как:

declare
    client number;
begin
    client := 1234;
    select * from clients where client = &client;
end;

но это тоже не работает ...

Любая помощь?

Большое спасибо !!!

Ответы [ 2 ]

0 голосов
/ 17 января 2019

12с и выше, используйте dbms_sql.return_result

DECLARE
     l_client   NUMBER := 1234;
     x          SYS_REFCURSOR;
BEGIN
     OPEN x FOR SELECT *
                  FROM clients
                WHERE client = l_client;
     dbms_sql.return_result(x);
END;
/

для предыдущих версий, используйте refcursor переменную связывания и print команду

VARIABLE x REFCURSOR
DECLARE
     l_client   NUMBER := 1234;
     x          SYS_REFCURSOR;
BEGIN
     OPEN :x FOR SELECT *
                  FROM clients
                WHERE client = l_client;
END;
/

PRINT x
0 голосов
/ 17 января 2019

Попробуйте это, должно работать ;-)

    declare
        v_client number;
    begin
        v_client := 1234;
        select * from clients where client = v_client;
    end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...