Oracle 错误=918,unixUDBC,instantclinet

问题描述

在程序中使用 sqlExecDirect 执行查询

SELECT 
  q.record_id as record_id,s.scenariusz as scenariusz,u.usluga as usluga,u.priorytet as priorytet,q.vip as vip,q.date_added as date_added,q.chat_server_session_id as chat_server_session_id 
FROM 
  queue_webchat_messenger q 
  JOIN usluga u on u.id_uslugi = q.id_uslugi 
  JOIN scenariusz s on s.id_scen = u.id_scen 
WHERE 
  q.id_agent_soft is NULL
  AND q.state = 'KO' 
ORDER by 
  u.priorytet desc,q.id_uslugi,q.vip desc,q.date_added,q.record_id;

数据库日志 (Oracle) 中,我收到错误 err = 918

=====================
PARSE ERROR #139794508205160:len=450 dep=0 uid=178 oct=3 lid=178 tim=16259156390104 err=918
SELECT ROWID,q.record_id as record_id,q.chat_server_session_id as chat_server_session_id FROM queue_webchat_messenger q JOIN usluga u on u.id_uslugi=q.id_uslugi JOIN scenariusz s on s.id_scen=u.id_scen WHERE q.id_agent_soft is null AND q.state=:"SYS_B_0" ORDER by u.priorytet desc,q.record_id
CLOSE #139794508205160:c=0,e=2,dep=0,type=0,tim=16259156390850
=====================

在DB日志中,ROWID列被添加查询中,我怀疑是这个列导致了错误。 什么会导致添加 ROWID 列,什么会导致 err = 918?

解决方法

请尝试添加一个假的 ROWID 列:

status