我在一个网站上找到了以下功能。对于特定列,此函数将列值作为逗号分隔值提供,例如 a、b、c、d 等。有没有办法可以将这些值作为'a','b','c','d'等等。
CREATE OR REPLACE FUNCTION rowconcat(q in VARCHAR2) RETURN VARCHAR2 IS
ret VARCHAR2(4000);
hold VARCHAR2(4000);
cur sys_refcursor;
BEGIN
OPEN cur FOR q;
LOOP
FETCH cur INTO hold;
EXIT WHEN cur%NOTFOUND;
IF ret IS NULL THEN
ret := hold;
ELSE
ret := ret || ',' || hold;
END IF;
END LOOP;
RETURN ret;
END;
我已经试过了
IF ret IS NULL THEN
ret := '''|| hold || ''';
ELSE
ret := ret || ',' || '''||hold || ''';
END IF;
它给我的结果是
'|| hold || ','||hold || ','||hold || ','||hold || ','||hold || ','||hold || ','||hold || ','||hold || ','||hold || ','||hold || and so on.