Click here to Skip to main content
12,950,602 members (62,776 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");

@values = $db->Data;
print @values;

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)
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
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 } );
while (my $hr = $ST_result.fetchrow_hashref) {
    ... process data ...
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,829
CHill60 3,460
Maciej Los 2,953
Jochen Arndt 1,975
ppolymorphe 1,820

Advertise | Privacy | Mobile
Web02 | 2.8.170525.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