my $accessroles;
$accessroles = $dbh_conn->run_query('check_user', "begin Mrf_Maint.check_user(?,?); end;", $login_id, $accessroles );
while(my $hashRef = $accessroles->fetchrow_hashref()){
foreach(keys %$hashRef){
print "$_ is $hashRef->{$_}
";
}
}
####
my $self = shift;
my $name = shift;
my $query = shift;
my $login_id = shift;
my $accessroles = shift;
my $ora = "ORA_RSET";
my $sth = $self->{'_conn'}->prepare($query) || print $DBI::errstr;
$sth->bind_param(1, $login_id);
$sth->bind_param_inout(2, \$accessroles, 0, { ora_type => 'ORA_RSET'} );
$sth->execute() || print $DBI::errstr;
return $accessroles;
##
##
CREATE OR REPLACE PACKAGE Mrf_Maint AS
TYPE mrf_role IS REF CURSOR;
PROCEDURE check_user(mrfid IN VARCHAR, mrfrole OUT Mrf_Maint.mrf_role);
END Mrf_Maint;
/
##
##
CREATE OR REPLACE PACKAGE BODY Mrf_Maint
IS
PROCEDURE check_user(mrfid VARCHAR,
mrfrole OUT Mrf_Maint.mrf_role)
IS
crsr Mrf_Maint.mrf_role;
BEGIN
OPEN crsr FOR SELECT access_role FROM TABLE WHERE field = mrfid;
END;
END;
/