PL/SQL:如何将行组合成一个字符串

在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:出现符号‘在’在需要下列之一时”

我在做什么错?

回答:

Oracle中的存储过程由声明部分和执行部分组成。您可以使用DECLARE部分来声明变量,程序使用BEGINEND。使用SELECT INTO为您的变量选择一个值。

DECLARE 

v_str varchar(10000);

BEGIN

select

listagg(filename || ',' || priority, ',') within group (order by priority)

into v_str

from table_name;

...

END;

以上是 PL/SQL:如何将行组合成一个字符串 的全部内容, 来源链接: utcz.com/qa/266941.html

回到顶部