472,805 Members | 1,167 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,805 software developers and data experts.

Calling a DB/2 v8.2 stored procedure from perl

Hi all
I am trying to call a DB/2 v8.2 stored procedure from Perl DBI and am
getting an error message telling me, that the routine could not be
found in the library path.

[IBM][CLI Driver][DB2/NT] SQL0444N Routine "*_deposit" (specific name
"SQL050519190148810") is implemented with code in library or path
"\finban.cac_deposit", function "finban.cac_deposit" which cannot be
accessed. Reason code: "4". SQLSTATE=42724

Since 8.2 stores stored procedures internaly as byte code, the libaries
can indeed not be found in sqllib/FUNCTION/ROUTINE.

I tried to grant EXECUTE rights to all users on the packages found in
syscat.packages but this changed nothing.

Im am working with v8.2. on Windows, ActivePerl 5.61(638) and DBD-DB2
0.76 and DBI 1.34.

Cheers
Marc

Nov 12 '05 #1
3 2055
md********@gmail.com wrote:
Hi all
I am trying to call a DB/2 v8.2 stored procedure from Perl DBI and am
getting an error message telling me, that the routine could not be
found in the library path.

[IBM][CLI Driver][DB2/NT] SQL0444N Routine "*_deposit" (specific name
"SQL050519190148810") is implemented with code in library or path
"\finban.cac_deposit", function "finban.cac_deposit" which cannot be
accessed. Reason code: "4". SQLSTATE=42724

Since 8.2 stores stored procedures internaly as byte code, the libaries
can indeed not be found in sqllib/FUNCTION/ROUTINE.

I tried to grant EXECUTE rights to all users on the packages found in
syscat.packages but this changed nothing.

Im am working with v8.2. on Windows, ActivePerl 5.61(638) and DBD-DB2
0.76 and DBI 1.34.

The problem you have is independent of PERL.
Now in V8.2 SQL Procedures which are CREATEd in V8.2 ar eall internal.
But external (java, C, ..) procedures or SQL Procedures created prior to
V8.2 still have DLLs.

Cheers
Serge
--
Serge Rielau
DB2 SQL Compiler Development
IBM Toronto Lab
Nov 12 '05 #2
Serge Rielau wrote:
md********@gmail.com wrote:
Hi all
I am trying to call a DB/2 v8.2 stored procedure from Perl DBI and am
getting an error message telling me, that the routine could not be
found in the library path.

[IBM][CLI Driver][DB2/NT] SQL0444N Routine "*_deposit" (specific name
"SQL050519190148810") is implemented with code in library or path
"\finban.cac_deposit", function "finban.cac_deposit" which cannot be
accessed. Reason code: "4". SQLSTATE=42724

Since 8.2 stores stored procedures internaly as byte code, the libaries
can indeed not be found in sqllib/FUNCTION/ROUTINE.

I tried to grant EXECUTE rights to all users on the packages found in
syscat.packages but this changed nothing.

Im am working with v8.2. on Windows, ActivePerl 5.61(638) and DBD-DB2
0.76 and DBI 1.34.

The problem you have is independent of PERL.
Now in V8.2 SQL Procedures which are CREATEd in V8.2 ar eall internal.
But external (java, C, ..) procedures or SQL Procedures created prior to
V8.2 still have DLLs.

Cheers
Serge

To add to what Serge says, we got exactly the same problem with SPs being
called from VB after we migrated from V8.1 to V8.2 : what we found was that
at execution time DB2 was trying to convert the SP from the old, external,
format to the new, internal, format. The user running the SP did not have
authority to delete the old DLLs from the directory you noted above.

