专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > DB2

db2如何删除存在的存储过程

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
db2怎么删除存在的存储过程啊
-- drop procedure.
IF Exists(select 1 from syscat.procedures where procname=upper('P_getdata') and procschema='TEMP')
  drop procedure TEMP.P_getdata
end if;
create procedure TEMP.P_getdata
....

------解决方案--------------------
你是说上面的语句无法执行 还是怎么的?
------解决方案--------------------
IF Exists(select 1 from syscat.procedures where procname=upper('P_getdata') and procschema='TEMP')
drop procedure TEMP.P_getdata
end if;

这种在plsql或者tsql里面才有的

直接drop procedure TEMP.P_getdata
就行了
------解决方案--------------------
可以借助工具嘛。比如 ibm data studio.方便管理。
------解决方案--------------------
直接drop procedure TEMP.P_getdata,在db2里没法通过这种方式判断
------解决方案--------------------
db2里存储过程是通过 模式名PROCSCHEMA,过程名PROCNAME,参数个数PARM_COUNT,参数类型PARM_SIGNATURE确定其唯一性的
其中PARM_SIGNATURE在SYSCAT.PROCEDURES以十六进制形式存储

删除存储过程的时候必须带各个参数的类型才能成功
例如:
创建以下两个存储过程
CREATE PROCEDURE PRIVATE.TEST_P (IN a VARCHAR(1)) BEGIN ...
CREATE PROCEDURE PRIVATE.TEST_P (IN a VARCHAR(1),IN b INTEGER) BEGIN ...
删除以上两个存储过程
DROP PROCEDURE PRIVATE.TEST_P (VARCHAR())
CREATE PROCEDURE PRIVATE.TEST_P (VARCHAR(),INTEGER))

ps:db2里函数也是相同,类似于C++里的函数
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: