【发布时间】:2018-12-28 16:20:44
【问题描述】:
我正在使用专有的 ASPX 查询编辑器,它强迫我使用 SELECT 开始每个查询。它不允许我向第一个单词不是 SELECT 的数据库发送任何代码。
所以我很好奇,有没有一种方法可以在 SELECT 语句之后在选择查询中声明和设置变量?
declare @var datetime
set @var = (select sysdate from dual)
select @var from dual
应用程序错误:“SQLQuery 应以 'SELECT' 关键字开头。”
需要明确的是,这是来自应用程序界面的错误,而不是 Oracle 错误。
编辑:上面的代码 sn-p 不是 PL/SQL(我不认为),但我用它来显示错误。
【问题讨论】:
-
在我看来这不像 PL/SQL。这个编辑器有自己的语言并以某种方式翻译吗?
-
你的变量将用于什么?您实际上是在尝试在查询中运行 PL/SQL 块,还是只是避免重复固定值或其他什么?根据您之前的评论;如果它只允许以“select”开头的文本,它如何接受本机 PL/SQL - 这两个语句似乎矛盾?
-
如果编辑器要求你使用
SELECT作为第一个词,那么它不接受PL/SQL代码,纯粹的和简单的。而且它甚至不允许您使用 SQL 标准(以及因此在许多数据库产品中)中存在的旧功能编写标准 SQL 查询 - 例如WITH子句。删除该编辑器并选择其他内容;例如,SQL Developer 非常棒,而且是免费的。 -
如果它不以
declare或begin开头,那么它就不是一个PL/SQL 块......它听起来并不像它允许除了简单查询之外的任何东西。也许如果你包括一个你想做的例子,它可能会有所帮助。 (如果可以的话,切换到不同的客户端听起来是个好主意……) -
把所有你想使用的“变量”放到一个交叉连接的子查询中
标签: sql-server sybase