You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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 &lt;&gt; 'BridgeRequest'里的&lt;&gt;是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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:54:57