Calling sqlplus from shell script
Hi ,
I am calling sqlplus from a shell script. After running sql commands successfully, it fails to continue executing commands from the shell script.
There is no EXIT statement at the end of the sql.
The error i get is,
SP2-0734: unknown command beginning "echo "FFFF..." - rest of line ignored.
Can someone please help.
how does your shell script looks like? did you check my other post today on this forum
sqlplus called from a shell script
Similar Messages
-
How to get an error code from from calling sqlplus from shell script?
Hello -
i am calling sqlplus from a bash shell script. If the sql statement generates an error, how can I return that error code (unsuccessful) back to the bash shell?
Thanks!user11340104 wrote:
Hello -
i am calling sqlplus from a bash shell script. If the sql statement generates an error, how can I return that error code (unsuccessful) back to the bash shell?
Well, let google be your friend,
http://www.google.co.in/search?rlz=1C1GGLS_enIN327IN327&sourceid=chrome&ie=UTF-8&q=sqlplus+error+codes
There are many threads I guess talking about the same issue.
HTH
Aman.... -
Problem while calling concsub from shell script
Hi All,
I am facing problem when I am trying to run CONCSUB utility from shell script.The same works well when I try it from command line.The only prob I am facing from shell script is assigning values to temporary variables.
This is how my script looks
#!/bin/bash
export PARM5="$5"
export PARM6="$6"
export PARM7="$7"
echo "INTPARM5=\"$PARM5\""
echo "INTPARM6=\"$PARM6\""
echo "INTPARM7=\"$PARM7\""
echo $FND_TOP/bin/CONCSUB $1 ONT 'Order Management Super User, Vision Operations (USA)' $3 WAIT=Y CONCURRENT ONT $PROGRAM "$INTPARM5" "$INTPARM6" "$INTPARM7"When I try to run the above shell based concurrent program it doesn't pass the parameters as expected and it errors out saying "Wrong number of arguments to call the procedure"
I tried my luck from some of the previous posts ({thread:id=2360776} ),but to vain
If anyone has any ideas,please suggest!!
Thanks in advance!!
Edited by: sandy on May 4, 2013 12:54 PMHere are your proofs
Proocedure
PROCEDURE abc(--p_errbuf OUT VARCHAR2,
--p_errcode OUT VARCHAR2,
p_order_no IN NUMBER DEFAULT NULL,
p_customer_id IN NUMBER DEFAULT NULL,
p_name IN VARCHAR2 DEFAULT NULL
IS
v_cname VARCHAR2(200);
v_ordered_date DATE;
v_order_number NUMBER;
v_order_type VARCHAR2(200);
BEGIN
fnd_file.put_line(fnd_file.output, 'Begin Execution');
SELECT DISTINCT ac.customer_name,
d.ordered_date ordered_date,
d.order_number order_number,
x.NAME order_type
INTO v_cname
,v_ordered_date
,v_order_number
,v_order_type
FROM oe_order_headers_all d,
oe_transaction_types_tl x,
wsh_delivery_details b,
wsh_delivery_assignments c
,ar_customers ac
WHERE 1 = 1
AND ac.customer_id = b.customer_id
AND d.order_type_id = x.transaction_type_id
AND x.LANGUAGE = 'US'
AND b.released_status = 'B'
AND b.source_header_id = d.header_id
AND c.delivery_detail_id = b.delivery_detail_id
AND d.order_number=NVL(p_order_no,d.order_number)
AND ac.customer_id = NVL(p_customer_id,ac.customer_id)
AND x.name=NVL(p_name,x.name)
AND NOT EXISTS (SELECT 1
FROM wsh_delivery_details b
WHERE 1 = 1
AND b.released_status != 'B'
AND b.source_header_id = d.header_id)
--BETWEEN ('1213794') and ('1213797'))
AND rownum<2;
INSERT INTO xxc_temp(customer_name,ordered_date,order_number,order_type) VALUES(v_cname,v_ordered_date,v_order_number,v_order_type);
COMMIT;
fnd_file.put_line(fnd_file.output, 'Order Number is' || v_order_number);
fnd_file.put_line(fnd_file.output, 'Order Type is' || v_order_type);
END;Script
#!/bin/bash
set -x
export PARM5="$5"
export PARM6="$6"
export PARM7="$7"
sqlplus -s $1 <<EOF
set head off feed off serverout on size 1000000
exec abc('$PARM5','$PARM6','$PARM7');
exit
EOFNow when I run the 'XX Order Detail CSV Report' I get the below log and no Output
+---------------------------------------------------------------------------+
Application Object Library: Version : 12.0.0
Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
XXKES_PDF_TRANSFER module: XX Order Detail CSV Report
+---------------------------------------------------------------------------+
Current system time is 06-MAY-2013 05:05:56
+---------------------------------------------------------------------------+
+ export PARM5=66432
+ PARM5=66432
+ export PARM6=
+ PARM6=
+ export PARM7=Mixed
+ PARM7=Mixed
+ sqlplus -s APPS/APPS
+---------------------------------------------------------------------------+
Executing request completion options...
Output file size:
0
+------------- 1) PRINT -------------+
Disabling requested Output Post Processing. Nothing to process. The output of the request is zero byte.
+--------------------------------------+
Finished executing request completion options.
+---------------------------------------------------------------------------+
Concurrent request completed successfully
Current system time is 06-MAY-2013 05:05:56
+---------------------------------------------------------------------------+After the concurrent program executed I queried the table xxc_temp and here you see the data
SQL> select * from xxc_temp;
CUSTOMER_NAME
ORDERED_D ORDER_NUMBER ORDER_TYPE
A. C. Networks
18-FEB-13 66432 MixedMy procedure fetches the data fro given set of i/p parameters but it doesn't give o/p coz it's a host based conc program.Please advise if there's a way to get the o/p in a host based conc program
Thanks!! -
Calling sqlplus from unix script
hello,
I am trying to connect to sqlplus from shell:
#!/bin/bash
SERVER_NAME=ORA1
sqlplus -s SYS/PASSWD@$SERVER_NAME AS SYSDBA <<EOF
select * from v\$version
EOF
However, the output is:
Usage: SQLPLUS [ [<option>] [<logon>] [<start>] ]
where <option> ::= -H | -V | [ [-L] [-M <o>] [-R <n>] [-S] ]
<logon> ::= <username>[<password>][@<connect_string>] | / | /NOLOG
<start> ::= @<URI>|<filename>[.<ext>] [<parameter> ...]
"-H" displays the SQL*Plus version banner and usage syntax
"-V" displays the SQL*Plus version banner
"-L" attempts log on just once
"-M <o>" uses HTML markup options <o>
"-R <n>" uses restricted mode <n>
"-S" uses silent mode
Do you have any idea about that?
Thanks.the connection was establised. thanks.
any idea why I am getting the same output twice for the following statement?
#!/bin/bash
ORACLE_SID=ORA1
export ORACLE_SID
sqlplus -s SYS/PASSWD@$ORACLE_SID AS SYSDBA <<EOF
select SUM(bytes) from dba_data_files where tablespace_name = 'tts1';
EOF
the output is
SUM(BYTES)
3.4773E+10
SUM(BYTES)
3.4773E+10 -
Calling sqlplus in shell script
hi all,
Can any one explain me why we use
sqlplus -s
command along with -s option in shell scripts only.sqlplus -sThat's the SILENT option. Oracle documentation :
SILENT Option
-S[ILENT]
Suppresses all SQL*Plus information and prompt messages, including the command prompt, the echoing of commands, and the banner normally displayed when you start SQL*Plus.
Did you try using that option in interactive mode ? -
Please help to call oracle procedure with out paramter from shell script
Hi
I want to call a process with out parameter from shell script. I am calling process in shell script in below way
function Process_loads {
( echo 'set serveroutput on size 1000000 arraysize 1'
echo "set pagesize 0 term on verify off feedback off echo off"
echo "BEGIN"
echo " dbms_output.put_line('Before Calling The package'); "
echo " x ( '$1', '$2', '$2', '$4', '$5', '$error_code'); "
echo " dbms_output.put_line('After Calling The package'); "
echo "EXCEPTION "
echo " WHEN OTHERS THEN "
echo " dbms_output.put_line('BIN_LOAD_ERROR' || SQLERRM); "
echo " ROLLBACK;"
echo "END;"
echo "/" ) | sqlplus -s $USER/$PASSWORD@$SID
Here $error_code is out paramter. All varaibles passed in process are declared with export command.
When executing .sh it gives below error
"sh ERROR at line 3: ORA-06550: line 3, column 99: PLS-00363: expression '' cannot be used as an assignment target ORA-06550: line 3, column 3: PL/SQL: Statement ignored".
Please help to get rid from this error or please suggest how to call a oracle procedure with out paramter from unix shell script.
Thanks in advanceYou can try this:
From sql*plus
SQL> ed
1 create or replace procedure my_proc(p_id in int, p_result out int)
2 as
3 begin
4 select 10 * p_id
5 into p_result
6 from dual;
7* end my_proc;
SQL> /
Procedure created.
SQL> set serveroutput on
SQL> declare
2 v_r int;
3 begin
4 my_proc(10,v_r);
5 dbms_output.put_line(v_r);
6 end;
7 /
100
PL/SQL procedure successfully completed.
from bash:
testproc.sh:
#!/bin/bash
(echo 'set serveroutput on';
echo 'declare';
echo 'v_r int;';
echo 'begin';
echo 'my_proc(10,v_r);';
echo 'dbms_output.put_line(v_r);'
echo 'end;';
echo '/';) | sqlplus -s u1/u1
Console:
oracle@mob-ubuntu:~$ chmod u+x testproc.sh
oracle@mob-ubuntu:~$ ./testproc.sh
100
PL/SQL procedure successfully completed.With kind regards
Krystian Zieja -
Calling linux / unix shell scripts from APEX
Hi -- I'm doing some prototyping, and would like to try calling a unix shell script on the server from within APEX.
Is this possible? Maybe thru Javascript? Other ways? Not sure if it's possible thru pl/sql.
FYI, I'm attempting to check username/password specified at login to see if it's a valid login
to another database (also specified at login). If there's an easier way to do this, I'd love to hear it!
We're highly motivated to have a single apex app work on multiple databases -- largely because of a lack of
administration resources on the other databases. All databases are accessible via database links from
the apex server (the links are necessary to implement other business rules), and I know I can get
the DML working. Powers that be prefer that Database Account authentication (or a facsimile thereof)
be used. I suspect I'm opening myself up to lots of criticism by disclosing this ... :)
Thanks for any ideas,
CarolR -- If I understand you correctly, a pl/sql process in APEX could invoke a java program on the server. Is that correct?
If so, is there any reason it couldn't just call a unix shell script? Seems they're both just executables recognized by the OS....
I know I called unix scripts from embedded sql a billion years ago, but don't recall the method for doing that. What is
the syntax I'd use in apex / pl/sql?
thanks,
Carol -
Calling an external shell script program from ABAP.
Hi,
Can i call an external shell script program from abap which is there on application server.
The FM WS_EXECUTE i know can be used for calling this purpose.
But i am getting a doubt that how can i call the external program from there.
Please clear my doubts.
Thanks in advance.
Vikashsearch in SCN for sm49 and sm69 Tr. you will surely find solutions for it, with a simple search.
-
Call a UNIX shell script from an oracle stored procedure
We need to call a UNIX shell script from an oracle stored procedure
i.e. the control should come back to the procedure once the script completes. Can any body help to achieve this ?There are various ways in achieving this.
For Example, you can call a PRO*C-Library residing on the database server.
This requires a PL/SQL library to be generated and some changes to the Listener configuration.
It is also possible to implement a java procedure on the database being invoked by a PL/SQL wrapper class.
In this way (and if used right) there is also granularity regarding the filestructure permissions given and it may be called during a Forms or other PL/SQL session.
The article below explains a more generic approach how to invoke shell commands from within an Oracle Instance.
Be careful with this, because it really works ;)
Refer to :
http://www.oracle-base.com/articles/8i/ShellCommandsFromPLSQL.php
Message was edited by:
user434854 -
Getting an exit value from a program called thru a shell script
how do i get the correct exit value always from a program called thru a shell script
the getExitValue of the process works fine someitmes but not always ...
Ex: write a pgm which sleeps for 5 secs & returns with exit(100).try to invoke this thru a script & try to run this script from Runtime.getRuntime.exec(..)
...the exit value is not same as 100.(it works if the sleep is not given though !!)
can nebody help??ive done that ...see the sample code for ex..
public void execute()
try{
Process program=Runtime.getRuntime().exec(cmd);
printOutput(program.getInputStream());
try
program.waitFor();
catch(InterruptedException e)
System.out.println("Command Interrupted: " + e);
System.out.println("Error status : "+program.exitValue());
catch(SecurityException e)
System.out.println("Error executing program "+e);
catch(IOException e)
System.out.println("Error executing program "+e);
.... -
Calling a java code from shell script.
Hi all,
I want to access a method of java class from a unix shell script.basiacally I want to know how to access a java code from a shell scriptt.If anybody has any info on this , kindly revert back to me.
Rgds,
SatyaHi,
Suppose I hv a main() method.
Then how to access that class from Shell Script.
Can u send me the piece os compiling and running process for it.
Rgds,
Satya -
Unable to see the sql serveroutput from shell script
Hello experts,
I have a shell script which I am using to call a pl/sql proc.
This proc writes to dbms_output.
I would like to capture the dbms_output to a file when calling sqlplus from my shell script.
Here is the code:
===============================
echo "
sqlplus apps/$APPS_PWD << ENDOFSQL
set serveroutput ON
set feedback off
set verify off
set linesize 250
set pagesize 250
begin
jdr_utils.listcustomizations('$i');
end;
exit
ENDOFSQL
" >> new.log
===============================
What I get in the 'new.log' is given below:
===============================
sqlplus apps/prj08app << ENDOFSQL
set serveroutput ON
set feedback off
set verify off
set linesize 250
set pagesize 250
begin
jdr_utils.listcustomizations('/oracle/apps/irc/candidateSelfService/webui/VisVacDispPG');
end;
exit
===============================
ENDOFSQL
What I would like to get is the dbms_output given by the procedure.
Please suggest.
Thanks,
VinodVinod wrote:
Hello experts,
I have a shell script which I am using to call a pl/sql proc.
This proc writes to dbms_output.
I would like to capture the dbms_output to a file when calling sqlplus from my shell script.
Here is the code:
===============================
echo "
sqlplus apps/$APPS_PWD << ENDOFSQL
set serveroutput ON
set feedback off
set verify off
set linesize 250
set pagesize 250
begin
jdr_utils.listcustomizations('$i');
end;
exit
ENDOFSQL
" >> new.log
===============================
What I get in the 'new.log' is given below:
===============================
sqlplus apps/prj08app << ENDOFSQL
set serveroutput ON
set feedback off
set verify off
set linesize 250
set pagesize 250
begin
jdr_utils.listcustomizations('/oracle/apps/irc/candidateSelfService/webui/VisVacDispPG');
end;
exit
===============================
ENDOFSQL
What I would like to get is the dbms_output given by the procedure.
Please suggest.
Thanks,
VinodYou need to realize & understand that EVERY command line command runs in its own separate OS process.
So the results from DBMS_OUTPUT get sent to Standard Out for the sqlplus process; which is NOT attached to your terminal.
The bottom line is you can't get there from here. -
Passing parameters to query called through a shell script
I have a file called getInfo.sql that contains a query like:
spool ./myInfo.txt
select *
from myTable
where col1 = '&val1'
and col2 = '&val2';
spool off
I would like to call SQLPLUS from a shell script and pass this file in as a parameter. How would I pass in the values for
&val1 and &val2 ?
Any help would be appreciated.
Thanks
RajanYes, you put a line in the script that looks like this:java classname parameter1 parameter2 parameter3 ...Then the JVM will call the static main(String[] args) method of "classname" and put those parameters into the "args" array.
If you are asking how to generate such a script, or how to call it from your COBOL program, sorry, I don't know how to do that. -
Passing parameters from shell script to OWB process flow
Hi all,
I am running OWB process flow (using the template script provided by oracle) and i want to pass two date parameters as shown below:
sqlplus -s $SQL_USER/$SQL_PWD@$ORACLE_SID @$HOME_DIR/src/vmc_oem_exec_script.sql OWB_OWNER VMC_POST_DW_PF_LOC_SIT PROCESS VMC_NM1_PORT_MAIN "," "P_DATE_FROM=$DATE_FROM,P_DATE_TO=$DATE_TO"
How do i catch those values in process flow and pass those to mappings in Process flow?
Do i need to create PF variables with same names or any name will do?
Thanks in advanceThis document is explaining how to pass data between activities in process flow.
I am passing parameters from a shell script.
Any ideas,how to pass parameters from shell script and then initialize the process flow variables based on those values and then pass them further to mappings.
Thanks -
Query v$ views from shell script fail
Hi everybody,
the query below is runing well with a SQL*PLUS (database is mounted and not open)
SQL> SELECT member FROM v$logfile;
MEMBER
+DATA/testgfi/onlinelog/group_1.298.773871647
+DATA/testgfi/onlinelog/group_2.294.773871647
+DATA/testgfi/onlinelog/group_3.295.773871647
But Giving error if I run it from Shell script ???
$ sqlplus -s '/ as sysdba' << EOF
SELECT member FROM v$logfile;
EOFSELECT member FROM v
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only..
Please help..
Thanks..
AljaroAljaro wrote:
Hi everybody,
the query below is runing well with a SQL*PLUS (database is mounted and not open)
SQL> SELECT member FROM v$logfile;
MEMBER
+DATA/testgfi/onlinelog/group_1.298.773871647
+DATA/testgfi/onlinelog/group_2.294.773871647
+DATA/testgfi/onlinelog/group_3.295.773871647
But Giving error if I run it from Shell script ???
$ sqlplus -s '/ as sysdba' << EOF
SELECT member FROM v$logfile;
modify as below
SELECT member FROM v\$logfile;
Maybe you are looking for
-
After upgrading to Lion internal mic does not work with Facetime
After upgrading to Lion internal mic does not work with Facetime. The mic is picking up sound as noted in System Prefs. This was working just fine before the updgrade. Facetime works OK on my iPod.
-
How do I migrate everything from one recent Imac to another, temporarily.
I have an Imac running Yosemite, with all sorts of programs (Microsoft for MAC, dropbox, filemaker) photoshop, anti virus etc etc) but it needs to go off for repairs (the stand is broken). Fortunately, as its in a business theres an un-used very rece
-
Mailbox vs. smart mailbox - advantages?
I'm converting from Outlook express to Mail. I get the concept of smart mailboxes (e.g., all the mail stays in the inbox and the smart mailboxes are just searches). However, I liked the rules setup with specific mailboxes in outlook. As far as I can
-
HT4061 how do i open an iphone for all carriers through imei payment?
my friend has an iphone that was bought at HONK KONG but belong to an american carrier. i wanted to know how do i open my phone for an israeli company carrier throguh IMEI? i know i need to pay but through what site do i do this? apple? thank you
-
DBS_ORA_SCHEMA environment variable?
Hi Gurus, I am doing a refresh from Production (P01) to Development (D01). I am having problem to start SAP in D01. I have run the OPS$ script but still unsuccessful. Based on note 534765, it advice to change environment dbs_ora_schema to SAP<SID>. B