列名作为PL/SQL ORACLE中的变量

gri*_*dov 3 oracle plsql

我想有一个代码,我将列名称声明为变量,然后使用此变量从某个表中检索所需的列.

DECLARE
col_n VARCHAR (100) := 'X' ;
BEGIN
select col_n from my_table;
END;
Run Code Online (Sandbox Code Playgroud)

在Oracle中,最简单明了的方法是什么?

Kla*_*sen 12

您可以使用动态sql执行您构造为字符串的查询.它会沿着这些方向发展:

DECLARE
col_n VARCHAR (100) := 'X' ;
plsql_block VARCHAR2(500);
BEGIN
    plsql_block := 'select ' || col_n  || ' from my_table';
    EXECUTE IMMEDIATE plsql_block;
END;
Run Code Online (Sandbox Code Playgroud)

  • @zaratustra - 执行SELECT但不返回任何值.另一种方法是执行"EXECUTE IMMEDIATE"选择'|| col_n || 'from my_table'INTO SOME_VARIABLE`,或'EXECUTE IMMEDIATE'选择'|| col_n || 'from my_table'BULK收集到SOME_COLLECTION`.分享和享受. (2认同)