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
部分来声明变量,程序使用BEGIN
到END
。使用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