CREATE OR REPLACE
TYPE STRING_TABLE AS TABLE OF VARCHAR2(50);
……
We define the following function in the package RV_TEST:
FUNCTION collectionInputExampleTable( inputList IN STRING_TABLE) RETURN sys_refcursor AS
tableCollection STRING_TABLE:=STRING_TABLE();
retCur sys_refcursor;
BEGIN
FOR i IN 1..inputList.count LOOP
tableCollection.extend(1);
tableCollection(i):=inputList(i);
--outputList(i):=inputList(i);
--DBMS_OUTPUT.put_line('ELEMENT:'||inputList(i));
END LOOP;
OPEN retCur FOR SELECT * FROM TABLE (tableCollection);
return retCur;
EXCEPTION WHEN OTHERS THEN
txnvs_db_util.tx_log( 3, 2, SQLCODE, SQLERRM, null );
RAISE;
END collectionInputExampleTable;
####
…..
print "\n============Stored Procedure=========\n";
my @arrParam=('Dusica 1','Dusica 2',"Dusica 3","Dusica 4","Dusica 5");
my $counter=0;
my $plSqlCodeBlock = "
DECLARE
inArr TAXNET.STRING_TABLE:=TAXNET.STRING_TABLE('";
foreach my $arrEl( @arrParam )
{
$plSqlCodeBlock .=$arrEl;
if($counterprepare($plSqlCodeBlock);
my $csr;
$sth->bind_param_inout( ":retVal", \$csr, 0, { ora_type => ORA_RSET } );
$sth->execute();
while(@row = $csr->fetchrow_array)
{
#$csr->finish;
print "\nList Element:$row[0]";
}
$csr->finish;
$sth->finish;
$dbHandle->disconnect;
print "\n============End=========<<<<<\n";
…..
####
…..
OPEN retCur FOR SELECT * FROM TABLE (tableCollection);
…..