LISTAGG 関数を使用してテーブルからデータを取得することにより、新しく挿入された行を別のテーブルに挿入するトリガーを作成しています。ここに、insert ステートメントと select ステートメントがあります。ORA-00937: not a single-group group function エラーが発生します。カテゴリには、複数の値を ; で区切った文字列が必要です。. JOBS_JOBCLASS、JOBS_CLASSIFICATION テーブルからカテゴリを取得する他の方法はありますか?
スニペットは次のとおりです。
INSERT INTO jobs_tfour_data
(
jobid,
title,
reference,
salary,
location,
department,
grade,
opendate,
closedate,
description,
internal,
category
)
select :new.jobid,:new.TITLE,:new.REFERENCE,:new.SALARY,LOCATIONNAME,DEPTNAME,GRADENAME,:new.OPENDATE,:new.CLOSEDATE,:new.description,:new.internal, LISTAGG(CLASSNAME,'; ') WITHIN GROUP (order by cj.CLASSID) as category
from JOBS_LOCATION l , JOBS_DEPARTMENT d, JOBS_GRADE g,JOBS_JOBCLASS cj ,JOBS_CLASSIFICATION c
where
l.locationid = :new.locationid
and d.deptid = :new.departmentid
and g.gradeid = :new.gradeid
and cj.jobid = :new.jobid
and cj.classid = c.classid
;