DB2 不指定Schema调用存储过程失败 SQLCODE=-440, SQLSTATE=42884
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,■ 现象DB2,Schema和访问DB的用户名不一致。调用存储过程时必须指定Schema,否则Error。■ 错误代码存储过程 SET SCHEMA = "QUOT"; S
千家信息网最后更新 2026年11月01日DB2 不指定Schema调用存储过程失败 SQLCODE=-440, SQLSTATE=42884
■ 现象
DB2,Schema和访问DB的用户名不一致。
调用存储过程时必须指定Schema,否则Error。
■ 错误代码
存储过程
SET SCHEMA = "QUOT"; SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","DB2INST1"; CREATE PROCEDURE COPY_TABLES (。。。。。。) BEGIN 。。。。。。 END; GRANT EXECUTE ON PROCEDURE "QUOT"."COPY_TABLES"(INTEGER, TIMESTAMP, INTEGER, INTEGER ) TO USER "DB2INST1" WITH GRANT OPTION;Mapper.xml
CALL COPY_TABLES ( #{userId, jdbcType=INTEGER, mode=IN} , #{currentTime, jdbcType=TIMESTAMP, mode=IN} , #{reasonTypeFlag, jdbcType=INTEGER, mode=IN} , #{copyReason, jdbcType=INTEGER, mode=IN} ) Mapper.java
/** * Copy Tables * * @param param the parameter */ void copyTables(Map param); Service.java
Map paramMap = new HashMap(); paramMap.put("userId", userId); paramMap.put("currentTime", currentTime); paramMap.put("reasonTypeFlag", 1); paramMap.put("copyReason", 1); Mapper.copyQuotationTables(paramMap); Tomcat context.xml
■ 正确代码
Tomcat context.xml中追加currentFunctionPath。
如果想在DB工具(如:Toda)中调用存储过程,但不指定Schema,
如:CALL COPY_TABLES(。。。。。。)
需要在创建存储过程时,指定Current Path
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","DB2INST1","QUOT";■ 原因
DB2存储过程(和函数)不受CURRENT SCHEMA控制,而是由CURRENT PATH控制。
过程
存储
代码
控制
一致
函数
原因
工具
是由
现象
用户
用户名
错误
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
蓝思科技飞鸽互联网
中关村互联网科技集团
互联网金融 科技
狮子座互联网科技
银优互联网科技有限公司
天扬科技互联网广告
哈尔滨秒房互联网科技有限公司
互联网科技产品
字节跳动和互联网科技
互联网和黑科技的看法
昭通互联网科技选哪家
互联网科技公司实习生
中国航天科技大学国际工业互联网
未来五年的互联网科技
福仕德教育科技互联网
求路客互联网科技电话
恒生科技指数 中概互联网
互联网科技大会大佬
长沙易易互联网科技有限公司
互联网科技大佬云集
中关村互联网科技集团
金融科技与互联网金融
成都互联网科技公司100强
南山科技园互联网公司有哪些
互联网科技股为什么大涨
互联网科技年终奖
全球科技与互联网公司市值变化
互联网的科技体现在哪里
盐城市攀科互联网科技有限公司
安徽九吞吴互联网科技有限公司