We eventually went through an exercise of deleting and recreating all the
SPs (we didn't have that many) to get round the problem, rather than giving
world update access to the directory in question.

HTH

Phil
Nov 12 '05 #3
Philip Nelson wrote:
Serge Rielau wrote:

md********@gmail.com wrote:
Hi all
I am trying to call a DB/2 v8.2 stored procedure from Perl DBI and am
getting an error message telling me, that the routine could not be
found in the library path.

[IBM][CLI Driver][DB2/NT] SQL0444N Routine "*_deposit" (specific name
"SQL050519190148810") is implemented with code in library or path
"\finban.cac_deposit", function "finban.cac_deposit" which cannot be
accessed. Reason code: "4". SQLSTATE=42724

Since 8.2 stores stored procedures internaly as byte code, the libaries
can indeed not be found in sqllib/FUNCTION/ROUTINE.

I tried to grant EXECUTE rights to all users on the packages found in
syscat.packages but this changed nothing.

Im am working with v8.2. on Windows, ActivePerl 5.61(638) and DBD-DB2
0.76 and DBI 1.34.
The problem you have is independent of PERL.
Now in V8.2 SQL Procedures which are CREATEd in V8.2 ar eall internal.
But external (java, C, ..) procedures or SQL Procedures created prior to
V8.2 still have DLLs.

Cheers
Serge


To add to what Serge says, we got exactly the same problem with SPs being
called from VB after we migrated from V8.1 to V8.2 : what we found was that
at execution time DB2 was trying to convert the SP from the old, external,
format to the new, internal, format. The user running the SP did not have
authority to delete the old DLLs from the directory you noted above.

Actually DB2 V8.2 for LUW will not convert SQL Procedures on its own.
I'm not sure what you observed, but it wasn't auto-conversion.
I do recommend to drop and recreate the procs in one shot though to
avoid problems many moons later with everyone scratching their head not
remembering that a conversion did take place eventually.
We eventually went through an exercise of deleting and recreating all the
SPs (we didn't have that many) to get round the problem, rather than giving
world update access to the directory in question.

HTH

Phil

--
Serge Rielau
DB2 SQL Compiler Development
IBM Toronto Lab
Nov 12 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: dw | last post by:
Hello all, I'm having a dickens of a time calling a stored procedure on a connection. Every time I do, it generates an error "Arguments are of the wrong type, are out of acceptable range, or are in...
0
by: JN | last post by:
Hello, I'm having problem calling stored procedures from Visual FoxPro database. I got the following exception error: "System.Data.OleDb.OleDbException: Unrecognized command verb" It seems...
6
by: Scott McNair | last post by:
Hi all, I'm having problems calling a stored procedure from within my code. If I execute the SP manually from a Query Analyzer window it runs without a hitch, but it seems it doesn't even fire...
4
by: Jack | last post by:
Hi, I am trying to run an example code from a book. However I am getting the following error message: Number: -2147217900 Description: Syntax error or access violation Source: Microsoft OLE...
14
by: krishna1412 | last post by:
Currently i am working in a project of report generation in MS ACCESS. The tables are in sql server 2000. I have to write stored proc in ms access. Illustration: I am having a stored proc...
4
by: eighthman11 | last post by:
I'm calling a stored procedure on a sql server from an access application. I just need the stored procedure to run I do not need any data returned from the stored procedure to my Access...
2
by: =?Utf-8?B?YW5vb3A=?= | last post by:
Hello, I have a stored procedure named as usp_CheckLogin with two parameters as @usID, @Password also values of these parameters are to be extracted using Request.Form from the fields in...
3
by: yinzara | last post by:
I have the following trigger that calls a DB2 stored procedure: DROP TRIGGER GGWU.TRI_A_MULTI_PROP@ CREATE TRIGGER GGWU.TRI_A_MULTI_PROP AFTER INSERT ON GGWU.MULTIPLIER_PROPERTY REFERENCING ...
1
by: rajpar | last post by:
Environment: Solaris (client + server) db2 version 7.2 latest fixpak (DB2 v7.1.0.111", "s050516" and "U803330") Compiler: gcc Here is my SP code executed on the client: CREATE PROCEDURE...
6
Soniad
by: Soniad | last post by:
Hello, I am excecuting a stored procedure in my ASP page , it has one out parameter (@confirm) . after executing the procedure i want to retreive this out parameter and assign it to variable...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
by: erikbower65 | last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA: 1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
0
by: kcodez | last post by:
As a H5 game development enthusiast, I recently wrote a very interesting little game - Toy Claw ((http://claw.kjeek.com/))。Here I will summarize and share the development experience here, and hope it...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Sept 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
by: Taofi | last post by:
I try to insert a new record but the error message says the number of query names and destination fields are not the same This are my field names ID, Budgeted, Actual, Status and Differences ...
5
by: DJRhino | last post by:
Private Sub CboDrawingID_BeforeUpdate(Cancel As Integer) If = 310029923 Or 310030138 Or 310030152 Or 310030346 Or 310030348 Or _ 310030356 Or 310030359 Or 310030362 Or...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
0
by: lllomh | last post by:
How does React native implement an English player?
0
by: Mushico | last post by:
How to calculate date of retirement from date of birth

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.