Oracle Database 12cでのPL/SQLの使用。PL/SQL:行を1つの文字列に結合する方法
私はこのようなテーブルがあります。私はこの文字列を作成したい
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;
しかし、私は今、オラクルでこれをやろうとしていると私はそれが仕事を得ることができません。私のようないくつかのメソッド試してみた:
DECLARE
str varchar(100) := coalesce(str || ', ', '') || CONCAT(filename, ', ', priority)
FROM table_name;
をしかし、私は、このエラーを与えられました。私も同じようLISTAGGを試してみました
「次のいずれかを期待する場合、 『FROM』 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