1

複数の列に列エイリアスを自動的に割り当てたい。私のテーブルには通常、最小 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

誰かがこれで私を助けてくれますか?

4

1 に答える 1

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;
于 2013-02-17T13:50:41.820 に答える