报错的语句
SELECT
count( 1 )
FROM
(
SELECT
NVL( process.CONDUCT_COUNT, 0 ) AS CONDUCT_COUNT,
NVL( process.AVG_USE_TIME, 0 ) AS AVG_USE_TIME,
NVL( process.MIN_USE_TIME, 0 ) AS MIN_USE_TIME,
NVL( process.MAX_USE_TIME, 0 ) AS MAX_USE_TIME,
NVL( NVL( process.SOURCE_ID, pending.SOURCE_ID ), ' ' ) AS SOURCE_ID,
NVL( pending.PENDING_COUNT, 0 ) AS PENDING_COUNT
FROM
(
SELECT
count( 1 ) AS CONDUCT_COUNT,
ROUND( AVG( apt.TASK_TIME ) / 60, 2 ) AS AVG_USE_TIME,
ROUND( MIN( apt.TASK_TIME ) / 60, 2 ) AS MIN_USE_TIME,
ROUND( MAX( apt.TASK_TIME ) / 60, 2 ) AS MAX_USE_TIME,
rpi.SOURCE_ID
FROM
( SELECT * FROM RUNTIME_PROCESS_INSTANCE WHERE SOURCE_ID IS NOT NULL ) rpi
INNER JOIN APP_PARTICIPATED_TASK apt ON ( rpi.PROCESS_INSTANCE_ID = apt.PROCESS_INSTANCE_ID )
WHERE
1 = 1
AND rpi.SOURCE_ID = '111'
AND apt.TASK_END_TIME >= to_date( '2024-02-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS' )
AND apt.TASK_END_TIME <= to_date( '2024-05-12 23:59:59', 'YYYY-MM-DD HH24:MI:SS' )
GROUP BY
rpi.SOURCE_ID
) process
FULL JOIN (
SELECT
COUNT( 1 ) AS PENDING_COUNT,
rpi.SOURCE_ID
FROM
( SELECT * FROM RUNTIME_PROCESS_INSTANCE WHERE SOURCE_ID IS NOT NULL ) rpi
INNER JOIN APP_PENDING_TASK apt ON ( rpi.PROCESS_INSTANCE_ID = apt.PROCESS_INSTANCE_ID )
WHERE
1 = 1
AND rpi.SOURCE_ID = '111'
AND apt.CREATE_TIME >= to_date( '2024-02-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS' )
AND apt.CREATE_TIME <= to_date( '2024-05-12 23:59:59', 'YYYY-MM-DD HH24:MI:SS' )
GROUP BY
rpi.SOURCE_ID
) pending ON ( process.SOURCE_ID = pending.SOURCE_ID )
) analysis
LEFT JOIN ( SELECT ITEM_VALUE, ITEM_NAME FROM SYS_DATA_DICT_ITEM WHERE DICT_ID = ( SELECT ID FROM SYS_DATA_DICT WHERE DICT_CODE = 'analysis-source' ) ) analysisSource ON ( analysis.SOURCE_ID = analysisSource.ITEM_VALUE )
报错的信息:ORA-00600: internal error code, arguments: [kkqcscpopn_Int: 0], [], [], [], [], [], [], [], [], [], [], []
很神奇把count(1) 改成*,这个sql是能执行出来的,改成count(1)就报错。
主要当时偷懒了,把这个*直接改成count(1) 去做分页了,其实要外层那些没用的代码,修改后的sql
--SELECT
-- count( 1 )
--FROM
--(
SELECT
count( 1 )
--NVL( process.CONDUCT_COUNT, 0 ) AS CONDUCT_COUNT,
--NVL( process.AVG_USE_TIME, 0 ) AS AVG_USE_TIME,
--NVL( process.MIN_USE_TIME, 0 ) AS MIN_USE_TIME,
--NVL( process.MAX_USE_TIME, 0 ) AS MAX_USE_TIME,
--NVL( NVL( process.SOURCE_ID, pending.SOURCE_ID ), ' ' ) AS SOURCE_ID,
--NVL( pending.PENDING_COUNT, 0 ) AS PENDING_COUNT
FROM
(
SELECT
count( 1 ) AS CONDUCT_COUNT,
ROUND( AVG( apt.TASK_TIME ) / 60, 2 ) AS AVG_USE_TIME,
ROUND( MIN( apt.TASK_TIME ) / 60, 2 ) AS MIN_USE_TIME,
ROUND( MAX( apt.TASK_TIME ) / 60, 2 ) AS MAX_USE_TIME,
rpi.SOURCE_ID
FROM
( SELECT * FROM RUNTIME_PROCESS_INSTANCE WHERE SOURCE_ID IS NOT NULL ) rpi
INNER JOIN APP_PARTICIPATED_TASK apt ON ( rpi.PROCESS_INSTANCE_ID = apt.PROCESS_INSTANCE_ID )
WHERE
1 = 1
AND rpi.SOURCE_ID = '111'
AND apt.TASK_END_TIME >= to_date( '2024-02-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS' )
AND apt.TASK_END_TIME <= to_date( '2024-05-12 23:59:59', 'YYYY-MM-DD HH24:MI:SS' )
GROUP BY
rpi.SOURCE_ID
) process
FULL JOIN (
SELECT
COUNT( 1 ) AS PENDING_COUNT,
rpi.SOURCE_ID
FROM
( SELECT * FROM RUNTIME_PROCESS_INSTANCE WHERE SOURCE_ID IS NOT NULL ) rpi
INNER JOIN APP_PENDING_TASK apt ON ( rpi.PROCESS_INSTANCE_ID = apt.PROCESS_INSTANCE_ID )
WHERE
1 = 1
AND rpi.SOURCE_ID = '111'
AND apt.CREATE_TIME >= to_date( '2024-02-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS' )
AND apt.CREATE_TIME <= to_date( '2024-05-12 23:59:59', 'YYYY-MM-DD HH24:MI:SS' )
GROUP BY
rpi.SOURCE_ID
) pending ON ( process.SOURCE_ID = pending.SOURCE_ID )
--) analysis
--LEFT JOIN ( SELECT ITEM_VALUE, ITEM_NAME FROM SYS_DATA_DICT_ITEM WHERE DICT_ID = ( SELECT ID FROM SYS_DATA_DICT WHERE DICT_CODE = 'analysis-source' ) ) analysisSource ON ( analysis.SOURCE_ID = analysisSource.ITEM_VALUE )