Has anyone executed a stored procedures from a perl CGI. I am having problems when there are many rows returned. I need to finish this soon so please help. Murli
The following is my pl/sql code CREATE OR REPLACE PROCEDURE new_worker_select_cur ( f_name IN OUT varchar2, l_name OUT varchar2, email OUT varchar2 ) AS CURSOR cursor_temp (cur_f_name IN varchar2) IS SELECT PREFIX_NAME, FIRST_NAME, MIDDLE_INITIAL, LAST_NAME, EMAIL, PEOPLE_ID, PID, SOURCE_ID,SOU RCE_INFO, NSF_USER_TYPE FROM test WHERE first_name = cur_f_name; temp_record cursor_temp%ROWTYPE; BEGIN IF( cursor_temp%ISOPEN) THEN CLOSE cursor_temp; END IF; OPEN cursor_temp(f_name); LOOP BEGIN FETCH cursor_temp INTO temp_record; EXIT WHEN cursor_temp%NOTFOUND; END; f_name := temp_record.first_name; l_name := temp_record.last_name; email := temp_record.email; DBMS_OUTPUT.put_line(f_name); DBMS_OUTPUT.put_line(l_name); DBMS_OUTPUT.put_line(email); END LOOP; RETURN; IF(cursor_temp%ISOPEN) THEN CLOSE cursor_temp; END IF; END NEW_WORKER_SELECT_CUR; ~ ---------------------------------------------------------------------- ----------------------------------------------- The following is my perl code #!/usr/local/bin/perl use DBI; use CGI qw(:all); $q = new CGI; print $q->header(-type=>'text/plain'); $ENV{'ORACLE_HOME'} = '/usr/local/apps/oracle/home'; $ENV{'ORACLE_SID'} = 'npaci'; $ENV{'TWO_TASK'} = 'npaci'; my $dbh = DBI->connect("DBI:Oracle:", "userid", "xxxxxxxxx", { PrintError => 1, # warn() on errors RaiseError => 0, # don't die on error AutoCommit => 1, # commit executes # immediately } ) or die "Cannot connect to database: $DBI::errstr"; my $p_fname = 'KELLY'; my $p_lname ; my $p_email; $csr = $dbh->prepare(qq{ BEGIN NEW_WORKER_SELECT_CUR(:p_fname, :p_lname, :p_email); END; }); $csr->bind_param_inout(":p_fname", \$p_fname,255); $csr->bind_param_inout(":p_lname", \$p_lname,255); $csr->bind_param_inout(":p_email", \$p_email,255); $csr->execute; print "$p_email $p_fname $p_lname \n"; # It works fine when there is only one rwo returned what do you do for multiple rows. #while (@row = $csr->fetchrow_array()){ # $delim = ""; #for($i = 0; $i < @row; $i++) #{ # print $delim . $row[$i]; # $delim = ","; # } #print "\n"; #} $dbh->disconnect(); # NOP under Apache::DBI exit; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]