From perl program query is not executed.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting From perl program query is not executed.
# 1  
Old 03-03-2015
From perl program query is not executed.

I have tried executing one particular query through perl.But I am unable to get the result. When I tried to execute the sysdate query its working when I executed my perl code.

The below query doesn't work.
QUERY 1:
Code:
my $sql ="select name from tab where rownum <6";

Received ora error :ORA-12705: Cannot access NLS data files or invalid environment specified

QUERY 2:
The below query works out.
Code:
my $sql ="select sysdate from dual";

When I tried to manually execute the 1st query without perl I am getting the output.
Code:
 
SQL> select tname from tab;
TNAME
------------------------------
BIN$Di6O8Q1CAc7gVAAwbvSoEg==$0
BIN$Di6O8Q1FAc7gVAAwbvSoEg==$0
BIN$Di6O8Q1IAc7gVAAwbvSoEg==$0
BIN$Di6O8Q1LAc7gVAAwbvSoEg==$0
BIN$Di6vfFnAb2PgVAAwbvSoEg==$0


Last edited by rbatte1; 03-03-2015 at 08:46 AM.. Reason: Added ICODE tags and compressed CODE tags blocks.
# 2  
Old 03-03-2015
The error indicates that the Perl script is executed in a different environment (most probably via cron). Make sure all necessary Oracle related variables are set before invoking the Perl script: ORACLE_HOME, PATH etc.
Code:
ORACLE_HOME=<your_oracle_home>
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_HOME PATH
<run you script>

# 3  
Old 03-04-2015
do I need to invoke all the above oracle variables to invoke inside the perl script.
# 4  
Old 03-04-2015
Just put them on top of your script. See orafaq "Setting the Oracle environment" for more.
# 5  
Old 03-04-2015
I have included the below variable in my perl code.

Please confirm
Code:
#!/usr/bin/perl
use strict;
use DBI;
ORACLE_HOME = "/oracle/product/10.2.0";
PATH="$ORACLE_HOME/bin";
export ORACLE_HOME PATH;

# 6  
Old 03-04-2015
No, you need:
Code:
my $ORACLE_HOME = "/oracle/product/10.2.0";
#You may also need to set the ORACLE SID
#my $ORACLE_SID="your_sid";

$ENV{ORACLE_HOME}=$ORACLE_HOME;
# Uncomment if you set ORACLE SID above
#$ENV{ORACLE_SID}=$ORACLE_SID;
$ENV{PATH}="$ORACLE_HOME/bin";

# 7  
Old 03-04-2015
Code:
$ENV{ORACLE_HOME} = "/oracle/product/10.2.0";
$ENV{PATH}="$ORACLE_HOME/bin";
export ORACLE_HOME PATH;

I am getting the below eror when executing.
Code:
Global symbol "$ORACLE_HOME" requires explicit package name at test.pl line 5.
Bareword "PATH" not allowed while "strict subs" in use at test.pl line 6.
Execution of test.pl aborted due to compilation errors.

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl program get a response before the program quits

I created a program, so a kid can practice there math on it. It dispenses varies math problems and the kid must input an answer. I also want it to grade the work they have done, but I can't find the best place for it to print out the grade. I have: if ( $response =~ m/^/ ) { $user_wants_to_quit... (1 Reply)
Discussion started by: germany1517
1 Replies

2. Shell Programming and Scripting

To check if the JAVA Program is successfully executed in sh shell scripting

Hi , I have written a shell script to call a java program say load_id.sh .This sh script indeed is executed implicitly in other sh script which calls 2 more sh scripts one by one. I need to check if the load_id.sh (which calls java program) is executed successfully only then continue with... (1 Reply)
Discussion started by: preema
1 Replies

3. Programming

A simple C program query ...

Given the following code inside the function ext3_write_super(): (It's there in Linux kernel 2.6.27.59) static void ext3_write_super (struct super_block * sb) { if (mutex_trylock(&sb->s_lock) != 0) BUG(); sb->s_dirt = 0; } The conditional test at if... (2 Replies)
Discussion started by: Praveen_218
2 Replies

4. Homework & Coursework Questions

Calling compiled C program with Perl program

Long story short: I'm working inside of a Unix SSH under a bash shell. I have to code a C program that generates a random number. Then I have to call the compiled C program with a Perl program to run the C program 20 times and put all the generated random #s into a text file, then print that text... (1 Reply)
Discussion started by: jdkirby
1 Replies

5. Shell Programming and Scripting

How to get the return code of subroutines executed as standalone as command line in Perl ?

How to do I get the return code of a subroutine in a perl module if invoke the subroutine as standalone, I have an module say TestExit.pm and in that i have a subroutine say myTest() which is returns 12, if i were to call the subroutine from command line like CASE:1 ( Without an explict... (2 Replies)
Discussion started by: ennstate
2 Replies

6. Shell Programming and Scripting

Unique constraint violated within stored procedure executed from Perl

Hi! I got an strange trouble executing a stored procedures that goes inserting line by line on a table. I mus integrate it with perl for an specific task... the hole process is controlled by e Perl script that: Load a text file calling sqlldr. Call a stored procedure that process the... (2 Replies)
Discussion started by: jparra
2 Replies

7. Shell Programming and Scripting

how to find status of last executed cmd in perl?

In shell we can find the status of last executed command by $? In perl what is the command to find the status of last executed command... Can any one please say??????????????? Thanks, Prabhu (1 Reply)
Discussion started by: prsampath
1 Replies

8. Shell Programming and Scripting

How to find pid of PS which executed by perl system function

hello All, I need to invoke by perl script some program/command and monitor it for 5 minutes . In case it still running for more then 5 min I need to send a signal which will stop it. I implemeted this as shown below by using eval & alarm and I'd like to know if there is a better way to... (1 Reply)
Discussion started by: Alalush
1 Replies

9. Shell Programming and Scripting

pro*c program for sql query

Hi all, I have sql query as follows. Please write a pro*c program for the following query. select sp1.cost_change ||','|| sp1.cost_change_desc ||','|| sp1.reason ||','|| to_char(sp1.active_date,'DD-MON-YYYY HH24:MI:SS') ||','|| sp1.status ||','|| sp1.cost_change_origin... (0 Replies)
Discussion started by: user71408
0 Replies

10. Shell Programming and Scripting

perl - why is the shell script executed before the print command?

i'm writing some simple scripts to help me learn perl. why does the print command get called after the shell script is executed? the purpose of the shell script is to simply echo to the screen "script run". which is does, but before the print command, you can clearly see the shell script is... (3 Replies)
Discussion started by: mjays
3 Replies
Login or Register to Ask a Question