Я загружаю файл в промежуточную запись, используя Application Engine. когда в BU, Deptid и т. д. когда-либо есть пробелы ... Я должен захватить все пустые столбцы и обновить текстовое поле ошибки этими значениями.
UPDATE SYSADM.PS_VI_EMP_TS SET ERR_TEXT =
ВЫБРАТЬ ОШИБКУ ОТ (ВЫБРАТЬ * ОТ (
ВЫБЕРИТЕ СЛУЧАЙ, КОГДА BUSINESS_UNIT = '' THEN 'BUSINESS_UNIT НУЛЬ' 'ELSE' 'ОКОНЧАТЬ ОШИБКУ ОТ SYSADM.PS_VI_EMP_TS ГДЕ USERID =' JCOOPER 'И ДЕЙСТВИЕ =' E 'И PROCESS_INSTANCE =' 7852429 '
UNION
ВЫБЕРИТЕ ДЕЛО, КОГДА DEPTID = '' THEN 'DEPTID НЕДЕЙСТВИТЕЛЬНО' ELSE '' КОНЕЦ ОШИБКИ ОТ SYSADM.PS_VI_EMP_TS WHERE USERID = 'JCOOPER' И ДЕЙСТВИЕ = 'E' И PROCESS_INSTANCE = '9852429'
UNION
ВЫБЕРИТЕ СЛУЧАЙ, КОГДА PROJECT_ID = '' THEN 'PROJECT_ID НУЛЬ' 'ELSE' 'ОКОНЧАТЬ ОШИБКУ ОТ SYSADM.PS_VI_EMP_TS ГДЕ USERID =' JCOOPER 'И ДЕЙСТВИЕ =' E 'И ПРОЦЕСС_INSTANCE =' 9852429 '
)) ГДЕ ОШИБКА <> ''
ГДЕ USERID = 'JCOOPER' И ДЕЙСТВИЕ = 'E' И PROCESS_INSTANCE = '9852429'
Результат приведенного выше скрипта приведен ниже.
ERROR
BUSINESS_UNIT NULL
DEPTID NULL
Я хочу получить результат, как показано ниже.
ERROR
BUSINESS_UNIT NULL, DEPTID NULL
Я использую функцию ListAgg, но сталкиваюсь с ошибками, как показано ниже. Любая помощь будет очень полезна.
SELECT LISTAGG(BUSINESS_UNIT, ';') WITHIN GROUP(ORDER BY USERID)
FROM SYSADM.PS_VI_EMP_TS WHERE USERID='JCOOPER'
GROUP BY BUSINESS_UNIT
В случае ошибки:
ORA-00923: FROM keyword not found where expected
00923. 00000 - "FROM keyword not found where expected"
*Cause:
*Action:
Error at Line: 47 Column: 43