DB2 不指定Schema调用存储过程失败 SQLCODE=-440, SQLSTATE=42884
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,■ 现象DB2,Schema和访问DB的用户名不一致。调用存储过程时必须指定Schema,否则Error。■ 错误代码存储过程 SET SCHEMA = "QUOT"; S
千家信息网最后更新 2025年01月19日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安全错误
数据库的锁怎样保障安全
万方数据库下载英文文献
网络技术双重性的案例
代理服务器的登陆软件
网络技术专业的发展前景
网络安全的意义包括几种
邯郸crm软件开发
网络安全管理员考试
sql数据库巡检要点
武清区数据网络技术售后服务
熟练网络安全维护
svn 服务器拒绝
服务器三种管理
服务器群安全设置
北京环境监测软件开发服务
阿里数据库架构
网站网络安全检测报告
mors网络安全
嘉定区网络技术服务推荐咨询
计算机网络安全现状及解决方案
关于网络安全活动举行的意义
代理服务器的登陆软件
股票软件开发需要什么
手机热点网络安全密钥不匹配
用sa登进去数据库附加不了
联合国数据库哪一年开始免费
联想服务器硬盘盒亮黄灯
怀旧服开放战场哪个服务器好
网站数据库破解
软件开发技术手册模板
美国国务院网络安全和新兴技术局