为什么我的SQL查询可以在sqldeveloper中工作,而不能使用sqlcl从命令行执行? [英] why does my sql query work in sqldeveloper but not from the command line using sqlcl?
本文介绍了为什么我的SQL查询可以在sqldeveloper中工作,而不能使用sqlcl从命令行执行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
select * from test where test like '%test%'
这将使用sqldeveloper返回预期数据,但在使用sqlcl的命令行中,当我键入此命令并按Enter键时,我只看到2。如果再次按Enter键,我会看到3。
我这里错过了什么?我在sqlcl文档中看不到包含此内容的内容。
推荐答案
它的行为the same as SQL*Plus does。您已经在命令缓冲区中输入了一行文本,但是您还没有告诉客户端这是一个完整的语句,也没有告诉它execute it。它正在显示行号提示,以表明需要更多输入。
您可以用分号结束语句,也可以在文档中将劈开(/
)单独放在新行上:
结束SQL命令
您可以通过以下三种方式之一结束SQL命令:分号(;)告诉SQL*Plus您要运行该命令。在命令的最后一行末尾键入分号.然后按Return键或单击Execute。SQL*Plus处理命令,并将命令存储在SQL缓冲区中。..。如果在键入分号之前错误地按了Return键,SQL*Plus会提示您输入命令下一行的行号。键入分号,然后再次按Return键,或单击Execute以运行该命令。
- 使用分号(;)
- 单独使用劈开(/)
- 带空行
一行上的劈开(/)本身也告诉SQLPlus您希望运行该命令。在命令的最后一行末尾按Return键。SQL*Plus会提示您输入另一个行号。键入劈开,然后再次按Return键或单击"执行"。SQL*Plus执行该命令并将其存储在缓冲区中。
sql devleoper也支持这些,使用分号(默认情况下)作为sql终止字符,并允许分号或劈开终止语句。但是,它允许您在脚本的最后一条语句中省略它,而SQL*Plus并非如此-在这种情况下,该语句将永远不会运行。我认为SQLcl在这方面的行为也与SQL*Plus相同。
(我知道SQLcl并不完全相同,但大多数SQL*Plus文档都适用于SQL Developer及其最新的同级SQLcl。有关更多信息,请访问ThatJeffSmith's blog。)
这篇关于为什么我的SQL查询可以在sqldeveloper中工作,而不能使用sqlcl从命令行执行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文