Click here to Skip to main content
12,947,379 members (47,716 online)
Rate this:
 
Please Sign up or sign in to vote.
I'm using Perl 5, version 14.The Win32::ODBC is VERSION = '0.034'; and Oracle as database. Im able to reteive information from the database using queries like "emp_id, emp_name from emp" by the following code


use Win32::ODBC;

$db= new Win32::ODBC("DSN=datasourcename;UID=username;PWD=passwrd") ||
+ die "Error: " . Win32::ODBC::Error();


$db->Sql("SELECT emp_Id, emp_name, salary FROM Sample.Emp");

while($db->FetchRow())
{
@values = $db->Data;
print @values;
}
$db->Close();

Instead of using quries in the perl program, I like to use stored procedures. I have created a storedproc called sp_rank.


PROCEDURE sp_rank(p_cursorVar out CursorType)
is
begin
open p_cursorVar for
select emp_id, emp_name from emp;

End sp_rank;

I would like to know how to pass storedproc name in the perl and retrieve the data.
Posted 18-Jan-13 8:22am

1 solution

Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

try this??

my $ST=$DB->prepare("call apps.package_name.proc(?, ?, ?)");
my ($ST_result, $arg1, $arg2);
...
$ST->bind_param(1, $arg1);
$ST->bind_param(2, $arg2);
$ST->bind_param_inout(3, \$ST_result, 0, { ora_type=>ORA_RSET } );
$ST->execute();
while (my $hr = $ST_result.fetchrow_hashref) {
    ... process data ...
}
  Permalink  
Comments
Member 9767982 20-Jan-13 11:47am
   
This code dont work for win32::ODBC.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 5,059
CHill60 3,235
Maciej Los 2,538
Jochen Arndt 1,935
ppolymorphe 1,795


Advertise | Privacy | Mobile
Web02 | 2.8.170518.1 | Last Updated 19 Jan 2013
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100