【发布时间】:2014-06-19 01:37:08
【问题描述】:
我对两个链接的表有一个简单的左连接查询以获取描述:
SELECT WORK.ACTION_ID, WORK.ACTION_STAT, WORK.DESCRIPTION_ID,
WORK.CLIENT_SERVER_IND, WORK.UPDATE_TSTAMP, WORK.UPDATE_USER_ID,
WORK.OTHER_ACTION_DATA, D.DESCRIPTION_ID, D.LANGUAGE, D.DESCRIPTION_TEXT,
D.UPDATE_TSTAMP DSCRP_UPD_TSTAMP
FROM xxxx.R_ACTION WORK
INNER JOIN xxxx.R_DESC_TEXT D ON WORK.DESCRIPTION_ID = D.DESCRIPTION_ID
WHERE D.LANGUAGE = 'ENGLISH'
AND D.DESCRIPTION_STAT = 'P';
我在 SQL Developer 中有查询,如果我选择“运行语句”,它会在不到一秒的时间内正常工作,我可以检索所有 283 条记录。
如果我选择“运行脚本”,我可以看到大约 33 行的输出,然后它就会挂起,最终我会收到“套接字读取超时”消息。
我在不同的架构中有同一个表,但其中的数据略有不同,在那个表中,运行语句和运行脚本工作正常。
为什么它适用于“运行语句”但在此架构中对“运行脚本”失败?
【问题讨论】:
-
您说这是一个“左 [外部] 联接”查询,但您显示的是内部联接。不确定这是否重要,但可能有助于澄清这一点。由于该语句有效,因此它看起来像是 SQL Developer 问题,或者可能是网络问题,但您也可以查看警报日志。您使用的是什么版本的 SQL Developer? “查询输出”窗格中一次显示多少个结果 - 少于 33 个?您能否添加表定义 - 想知道是否有任何列是 CLOB。套接字错误让我认为由于数据中的某些内容,网络正在关闭您的链接。
-
此外,“运行脚本”似乎暗示了一系列语句,可能带有 BEGIN/END,而不仅仅是一个选择。
-
我认为亚历克斯正在做某事,如果不是 clob,那么您要提取的数据中可能会有一些二进制字符。当您作为脚本运行时,输出被转储到脚本输出窗口(基本上是一个文本文件),而运行语句填充一个表(查询结果选项卡)。
-
哪个 Oracle DB 版本 (11.2.0.3)?哪个 SQL Developer 版本 (4.0.80)?在 SQL*Plus 中查询是否完成且没有错误?
-
涉及的数据类型有哪些?那里有任何“宽”列吗? Alex 关于 CLOB 的问题也是我要去的地方。
标签: sql oracle oracle-sqldeveloper