DECODE(:GUI_FILE_SOURCE,0,(SELECT F.FILENAME FROM IB_NRT_FILELIST F WHERE N.NRT_FILE_ID = F.FILE_ID)) 括号还是有,只是没有THEN和ELSE
将CASE WHEN 换成DECODE试试呢,我不知道你的框架能不能解析decode里的括号
将CASE WHEN 换成DECODE试试呢,我不知道你的框架能不能解析decode里的括号 试了 不可以 decode后面的括号框架解析不过去,蛋疼的框架。
将CASE WHEN 换成DECODE试试呢,我不知道你的框架能不能解析decode里的括号 试了 不可以 decode后面的括号框架解析不过去,蛋疼的框架。 难道你的框架括号都不能解析,如果是这样,你就得从你框架想办法了
From后面的括号可以解析么,可以试试SELECT APN_NI, START_TIME_UTC_OFFSET, CASE :GUI_FILE_SOURCE WHEN 0 THEN FILENAME ELSE FILE_NAME END FILENAME FROM ( SELECT N.APN_NI, N.START_TIME_UTC_OFFSET, F.FILENAME, M.FILE_NAME CASE WHEN 0 = :GUI_FILE_SOURCE THEN (SELECT F.FILENAME FROM IB_NRT_FILELIST F WHERE N.NRT_FILE_ID = F.FILE_ID(+)) ELSE (SELECT M.FILE_NAME FROM IB_FMS_FILELIST M WHERE N.FILE_ID = M.FILE_ID(+)) END AS FILENAME FROM &CDR_TABLE& N, IB_EVENT_STATE S, IB_ERR_TYPE ET, IB_PARTNER P, IB_NRT_FILELIST F, IB_FMS_FILELIST M WHERE 1 = 1 AND N.ERR_TYPE_ID = ET.ERR_TYPE_ID(+) AND N.STATE = S.STATE(+) AND N.PARTNER_ID = P.PARTNER_ID(+) AND N.NRT_FILE_ID = F.FILE_ID(+) AND N.FILE_ID = M.FILE_ID(+));虽然丑了一点。
SELECT APN_NI, START_TIME_UTC_OFFSET, CASE :GUI_FILE_SOURCE WHEN 0 THEN FILENAME ELSE FILE_NAME END FILENAME FROM ( SELECT N.APN_NI, N.START_TIME_UTC_OFFSET, F.FILENAME, M.FILE_NAME /* CASE WHEN 0 = :GUI_FILE_SOURCE THEN (SELECT F.FILENAME FROM IB_NRT_FILELIST F WHERE N.NRT_FILE_ID = F.FILE_ID(+)) ELSE (SELECT M.FILE_NAME FROM IB_FMS_FILELIST M WHERE N.FILE_ID = M.FILE_ID(+)) END AS FILENAME */ FROM &CDR_TABLE& N, IB_EVENT_STATE S, IB_ERR_TYPE ET, IB_PARTNER P, IB_NRT_FILELIST F, IB_FMS_FILELIST M WHERE 1 = 1 AND N.ERR_TYPE_ID = ET.ERR_TYPE_ID(+) AND N.STATE = S.STATE(+) AND N.PARTNER_ID = P.PARTNER_ID(+) AND N.NRT_FILE_ID = F.FILE_ID(+) AND N.FILE_ID = M.FILE_ID(+));
FROM IB_NRT_FILELIST F
WHERE N.NRT_FILE_ID = F.FILE_ID(+)
既然只取F的数据没必要用外连接,可以把(+)去掉,你说的框架工具是啥,不能修改sql ?
有没有其他的写法
FROM IB_NRT_FILELIST F
WHERE N.NRT_FILE_ID = F.FILE_ID))
括号还是有,只是没有THEN和ELSE
试了 不可以 decode后面的括号框架解析不过去,蛋疼的框架。
试了 不可以 decode后面的括号框架解析不过去,蛋疼的框架。
难道你的框架括号都不能解析,如果是这样,你就得从你框架想办法了
START_TIME_UTC_OFFSET,
CASE :GUI_FILE_SOURCE WHEN 0 THEN FILENAME ELSE FILE_NAME END FILENAME
FROM (
SELECT N.APN_NI,
N.START_TIME_UTC_OFFSET,
F.FILENAME,
M.FILE_NAME
CASE
WHEN 0 = :GUI_FILE_SOURCE THEN
(SELECT F.FILENAME
FROM IB_NRT_FILELIST F
WHERE N.NRT_FILE_ID = F.FILE_ID(+))
ELSE
(SELECT M.FILE_NAME
FROM IB_FMS_FILELIST M
WHERE N.FILE_ID = M.FILE_ID(+))
END AS FILENAME
FROM &CDR_TABLE& N,
IB_EVENT_STATE S,
IB_ERR_TYPE ET,
IB_PARTNER P,
IB_NRT_FILELIST F,
IB_FMS_FILELIST M
WHERE 1 = 1
AND N.ERR_TYPE_ID = ET.ERR_TYPE_ID(+)
AND N.STATE = S.STATE(+)
AND N.PARTNER_ID = P.PARTNER_ID(+)
AND N.NRT_FILE_ID = F.FILE_ID(+)
AND N.FILE_ID = M.FILE_ID(+));虽然丑了一点。
START_TIME_UTC_OFFSET,
CASE :GUI_FILE_SOURCE WHEN 0 THEN FILENAME ELSE FILE_NAME END FILENAME
FROM (
SELECT N.APN_NI,
N.START_TIME_UTC_OFFSET,
F.FILENAME,
M.FILE_NAME
/* CASE
WHEN 0 = :GUI_FILE_SOURCE THEN
(SELECT F.FILENAME
FROM IB_NRT_FILELIST F
WHERE N.NRT_FILE_ID = F.FILE_ID(+))
ELSE
(SELECT M.FILE_NAME
FROM IB_FMS_FILELIST M
WHERE N.FILE_ID = M.FILE_ID(+))
END AS FILENAME */
FROM &CDR_TABLE& N,
IB_EVENT_STATE S,
IB_ERR_TYPE ET,
IB_PARTNER P,
IB_NRT_FILELIST F,
IB_FMS_FILELIST M
WHERE 1 = 1
AND N.ERR_TYPE_ID = ET.ERR_TYPE_ID(+)
AND N.STATE = S.STATE(+)
AND N.PARTNER_ID = P.PARTNER_ID(+)
AND N.NRT_FILE_ID = F.FILE_ID(+)
AND N.FILE_ID = M.FILE_ID(+));