Get the App
SLTechnology News&Howtos  ›  Database  › 

DB2 does not specify Schema call stored procedure failed SQLCODE=-440, SQLSTATE=42884

Shulou Source: shulou.com Published: 2022-06-01 14:12:51 09月18日 Update

■ phenomenon

The DB2,Schema does not match the user name that accesses the DB.

Schema must be specified when calling the stored procedure, otherwise Error.

■ error code

Stored procedure

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

■ correct code

Append currentFunctionPath to Tomcat context.xml.

If you want to call a stored procedure in a DB tool such as Toda, but do not specify Schema

Such as CALL COPY_TABLES (.)

You need to specify Current Path when you create a stored procedure

SET CURRENT PATH = "SYSIBM", "SYSFUN", "SYSPROC", "SYSIBMADM", "DB2INST1", "QUOT"

■ reason

DB2 stored procedures (and functions) are not controlled by CURRENT SCHEMA, but by CURRENT PATH.

Tags: Procedures storage code control consistency functions causes tools are made up of phenomena users user names errors Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Redmi Linux Shulou Tech Info macOS vpn