Toad中的无效sql语句 - oracle db

时间:2018-05-04 16:07:03

标签: oracle toad

以下查询让我

  

无效的sql语句

在Toad

IF EXISTS (SELECT T_BASIS_ACCESS_ID FROM ECKERNEL_MCA.T_BASIS_ACCESS WHERE ROLE_ID LIKE 'MCA.GFS.LEAD') 
    BEGIN
       SELECT OBJECT_ID, NAME  FROM ECKERNEL_MCA.OV_AREA WHERE END_DATE IS NULL AND OBJECT_ID  IN
       (SELECT DISTINCT REPLACE(REPLACE(REPLACE(ATTRIBUTE_TEXT, '(', '' ),')',''), '''', '') 
       FROM ECKERNEL_MCA.T_BASIS_OBJECT_PARTITION WHERE T_BASIS_ACCESS_ID IN 
       (SELECT T_BASIS_ACCESS_ID FROM ECKERNEL_MCA.T_BASIS_ACCESS WHERE ROLE_ID LIKE 'MCA.GFS.LEAD') )
    END
ELSE
    BEGIN
       SELECT OBJECT_ID, NAME  FROM ECKERNEL_MCA.OV_AREA WHERE END_DATE IS NULL
    END    

1 个答案:

答案 0 :(得分:0)

据我所知,此代码确实无效。下面的那个可能会编译。请注意:

  • 我创建了将保存SELECT语句结果的局部变量。你需要在PL / SQL
  • 中使用它们
  • 尝试向您展示应该处理异常。在“IF-THEN-ELSE”中没有多大用处,因为 - 如果第一个SELECT(我将其命名为“A”)失败,它将不会返回NULL但会引发NO_DATA_FOUND异常。我不知道你的表格或存储在那里的数据,所以 - 也许这段代码是免费的,我不知道。
  • 我无法测试它,因为我没有你的桌子,也不想自己创建它们。
SPC SPC ansi-term