db2存储过程

yr9zkbsy  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(360)

我正在尝试创建一个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以某种方式找不到它。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题