DB2 不指定Schema调用存储过程失败 SQLCODE=-440, SQLSTATE=42884
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,■ 现象DB2,Schema和访问DB的用户名不一致。调用存储过程时必须指定Schema,否则Error。■ 错误代码存储过程 SET SCHEMA = "QUOT"; S
千家信息网最后更新 2025年02月23日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安全错误
数据库的锁怎样保障安全
基站属于服务器吗
一个单位的网络安全
java了解数据库url
银行数据库录入员
北京服务器租用公司
oracle数据库的基本结构
服务器的设备管理器在哪里看
软件开发零基础
海安无忧网络技术创新服务
软件开发应该开什么税种发票
江苏海洋大学数据库课程设计
宣传网络安全信息手抄报
数据库中文件怎么查看
东营软件开发兼职
越狱恢复后数据库
sql数据库修改的语法错误
玻璃缺陷公开的数据库
河北ios软件开发平台
厌余年手游服务器维护公告
从事网络安全需要哪些基础
数据库证书有用吗
白银市服务器照片
一个单位的网络安全
怎样知道服务器类型
comtrol串口服务器
582320网络安全
湖北浪潮服务器维修调试哪家好
学生网络安全学习体会
手机请求服务器超时什么意思
上网行为管理服务器的连接