0
我在網站上找到了以下功能。對於特定的列,此函數將列值作爲逗號分隔值,如a,b,c,d等。有沒有一種方法可以將這些值取爲'a','b','c','d'等。如何修改rowconcat函數?
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.
這不會工作瑪尼。問題在於分隔符。沒有強制讀取值的符號。現在,代碼並沒有強制讀取。它採取了第一個'和最後一個',並打印介於兩者之間的任何謊言。 – MontyPython
對不起,我輸入時錯過了1個報價。添加''''||保持|| 「」「」 –