我在Sybase数据库上使用Oracle Sql Developer,并且难以执行分散在多行上的简单select语句。
IF 1=1
BEGIN
SELECT 'Foo'
END
ELSE
SELECT 'Bar'
END
如果我在查询生成器中选择这些行并用F5
或CTRL + Enter
执行,则会收到Incorrect syntax near the keyword 'BEGIN'
错误。
如果我将语句写成如下一行
IF 1=1 BEGIN SELECT 'Foo' END ELSE BEGIN SELECT 'Bar' END
我得到了预期的结果。
---
Foo
如果语句分散在多行上,是否有一个选项可以配置执行行为?
答案 0 :(得分:0)
您可以尝试执行此操作-它告诉SQL Developer处理以下以/或;结尾的字符串。单独一行作为查询。
问题来自使用非Oracle语法运行SQL或代码块...而我们是Oracle SQL Developer,而不是Sybase的Oracle SQL Developer。
提供Sybase连接性是为了将数据库迁移到Oracle,而不是在Oracle Database或TimesTen以外的任何类型的数据库中进行日常数据库工作。
/*sqldev:query*/
IF 1=1
BEGIN
SELECT 'Foo'
END
ELSE
SELECT 'Bar'
END
/
答案 1 :(得分:0)
BEGIN和END不匹配。尝试删除最后一个END或在ELSE语句后插入BEGIN。
/*sqldev:query*/
IF 1=1
BEGIN
SELECT 'Foo'
END
ELSE
BEGIN
SELECT 'Bar'
END