找不到我的无效字符(ORA-00911)

问题描述 投票:0回答:1

我正在创建一个为我们运行 SQL 查询的应用程序。我已从正在运行的脚本中复制了此查询,但是当我将其粘贴到 SQL Developer 或 vs Code 中时,它给出了 ORA-00911 错误。我已经尝试删除 ;从查询中,但没有帮助。是不是我粘贴错了?

    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') / %% period %% )
                                                 *
                                                   %% period %%
                                                     / 1440 )
                                               - %% period %% / 1440 AND
                                           Trunc(
                                               systimestamp, 'hh') +
           Floor(
           To_char(systimestamp, 'mi') / %% period
           %% ) *
                                           %% period %%
           / 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 ( 'WorkerRunning', 'BridgeEnd', 'BridgeStart',
                                'WorkerEnd',
                                'WorkerMQEnd', 'WorkerMQStart',
                                'WorkerProducerEnd',
                                    'WorkerProducerStart',
                                'WorkerReaderEnd', 'WorkerReaderStart',
                                'WorkerStart',
                                    'WorkerStop' )
       AND ( ( requesttype = 'BridgeRequest'
               AND faultindication = 'true' )
              OR ( requesttype <> 'BridgeRequest' ) )
ORDER  BY bint.messageid,
          1;
sql oracle oracle-sqldeveloper
1个回答
0
投票

如果运行它,客户端应该指向引发错误的位置。给你:

<snip>
 67                OR ( requesttype <> 'BridgeRequest' ) )
 68  ORDER  BY bint.messageid,
 69            1;
           To_char(systimestamp, 'mi') / %% period %% )
                                         *
ERROR at line 41:
ORA-00911: invalid character


SQL>

一堆

%%
字符无效


删除并重新执行时:

 68  ORDER  BY bint.messageid,
 69            1;
       LEFT JOIN basefaults bfa
                 *
ERROR at line 36:
ORA-00942: table or view does not exist


SQL>

对;这是预期的,我没有你的表,无法运行该脚本。

© www.soinside.com 2019 - 2024. All rights reserved.