We have a procedure e.g. prc_synonym created in Oracle 12c Database. I want to do small change in procedure through Unix. I have that changed procedure (prc_synonym) in proc.sql file. Want to recompile that procedure through Unix so that changes should reflect in existing procedure in database.
I have tried below options:
1. Executing that sql by command @proc.sql
2. then Exec prc_synonym
But procedure is not getting recompiled , not able to see changes in database procedure.
I see nothing here to indicate this is a shell scripting issue. If you are connecting to the database with sqlplus, then submitting the script:
And not getting the results you expect, then the problem is entirely in your sql script. You'd be much better off post to a forum at OTN. And when you do, save time by posting the code before some has to ask you to do so. No one can debug code they cannot see.
But just to address the immediate shell script question:
But that procedure is not getting created in database through above Unix code.
Like I said, it has nothing to do with your shell script.
You'd be far better off posting this (with the actual contents of proc.sql and any errors it throws) on the appropriate OTN forum: Space: SQL and PL/SQL | Oracle Community
If I take procedure code and execute on Toad, procedure is getting created successfully with no errors. I want this (to create procedure) through Unix.
If I take procedure code and execute on Toad, procedure is getting created successfully with no errors. I want this (to create procedure) through Unix.
I see nothing fundamentally wrong with the command you showed, though I would have done it. I'm not a fan of putting the password after the net service name. I showed you how I would have done it. If all you are doing is passing sqlplus the name of a script to execute, there is no reason to use input redirection.
In spite of your assertion that it works in Toad, I still believe it comes down to a problem with your sql script, not your unix code.
Can you debug code you cannot see?
Can you debug code with no error codes?
proc.sql having procedure block (create or replace procedure).
But that procedure is not getting created in database through above Unix code.
...
...
You may want to check a few things:
1) Are you connecting to the correct schema ("darwin_ext")?
2) Will the schema "darwin_ext" own the procedure "prc_synonym"?
3) Did you check that the procedure name in script "proc.sql" is not prefixed by a schema name?
4) If the procedure name in "proc.sql" is prefixed by a schema name, then did you check that it is "darwin_ext"?
5) Are you using "create or replace procedure prc_synonym" instead of "create procedure prc_synonym"?
6) Do you have a forward-slash character ("/") at the end of your procedure i.e. after the line with the "END;" statement in your script?
7) Did you add the command "show errors" after the end of the procedure and the forward-slash character ("/") ?
8) Did you ensure that the "show errors" command does not show any errors i.e. it returns "No errors."?
If the answer to all the above questions is "yes", then add the following query before and after the script execution in your Unix shell script and post the output here:
Very important - the object_name must be in uppercase.
Last edited by durden_tyler; 08-18-2017 at 10:46 AM..
This User Gave Thanks to durden_tyler For This Post:
Hello All,
I am writing the below unix script to email the result of a small pl sql procedure:
#!/bin/bash
ORACLE_HOME=/opt/oracle/orcts/product/9.2.0; export ORACLE_HOME
SQLPLUS=$ORACLE_HOME/bin/sqlplus
sqlplus -s user/pass@Db_instance<<EOF
set echo off
set feedback off
set pages 0... (9 Replies)
Hello, I need some advice how to to create one big transactional table.
My table has following columns
person_id, trans_id, date, dep_id, material_id, input, outpu, total
I created procedure from which I will enter all transaction into that table. Problem is I don't have any idea how... (3 Replies)
Hi,
Can any one help me how to write a sql procedure in a pro *c file for selecting the data from a database and inserting the rows into a queue in a .pc file.
thanx in advance. (1 Reply)
How could I call an Oracle PL/SQL procedure from any shell (bash) and catch returning value from that procedure (out param) or get a returning value if it's a function.
also, I got into trouble when I tried to send a number as a param
#!/bin/bash -e
username=$1
pwd=$2
baza=$3... (0 Replies)
Hi,
Can anyone please let me know where to check if a particular stored procedure exists.
If the procedure exists I want to display some message and if the procedure does not exists i want to exit with error message.
checking from dba_objects doesnt help. suprisingly the procedure i... (3 Replies)
Hi All
I would be thankful to you all if you will guide me the steps to call a stored proc. from unix shell script. that stored proc. could be parameterised or parameterless developed in SQL.
Any info. in this topic would help me.....
Thanks in advance.... (1 Reply)
Hi
i'm calling a pl/sql procedure which is returning one variable.
i'm trying to assing this value to variable in shell script
the code i wrote is
** in shell script**
var= 'sqlplus user/pass @ret.sql'
echo $var
**
and
variable dum_var number
exec rt_test(:DUM_VAR);
exit;
in... (4 Replies)