CREATE OR REPLACE PROCEDURE (?????(the array cannot be used ) IN) as You can only use CREATE OR REPLACE PROCEDURE (v_scalr_in IN) as #### my $a; foreach (@arrayofvariables){ $a .= $_; } my $proc_run = "BEGIN run_proc(:1) END\;" # then bind it with $a #### CREATE OR REPLACE PROCEDURE ( v_scalar_in IN VARCHAR) AS here you have to substr with the index of "," and then send it in for loop for your processing