2015-07-31 3 views
0

Я работаю над запросом в pl/sql. У меня почти одинаковые столбцы, такие как column1, column2, column3.Динамическое имя столбца в курсоре PLSQL-Oracle

В Cursor, как я могу получить значение этих столбцов, используя динамическое имя.

Мой запрос:

FOR Cursor_r IN Cursor_c LOOP 
    BEGIN 

     IF Cursor_r.column1 = 'dummy1' THEN 
      MyProc(Cursor_r.column1); 
     ELSIF Cursor_r.column1 = 'dummy2' THEN 
      MyProc(Cursor_r.column2); 
     ELSIF Cursor_r.column1 = 'dummy3' THEN 
      MyProc(Cursor_r.column3); 
     END IF; 

    END; 
END LOOP; 

мне нужна какая-то структура динамически решение для этих столбцов.

Это не будет работать, но НАПРИМЕР, как это или другое решение:

Cursor_r.column||1 Cursor_r.column||2

Спасибо.

+2

Я не понимаю ваш вопрос. Вы определили cursor_c где-то. поэтому вы знаете, что такое столбцы. – Rene

+0

Взгляните на пакет DBMS_SQL из oracle. – DirkNM

+0

@Rene Я отредактировал мой вопрос, спасибо. – junior

ответ

0

Вы не можете этого сделать. Вы можете сделать это вместо этого:

FOR Cursor_r IN Cursor_c LOOP 
    BEGIN 
     MyProc 
      (CASE Cursor_r.column1 
        WHEN 'dummy1' THEN Cursor_r.column1 
        WHEN 'dummy2' THEN Cursor_r.column2 
        WHEN 'dummy3' THEN Cursor_r.column3 
        END 
      ); 
    END; 
END LOOP; 
Смежные вопросы