我正在尝试创建一个db2存储过程,它将清除所有数据表并将索引重置为0。创建过程非常简单,但问题是db2会立即忘记它的存在。我做错什么了?
创建简单脚本:
create procedure CLEARTABLES()
language sql
BEGIN
commit;
truncate TABLE1 immediate;
truncate TABLE2 immediate;
truncate TABLE3 immediate;
END;
确保我们可以执行:
GRANT EXECUTE ON PROCEDURE CLEARTABLES TO PUBLIC;
在这里,一切都崩溃了 No authorized routine named "CLEARTABLES" of type "PROCEDURE" having compatible arguments was found.. SQLCODE=-440, SQLSTATE=42884, DRIVER=4.26.14
```
CALL CLEARTABLES;
我也尝试过执行,但这似乎没有任何作用。
EXECUTE CLEARTABLES;
为了证明它的存在:
SELECT * FROM SYSIBM.SYSROUTINES s
WHERE s.ROUTINETYPE = 'P' AND s.ROUTINENAME = 'CLEARTABLES'
我觉得我在这里遗漏了非常明显的东西,所以我尝试了很多小东西,比如括号,没有括号,小写/大写等等。我使用dbeaver,我可以看到下面的过程 `Application Objects > Procedures` 所有caps中的命名cleartables都没有参数,但是db2以某种方式找不到它。
暂无答案!
目前还没有任何答案,快来回答吧!