为什么这不适用于IBM Data Studio (Eclipse):
IF EXISTS (SELECT 1 FROM SYSIBM.SYSVIEWS WHERE NAME = 'MYVIEW' AND CREATOR = 'MYSCHEMA') THEN
DROP VIEW MYSCHEMA.MYVIEW;
END IF;
我觉得它与语句终结符(;)有关但我找不到有效的语法。
How to check a procedure/view/table exists or not before dropping it in db2 9.1?的另一个类似问题表明,他们必须创建一个proc,但这不是我们的解决方案。
答案 0 :(得分:1)
来自IBM的书:Getting Started with Data Studio for DB2:
声明终结者:你可以发展 单个中的多个SQL语句 SQL Editor窗口通过结束每个 带语句终止符的语句 字符。默认终止符是a 分号。但你可以改变它 右键单击另一个字符 编辑器的内容和 选择上下文菜单操作Set 声明终结者。
修改强>
好的,问题似乎是语法。很多人似乎都有同样的问题。示例请参阅DROP TABLE, VIEW, ... only IF EXISTS。
在示例中,提到了两种解决方案。
Begin atomic
db2perf_quiet_drop
有关详细信息,请阅读喜欢的页面。
第二次编辑:
我刚刚在IBM页面上找到了Begin ataomic
的一个非常好的解释。请参阅IBM的Advanced SQL Scripting PL。例2就是你要找的。 p>