Oracle Database 12c에서 PL/SQL 사용. PL/SQL : 행을 하나의 문자열로 결합하는 방법
는이 같은 테이블이 있습니다filename | priority
---------- -----------
foo | 1
bar | 2
baz | 3
내가이 문자열을 만들려면 : foo는, (1), 바, 2, 바즈을
이 작업을 수행하는 가장 좋은 방법은 무엇입니까 3? 이전에 나는 SQL 서버를 사용하고이 일 :
DECLARE
@str varchar(100)
SELECT @str = COALESCE(@str + ', ', '') + CONCAT(filename, ', ', priority)
FROM table_name;
하지만 지금은 오라클에서이 작업을 수행하기 위해 노력하고있어 나는이 일을 얻을 수 없습니다. 내가 좋아하는 몇 가지 방법을 시도했다 :
DECLARE
str varchar(100) := coalesce(str || ', ', '') || CONCAT(filename, ', ', priority)
FROM table_name;
을하지만,이 오류를 받았다 : 나는 또한 같은 listagg을 시도
"다음 중 하나를 예상 할 때"보낸 사람 "PLS-00103은 기호가 발생했습니다" :
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