chai6125 has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks, I'm totally confused about what is going wrong here. Here is my Perl code.
my $COUNT_1; my $parameter1 = 'PU_CLERK'; $COUNT_1 = `sqlplus -s hr/password\@dbname\@sql_script.sql $parameter1 +`; $COUNT_2 = `sqlplus -s hr/password\@dbname\@sql_script1.sql $parameter +2`; if ($COUNT_1 == $COUNT_2) { then do something }

I'm basically trying to pass a parameter to my sql script from perl namely $parameter1 which is how we do in a typical unix script. Here is a snippet of my oracle script. '&1' is my parameter.

select count(*) from employees where job_id <> '&1' and salary > 9000 and commission_pct is not null order by first_name desc / exit;

But my oracle instead of returning a number is returning a error string.

But when i don't use the parameter and hardcode everything works fine.

my $COUNT_1; my $parameter1 = 'PU_CLERK'; $COUNT_1 = `sqlplus -s hr/password\@dbname\@sql_script.sql`; $COUNT_2 = `sqlplus -s hr/password\@dbname\@sql_script1.sql`; if ($COUNT_1 == $COUNT_2) { then do something }
select count(*) from employees where job_id <> 'PU_CLERK' and salary > 9000 and commission_pct is not null order by first_name desc / exit;
So my question is how to pass arguments properly to oracle. Where am i going wrong :( Please ignore the + sign I don't know how to remove that

Replies are listed 'Best First'.
Re: what is wrong with this perl script
by toolic (Bishop) on Sep 16, 2014 at 13:38 UTC