游标 PLSQL 中的动态列名

Posted

技术标签:

【中文标题】游标 PLSQL 中的动态列名【英文标题】:Dynamic Column Name In Cursor PLSQL 【发布时间】:2015-07-30 08:18:07 【问题描述】:

我一直在处理 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;

谢谢。

【问题讨论】:

提供您尝试过的示例查询.. 不,你不能。列名必须是静态的。 嗨,我现在显示了我的查询。谢谢 【参考方案1】:

您可以使用动态 sql 来获取所有列名。见this

【讨论】:

以上是关于游标 PLSQL 中的动态列名的主要内容,如果未能解决你的问题,请参考以下文章

动态更改oracle游标中的列

『ORACLE』 PLSQL动态游标的使用(11g)

PLSQL - 游标不能在动态 sql 中使用

oracle动态查询通过sql获取游标变量

PLSQL中怎样获取未知结构的动态游标的字段名

如何实现Oracle数据库中的动态游标