0

在使用 Oracle 10G 数据库时,我正在从 SQLDeveloper 切换到 DBeaver,并为数据库的确切版本使用 Oracle 即时客户端。

我不做脚本,只是一堆查询,比如选择、更新。我收集了它们,每行都在一行或几行,最后有分号,后面是两个破折号和注释。用于视觉分离的多行语句用许多破折号分隔。

SQLDeveloper 很好地处理了这样的系统,CTRL+Enter 仅执行该行(或从最后一个注释或分号到下一个分号的组),忽略前后的注释。所以我将整个集合从一个程序主窗口复制到另一个(SQL 编辑器)。使用结果很奇怪。

新 SQL 编辑器选项卡中的示例(表名已更改,如果我有一些保留字,请忽略):

select * from FILE_MOVEMENT where MOVEMENT_STATUS != 'MOVED' and LAST_UPDATE > sysdate -10 order by LAST_UPDATE desc;--My comment, explanation
select * from ACTIVITY where ACTIVITY_TYPE = 'GENERATOR' and STATUS = 'CREATED' and STARTED > sysdate -10 order by STARTED desc;--My other comment

第一个使用 CTRL+Enter 按预期执行,行开始以单个三角形闪烁,执行日志仅显示我的命令,直到分号。但是,当光标放在第二行,然后按 CTRL+Enter 时,我会在两行之前得到三角形,所有在第一行分号之后,直到第二行结束,包括两个注释都被选中并弹出 ORA-00911。所选文本显示在执行日志中。

如果我在它们之间放一个空行,那么整个第二行都会被选中并记录下来,并且会弹出相同的错误。

如何阻止这种行为并使第二行也以与第一行相同的方式执行 - 没有前一个和下一个评论?我错过了 DBeaver 中的某些语言或行尾或注释设置吗?

4

2 回答 2

0

很少有最新版本的 DBeaver 可以接受。即使前几行注释出现在要执行的语句中,它也会按预期运行。执行了正确的语句,日志显示注释作为查询的开始,但它被忽略了。我可以忍受的。

于 2016-06-24T18:05:41.810 回答
0

Dbeaver 使用 Ctrl+Enter 快捷键来执行单个语句,对于执行多个语句,您应该使用 Alt+X。

在此处输入图像描述

于 2019-11-01T11:18:45.587 回答