DB2 不指定Schema调用存储过程失败 SQLCODE=-440, SQLSTATE=42884
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,■ 现象DB2,Schema和访问DB的用户名不一致。调用存储过程时必须指定Schema,否则Error。■ 错误代码存储过程 SET SCHEMA = "QUOT"; S
千家信息网最后更新 2024年11月30日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安全错误
数据库的锁怎样保障安全
从事软件开发头疼
计算机网络技术的专业结构
科技互联网领域指哪个领域
神武跟服务器
河南系统软件开发哪家专业
系统数据库的简称
同济院设计院软件开发
四川大学网络安全学院招生电话
g6管理服务器如何启动
数据库管理系统的发展论文
安卓基于数据库图书
克而瑞物管数据库价格
怎样把头像保存到服务器
上海长宁区服务器防篡改
单位网络安全重要关注事项
魔兽数据库军团
网络安全nmap端口扫描
多串口服务器哪家好
网络安全专项检查动员部署会
互联网进军黑科技建议
王者荣耀换服务器方法
分布式测网络技术教程
教师网络安全知识教育平台
重庆职高网络安全比赛
数据库中短日期的输入掩码
魔兽雕文数据库
网络安全反思作文
喀什科尧软件开发公司
百度网络安全证书过期
南充棋牌软件开发