Click here to Skip to main content
11,931,584 members (63,325 online)
Rate this:
Please Sign up or sign in to vote.
See more: Perl Win32 Oracle ODBC
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 9: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

Advertise | Privacy | Mobile
Web04 | 2.8.151126.1 | Last Updated 19 Jan 2013
Copyright © CodeProject, 1999-2015
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