如何将 SELECT LISTAGG 值插入到 varchar 变量

How to insert SELECT LISTAGG values to varchar variable

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

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

只需创建一个函数,声明一个字符串类型变量,赋值LISTAGG 到变量,然后 return 它。

例如,

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>