2010-04-09 2 views
2

Я создаю динамический курсор, и я хотел бы перебрать столбцы, существующие в курсоре. Как мне это сделать?Как перемещаться по столбцам в оракуле pl/sql cursor

Например:

create or replace procedure dynamic_cursor(empid in varchar2, RC IN OUT sys_refcursor) as 
    stmt varchar2(100); 
    begin 
    stmt := 'select * from employees where id = ' || empid; 
    open RC for stmt using val; 

    for each {{COLUMN OR SOMETHING}} 
     --TODO: Get this to work 
    loop; 
end;  

ответ

3

Вам нужно будет использовать Oracle Dynamic SQL, скорее всего method 4.

EDIT: Извините, вышесказанное для Pro * C. Вам нужно будет использовать пакет DBMS_SQL. Это довольно сложно, но позволит вам анализировать, выполнять и извлекать любой произвольный запрос SQL, который вам нужен, во время выполнения. В частности, взгляните на примеры 3 и 8.

+0

У меня динамическая работа sql. Мой примерный код упрощен. Я хотел бы сделать, чтобы переменная stmt была намного более динамичной, до такой степени, что я не был бы привязан к набору полей. Вот почему я хочу, чтобы петли столбцов в курсоре. – Lloyd

Смежные вопросы