在Oracle Database 12c上使用PL/SQL。PL/SQL:如何將行組合成一個字符串
我有這樣的一個表:
filename | priority
---------- -----------
foo | 1
bar | 2
baz | 3
我要創建這個字符串:FOO,1條,2,巴茲,3
什麼是做到這一點的最好方法是什麼?以前我用SQL Server和這工作:
DECLARE
@str varchar(100)
SELECT @str = COALESCE(@str + ', ', '') + CONCAT(filename, ', ', priority)
FROM table_name;
但我想現在要做到這一點在Oracle中,我無法得到它的工作。我已經嘗試了一些方法,如:
DECLARE
str varchar(100) := coalesce(str || ', ', '') || CONCAT(filename, ', ', priority)
FROM table_name;
但我得到了這個錯誤,:「期待的下列之一,當‘
我也試着像LISTAGG’PLS-00103出現符號」 FROM :
listagg(filename|| ',' || priority, ',') within group (order by priority) as str
from table_name;
這給我的錯誤,「PLS-00103:出現符號‘在’在需要下列之一時」
我在做什麼錯?
'DECLARE ... FROM TABLE_NAME' ??? –
爲什麼你需要一個過程(和PL/SQL)代碼?你可以用普通的SQL來做到這一點。那麼 - 爲什麼你需要這樣做?可能有(很多)更好的方法來做你需要的東西;如果你能解釋爲什麼你需要它,我們可能會提供幫助。 – mathguy
我正在修改用PL/SQL編寫的現有代碼以包含新功能。 – Murasaki