On Dec 16, 6:52 pm, Serge Rielau <srie...@ca.ibm.comwrote:
2803s...@gmail.com wrote:
[IBM][CLI driver]SQL0444N Routine "VERIFY_USER" (specific name
"SQL071201165900590") is implemented with code in library or path
"\VERIFY_USER", function "VERIFY_USER" which cannot be accessed.
Reason code "4". SQLSTATE = 42724
Is this UDF defined by you? Which language? Does the path make any
sense? (It looks dubious)
I'm wondering whether this has something to do with the search path...
Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
Serge,
<<Is this UDF defined by you? Which language?>>
The stored procedure is defined by me and has been working fine for
many months. Written in SQL. Also tried other SPs that have been
working well and same thing.
<<Does the path make any sense? (It looks dubious) >>
I'm not sure what you mean by this. All procs are written on the
client and sent to the server by using the CLP: DB2 CONNECT TO
MYDATABASE USER ME USING MYPASSWORD <ENTER (get connection message)
then
db2 -td@ -vf "C:\ADDRESS\SP_MY_STORED_PROC.SQL" where
SP_MY_STORED_PROC.SQL is the name of the local file containing the SQL
code for the SP. (Returns success message).
I do not declare the address on the server. All these procs have
worked fine for a long time.
Is there a way for me to check the search path, change a PATH
environmental variable, or do anything else to make the SP more
findable? Remember that the Command successfully gets the number and
type of parameters before trying to execute the SQL query (which is
what fails).
SS
PS The total SP looks like (Extra white space removed):
DROP SPECIFIC PROCEDURE "DATASHIELD"."VERIFY_USER"@
CREATE PROCEDURE "DATASHIELD"."VERIFY_USER" (
IN p_USER_ID VARCHAR(18),
IN p_PASSWORD VARCHAR(250),
OUT p_SQLSTATE CHAR(5) )
SPECIFIC "DATASHIELD"."VERIFY_USER"
DYNAMIC RESULT SETS 1
READS SQL DATA
LANGUAGE SQL
P1: BEGIN
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
DECLARE C1 CURSOR WITH RETURN FOR
SELECT
UNIQUE_ID,
GROUP_ID,
SIGNATURE,
NAME_TO_SIGN
FROM DATASHIELD.USERS U
WHERE UCASE(U.USER_ID) = UCASE(p_USER_ID) AND U.PASSWORD =
p_PASSWORD; DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT
FOUND
SET p_SQLSTATE = SQLSTATE;
VALUES (SQLSTATE) INTO p_SQLSTATE;
OPEN C1;
END P1@