如何删除DB2中存在的表空间
我一直在尝试删除一个表空间,如果它存在于DB2(Z/OS)中,如果它存在的话。这样做的目的是能够有一个脚本来创建新的dev或替换现有的dev数据库 我一直在尝试这样的事情:如何删除DB2中存在的表空间,db2,zos,Db2,Zos,我一直在尝试删除一个表空间,如果它存在于DB2(Z/OS)中,如果它存在的话。这样做的目的是能够有一个脚本来创建新的dev或替换现有的dev数据库 我一直在尝试这样的事情: BEGIN IF (exists (SELECT * FROM SYSIBM.SYSTABLESPACES WHERE TBSPACE = 'SGE')) THEN DROP TABLESPACE "SGE"; END IF; END @ 但它似乎并没有放弃(至少在DataStudio4
BEGIN
IF (exists (SELECT * FROM SYSIBM.SYSTABLESPACES WHERE TBSPACE = 'SGE')) THEN
DROP TABLESPACE "SGE";
END IF;
END @
但它似乎并没有放弃(至少在DataStudio4.1上是这样)。还有什么我应该做的吗
提前感谢穆斯塔乔的评论是正确的。我留下了这样的代码,它为我工作:
BEGIN
IF (exists (SELECT * FROM SYSIBM.SYSTABLESPACES WHERE TBSPACE = 'SGE')) THEN
EXECUTE IMMEDIATE 'DROP TABLESPACE "SGE"';
END IF;
END @
我也可以对其他对象(如模式等)执行相同的操作。我只需要根据要删除的内容更改exists条件。尝试动态执行语句:EXECUTE IMMEDIATE'DROP TABLESPACE“SGE”'
您是对的,我应该事先考虑EXECUTE命令。谢谢!