Oracle SQL Developer - Ctrl + Enter运行整个工作表而不是当前行

时间:2015-05-07 07:14:20

标签: sql oracle oracle-sqldeveloper shortcut

我正在使用Oracle SQL Developer 4.0.3.16,几周后,快捷键Ctrl + Enter不再执行当前行或语句,除非我突出显示它,而是运行我的整个工作表。使用顶部的绿色按钮(应该仅运行当前行)会导致相同的行为(除非突出显示该行)。将鼠标悬停在按钮上仍会显示工具提示"运行语句(Ctrl + Enter)"。我的一位同事确实也遇到了这个问题。

我也查看了Preferences-> Shortcut Keys菜单,但是运行语句的快捷方式仍然是Ctrl + Enter。

任何人都知道我的SQL Developer出了什么问题?

4 个答案:

答案 0 :(得分:2)

SQL Developer中的每个SQL语句都应该有分号select * from emp否则ctrl + Enter将执行将执行整个工作表。
例如,假设我有两个SQL语句:
1. ;没有分号UPDATE EMP SET DEPT_ID=10;

2. ;与SEMICOLON Axapta DynAx = new Axapta(); AxaptaRecord DynRec; string strUserName = ""; System.Net.NetworkCredential nc = new System.Net.NetworkCredential("", ""); string tableName = ""; DynAx.LogonAs(strUserName.Trim(), "", nc, dataAreaId, "en-us","", ""); try { using (DynRec = DynAx.CreateAxaptaRecord(tableName)) { var binData = DynAx.CreateAxaptaObject("Bindata"); var loaded = binData.Call("loadFile", path); var data = binData.Call("getData"); AxaptaContainer axc = DynAx.CreateAxaptaContainer(); axc.Add(data); DynRec.set_Field("ATTACHMENT", axc.get_Item(1)); // Commit the record to the database. DynRec.Insert(); } } catch (Exception ex) { return false; } finally { DynAx.Logoff(); }
然后它将同时执行两个语句,因为在每个SQL语句之后你应该有分号。

答案 1 :(得分:1)

我也面对过它。通常,您将PL / SQL块置于您尝试执行的SQL代码之上。注释掉PL / SQL块,它是DECLARE,BEGIN,但不以分号结尾,从而产生此问题。因此,在工作表中注释PL / SQL块应该可以解决您的问题。

答案 2 :(得分:1)

感谢答案here:如果它在行之后的分号不起作用,就像它不适合我(Oracle SQL Developer 3.2.20.10),你需要放一个'/'在每个命令之后,如果你想独立地执行它们,例如:

blahblah;
/

blahblah;
/

将'/'视为真正的终结符/分隔符。

答案 3 :(得分:0)

我想我有点解决了。

由于我不是工作中的计算机管理员,因此无法安装新客户端,所以我不久前在版本4.0.3.16中下载了SQL Developer,并从我的用户目录本地运行它。 同时客户端4.0.3.16安装在操作系统上,当使用此客户端时,我没有收到此错误。 谢谢你的帮助。