我想自动将列别名分配给多个列。我的表通常有20列。我试图避免写一些类似“column1 AS XXX_column1,column2 AS XXX_column2 ... x20”的内容。
我是PLSQL的新手,但我希望在标准SELECT子句中直接使用函数返回的乘法“column AS XXX_column”输出。
所以我编写了一个函数(RETURN数据类型为VARCHAR2)来生成列名。我想直接在我的SELECT语句中使用它。以下是此简化示例:
---功能
CREATE OR REPLACE FUNCTION simple RETURN varchar2 IS
BEGIN
RETURN ‘my_column’;
END simple;
---选择
SELECT simple FROM my_table;
这不起作用。似乎函数的输出作为引用传递,即
SELECT ‘my_column’ FROM my_table;
因此SELECT的输出是一个用值my_table填充的行列表:
COLUMN simple
ROW1 my_column
ROW2 my_column
ROW3 my_column
有人可以帮助我吗?
答案 0 :(得分:2)
CREATE OR REPLACE FUNCTION simple RETURN varchar2 IS
BEGIN
RETURN ‘my_column’;
END simple;
--- Select
DECLARE
myCol VARCHAR2(128);
BEGIN
myCol := simple;
EXECUTE IMMEDIATE 'SELECT ' || myCol || ' FROM my_table';
END;