直接在DB2 z/OS上运行SQL PL,不使用存储过程



我正在试用z/OS上的IBM DB2(使用IBM Cloud Wazi/Virtual server实例(s390x)),并直接使用DBeaver和IBM Data Studio运行一些查询。

我想直接从SQL脚本执行一个简单的SQL PL脚本,就像我在DB2 LUW和其他数据库上做的那样。

BEGIN
DECLARE SQLCODE INTEGER;
SELECT COUNT(*) INTO SQLCODE FROM SYSIBM.SYSTABLES WHERE TYPE = 'T' AND TRIM(CREATOR) = 'IBMUSER' AND TRIM(NAME) = 'BOOKS';
IF SQLCODE = 1 THEN
EXECUTE IMMEDIATE 'DROP TABLE IBMUSER.BOOKS';
END IF;
END

执行后直接返回各种错误。

[Code: -104, SQL State: 42601]  ILLEGAL SYMBOL "SQLCODE". SOME SYMBOLS THAT MIGHT BE LEGAL ARE: SECTION. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.28.11]

我不能直接从SQL窗口/客户端工具发送SQL PL代码到数据库是正确的吗?我已经通过创建存储过程并使用CALL功能使其工作,但是我不希望创建所有类型的存储过程。

或者我可以这样配置数据库,以便我可以直接从SQL脚本中使用SQL PL。

这在DB2 z/OS上是不可能直接从SQL语句中执行的。SQL PL只能作为存储过程的一部分执行。

可以使用CALL

从SQL执行存储过程

相关内容

  • 没有找到相关文章

最新更新