Показаны сообщения с ярлыком blocks. Показать все сообщения
Показаны сообщения с ярлыком blocks. Показать все сообщения

четверг, 17 ноября 2016 г.

Получение значения из SQL-запроса с вычисляемым наименованием колонки

/* Пример блочного выполнения PL/SQL с вычисляемым наименованием колонки в переменной myCOLUMN и запоминанием результата такого запроса в переменной myRESULT */
DECLARE
    myRESULT varchar(255);
    myCOLUMN varchar(255) := 'user_id';
BEGIN
    execute immediate 'select '||myCOLUMN||' from dba_users where rownum = 1' into myRESULT;
    dbms_output.put_line(myRESULT);
END;

Для сравнения
Тот же пример, но без вычисляемого наименования колонки, т.е. без "execute immediate":
DECLARE
    myRESULT varchar(255);
BEGIN
    select user_id into myRESULT from dba_users where rownum = 1;
    dbms_output.put_line(myRESULT);
END;

вторник, 11 августа 2015 г.

sub_var (Oracle)

Можно задавать переменные прямо в SQL-редакторе IDE, например, вместо
select 'test' from dual;
можно выполнить:
define myvar='dual'
select 'test' from &myvar;
т.е. название таблицы "DUAL" я поместил в переменную "myvar", а затем обратился к этой переменной из запроса "SELECT".

Для подстановки переменной для замены "OWNER" в конструкции:
SELECT * FROM OWNER.TABLE
нужно дублировать "точку", например, вместо:
select * from SCOTT.DEPT
пишем:
define myowner='SCOTT'
define myowner_to_run='&myowner..'
select * from &myowner_to_run.DEPT.


По мотивам: sub_var, sub_var2.

Архив