为什么我的SQL查询可以在sqldeveloper中工作,而不能使用sqlcl从命令行执行? [英] why does my sql query work in sqldeveloper but not from the command line using sqlcl?

查看:30
本文介绍了为什么我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