Cursor PLSQL-Oracle中的动态列名

时间:2015-07-31 07:43:06

标签: oracle plsql dynamicquery

我正在使用pl / sql进行查询。我的命名列几乎与 column1,column2,column3 相同。

在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

感谢。

1 个答案:

答案 0 :(得分: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;