use strict;
use warnings;
use DBIx::Connection;
use DBIx::PLSQLHandler;
my $Datasource = "dbi:Oracle:sid=dev;host=10.11.12.13";
my $connection = DBIx::Connection->new(
name => 'dev',
dsn => $Datasource,
username => 'scott',
password => 'tiger',
);
my $plsql = $connection->plsql_handler(
plsql => "DECLARE
TYPE group_type IS RECORD
( h1 groups.HANDLE_GROUP%TYPE,
g1 groups.GHANDLE%type);
group_rec group_type;
CURSOR data_groups IS
SELECT DISTINCT ghandle
FROM groups;
BEGIN
OPEN data_groups;
FETCH data_groups
INTO group_rec.g1;
WHILE data_groups % FOUND
LOOP
SELECT handle_group
INTO group_rec.h1
FROM groups
WHERE ghandle = group_rec.g1
AND rownum < 2;
DBMS_OUTPUT.PUT_LINE(group_rec.g1 || '==>'
+ || group_rec.h1);
:h2 :=group_rec.h1;
:g2 :=group_rec.g1;
FETCH data_groups
INTO group_rec.g1;
END LOOP;
CLOSE data_groups;
END;"
);
my $result_set = $plsql->execute();
print Dumper($result_set);
The above code is returning only one record, but when I execute my procedure in SQL Developer it is outputting many records
Any problem in my procedure...though |