ORA-00911错误咨询:复制SQL脚本至SQL Developer/VS Code执行报错
ORA-00911错误排查与解决
你的SQL执行报错ORA-00911(无效字符),和粘贴方式无关,是SQL本身存在几个语法问题,具体如下:
- NOT IN子句末尾多余逗号:
requesttype NOT IN ( 'appRunning', 'appEnd', 'BridgeStart', 'appEnd', 'appMQEnd', )中,'appMQEnd'后面的逗号是多余的,Oracle会将其判定为无效字符。 - 未替换的脚本占位符:SQL中的
%% period %%是脚本里的变量占位符,直接在SQL工具中执行时,Oracle无法识别这种格式,需要替换为具体的数值(比如如果是按15分钟周期查询,就换成15)。 - HTML转义字符:
requesttype <> 'BridgeRequest'里的<>是HTML转义的不等于符号,Oracle不支持这种写法,要换成标准的<>或者!=。
修正后的SQL示例(假设%% period %%替换为15):
SELECT To_char(requestmessagetimestamp, 'yyyymmdd hh24:mi:ss DY') AS "DATE", serviceid, requesttype, requestspecification, bfa.faultdescription, CASE WHEN requestmessage IS NOT NULL THEN dbms_lob.Substr( Substr(bMes.requestmessage, Instr(bMes.requestmessage, 'SourceSystem' , 1) + Length('SourceSystem') + 1, ( Instr(bMes.requestmessage, 'SourceSystem', 1, 2) - Instr(bMes.requestmessage, 'SourceSystem' , 1) - Length('SourceSystem') - 3 ))) END AS sourceSystem, CASE WHEN requestmessage IS NOT NULL THEN dbms_lob.Substr( Substr(bMes.requestmessage, Instr(bMes.requestmessage, 'EventId' , 1) + Length('EventId') + 1, ( Instr(bMes.requestmessage, 'EventId', 1, 2) - Instr(bMes.requestmessage, 'EventId' , 1) - Length('EventId') - 3 ))) END AS EventId, bint.messageid, bint.relatesto, systimestamp FROM baseintegrationheaders bint LEFT JOIN basemessages bMes ON bMes.relatesto = bint.relatesto LEFT JOIN basefaults bfa ON bfa.relatesto = bint.relatesto WHERE 1 = 1 AND requestmessagetimestamp BETWEEN ( Trunc(systimestamp, 'hh') + Floor( To_char(systimestamp, 'mi') / 15 ) * 15 / 1440 ) - 15 / 1440 AND Trunc( systimestamp, 'hh') + Floor( To_char(systimestamp, 'mi') / 15 ) * 15 / 1440 AND bint.technicaldomain = 'WB' AND bint.serviceid IN ( 'AST_GPSBatch_Reply-bridge', 'AST_GPSOnline_Reply-bridge', 'AST_GPS_Request-bridge' ) AND requesttype NOT IN ( 'appRunning', 'appEnd', 'BridgeStart', 'appEnd', 'appMQEnd' ) AND ( ( requesttype = 'BridgeRequest' AND faultindication = 'true' ) OR ( requesttype <> 'BridgeRequest' ) ) ORDER BY bint.messageid, 1;
内容的提问来源于stack exchange,提问作者Beerus239
相关产品推荐
相关产品推荐

