如何在Oracle Sql Developer中执行多行?

时间:2019-05-10 08:38:17

标签: oracle oracle-sqldeveloper sybase-ase

我在Sybase数据库上使用Oracle Sql Developer,并且难以执行分散在多行上的简单select语句。

    IF 1=1 
    BEGIN
       SELECT 'Foo'
    END
    ELSE
       SELECT 'Bar'
    END

如果我在查询生成器中选择这些行并用F5CTRL + Enter执行,则会收到Incorrect syntax near the keyword 'BEGIN'错误。

如果我将语句写成如下一行

    IF 1=1 BEGIN SELECT 'Foo' END ELSE BEGIN SELECT 'Bar' END

我得到了预期的结果。

    ---
    Foo

如果语句分散在多行上,是否有一个选项可以配置执行行为?

2 个答案:

答案 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