Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle ListAgg()ORA-01002:提取顺序错误_Oracle - Fatal编程技术网

Oracle ListAgg()ORA-01002:提取顺序错误

Oracle ListAgg()ORA-01002:提取顺序错误,oracle,Oracle,我正在运行一个查询,其中我不想在GROUP BY子句中包括总账列,因为我不想为总账字段的每个变体显示不同的行。但我需要在后续处理中评估字段,将其与动态生成的总账编号列表进行比较。我认为最好的方法是使用函数,我正在尝试listag()。首先,是否有更好的函数用于将每行总账与列表进行比较?另外,我可以使用SQLDeveloper获得下面的结果,但当我试图将其输出到Oracle返回ORA-01002错误的网页上时,则无法获得。我们在这两种情况下都使用12c。下面是查询和输出。如果没有listag(),

我正在运行一个查询,其中我不想在GROUP BY子句中包括总账列,因为我不想为总账字段的每个变体显示不同的行。但我需要在后续处理中评估字段,将其与动态生成的总账编号列表进行比较。我认为最好的方法是使用函数,我正在尝试listag()。首先,是否有更好的函数用于将每行总账与列表进行比较?另外,我可以使用SQLDeveloper获得下面的结果,但当我试图将其输出到Oracle返回ORA-01002错误的网页上时,则无法获得。我们在这两种情况下都使用12c。下面是查询和输出。如果没有listag(),我必须在SELECT和GROUP BY中包含GL列,并且它不希望为每个GL输出单独的行

SELECT h.h_spa_id as spa_id,
       h.submit_dt,
       h.oa_ap_date,
       ListAgg(gl,',') within group (order by gl) "mygl"
 WHERE h.next_apprv= 'approverID'
   and h.table1_id = d.table2_id
   and h.table1_id = table3_id
 group by h.h_spa_id,h.submit_dt,h.oa_ap_date
 order by h.h_spa_id

H_SPA_ID    SUBMIT_DT               OA_AP_DATE                        MYGL
1627005    1/25/2008 10:11:53 AM   1/25/2008 11:15:56 AM      52287,52287,52287,52287,52287,52287,52287,52287,52287,52287,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385

您可以使用
CAST
COLLECT
将其分组为一个集合:

SELECT   h.h_spa_id as spa_id,
         h.submit_dt,
         h.oa_ap_date,
         CAST( COLLECT( DISTINCT gl ) AS SYS.ODCINUMBERLIST ) AS mygl
FROM     h
         INNER JOIN
         d
         ON ( h.table1_id = d.table2_id )
WHERE    h.next_apprv = 'approverID'
AND      h.table1_id  = table3_id
GROUP BY h.h_spa_id,
         h.submit_dt,
         h.oa_ap_date
ORDER BY h.h_spa_id

然后,当您将其用于后续处理时,这些值将在一个数组中。

select上的FROM子句在哪里?