我正在创建一个为我们运行 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;
如果运行它,客户端应该指向引发错误的位置。给你:
<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>
对;这是预期的,我没有你的表,无法运行该脚本。