Динамическое имя столбца в Cursor PLSQL-Oracle

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

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

Мой запрос:

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

Благодарю.

1 ответ

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

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;
Другие вопросы по тегам