Oracle PL / SQL函数

时间:2017-03-01 05:49:56

标签: oracle

我有一个汇合52列的功能

create or replace FUNCTION get_one_row(i_code IN integer) RETURN CLOB IS
  l_columns  VARCHAR2(2000);
  l_res      CLOB;
BEGIN
  SELECT listagg(column_name,' || ') WITHIN GROUP(ORDER BY column_name ASC) AS GRAFIK
  INTO  l_columns
  FROM  user_tab_columns
  WHERE TABLE_NAME = 'GRAFIK';
  EXECUTE IMMEDIATE 'SELECT '||l_columns||' FROM grafik WHERE kod_sotr=:A' INTO l_res USING i_code;
  RETURN l_res;
END;

表Grafik有工人,年和周,其中 指定他们的假期字母y或o 在退出功能显示

2017109909уууууооооо

首先,结论中的含义非常融合,并且不习惯浏览它们。如何划分意义?

1 个答案:

答案 0 :(得分:0)

您可以编辑动态SQL以在列之间添加分隔符;例如:

SELECT listagg(column_name,' || '', '' || ') WITHIN GROUP(ORDER BY column_name ASC) AS GRAFIK

将在列的值

之间添加逗号