2

我正在编写一个 Oracle 用户定义函数。如何将 listtagg 值 Pears、Oranges、Bananas、Apples 插入变量 products 并在函数中返回。

products VARCHAR2(4000);
BEGIN
SELECT LISTAGG(product_name, ', ') WITHIN GROUP (ORDER BY product_name DESC) "Product_Listing"
FROM products;
RETURN products;
4

1 回答 1

3

只需创建一个函数,声明一个字符串类型变量,将LISTAGG的值分配给该变量,然后返回它。

例如,

SQL> CREATE OR REPLACE
  2    FUNCTION func
  3      RETURN VARCHAR2
  4    IS
  5      str VARCHAR2(200);
  6    BEGIN
  7      SELECT LISTAGG(ename, ',') WITHIN GROUP (
  8      ORDER BY ename)
  9      INTO str
 10      FROM emp
 11      WHERE deptno = 10
 12      GROUP BY deptno;
 13      RETURN str;
 14    END;
 15    /

Function created.

SQL> select func from dual;

FUNC
--------------------------------------------------
CLARK,KING,MILLER

SQL>
于 2015-02-26T12:48:55.240 回答