在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