05-12-2009
Execute PL/SQL function from Unix script (.sql file)
Hi guys,
I am new on here, I have a function in oracle that returns a specific value:
create or replace
PACKAGE BODY "CTC_ASDGET_SCHED" AS
FUNCTION FN_ASDSCHEDULE_GET
RETURN VARCHAR2
AS
BEGIN
DECLARE
ASDSchedule varchar2(6);
ASDComplete VARCHAR2(50);
BEGIN
(Some code here)
RETURN ASDComplete;
END;
END;
END CTC_ASDGET_SCHED;
So the above basically should return a value eg. 090512,
now in my .sql script (which I execute from a Korn Shell script) I have in Unix I call this function as follows:
SET AUTOPRINT OFF;
VAR VAL VARCHAR2(50);
VAR ASDSCHEDULE VARCHAR2(50);
VAR NAME VARCHAR2(50);
BEGIN
:VAL := MTMREP.CTC_ASDGET_SCHED.FN_ASDSCHEDULE_GET;
:NAME := MTMREP.M01100_MTMIMPORT.P01102_ImportControl(:VAL,'PF');
END;
/
quit;
I'm trying to pass the value which will be stored in (VAL) from the above first function (eg. 090512), I then need to pass this value in the 2nd procedure above called P01102_ImportControl but it still gives me an error.
The procedure P01102_ImportControl is as follows:
PROCEDURE P01102_ImportControl (ASDSchedule IN VARCHAR2, ASDVersion In VARCHAR2) AS
Begin
-- some code
End P01102_ImportControl;
Here is the error:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
ppadev1 SQL> :NAME := MTMREP.M01100_MTMIMPORT.P01102_ImportControl(:VAL,'PF');
*
ERROR at line 3:
ORA-06550: line 3, column 10:
PLS-00222: no function with name 'P01102_IMPORTCONTROL' exists in this scope
ORA-06550: line 3, column 1:
PL/SQL: Statement ignored
Can someone please help me with this or give me some idea how to do this so it works. Thanks in advance.
Last edited by reptile; 05-12-2009 at 04:45 PM..
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
hi everybody...
can anyone help me in executing the .sql file with shell scripting....
thanx in advance (2 Replies)
Discussion started by: abuanas
2 Replies
2. Shell Programming and Scripting
Hi people, i need youre help on this.
I need to create an Shell SCript to list in a directory some sql files and then execute them one by one .
Also i need to have Logs from the executed Sql's to send to our costummers.
Can anyone help me on this
Regards,
osramos (2 Replies)
Discussion started by: osramos
2 Replies
3. Shell Programming and Scripting
Hi,
I know in oracle a .sql file is called by @ <path> /<filename>.
But how to call in sql 2005, I am opening the sql sessionwith sqsh, is there any command to execute there a .sql file (query in sql 2005) in K shell script. (0 Replies)
Discussion started by: n2ekhil
0 Replies
4. Shell Programming and Scripting
Hello
I'm hoping someone may be able to help. I'm absolutely brand new to these shell scripts and have tried to bash bits together from the little learnt but my final script still doesn't work. Sorry if something similar is already posted but couldn't find anything existing close enough to help... (1 Reply)
Discussion started by: Dan27
1 Replies
5. Shell Programming and Scripting
Hi ,
I used the below script to get the sql data into csv file using unix scripting.
I m getting the output into an output file but the output file is not displayed in a separe columns .
#!/bin/ksh
export FILE_PATH=/maav/home/xyz/abc/
rm $FILE_PATH/sample.csv
sqlplus -s... (2 Replies)
Discussion started by: Nareshp
2 Replies
6. Shell Programming and Scripting
Hi
I am new in unix. oracle and unix are installed in my sytem.i need the script
which could connect to the oracle using username ,password and schema and can run the select * from tab query.
Thanks
vijay (8 Replies)
Discussion started by: vijays3
8 Replies
7. Shell Programming and Scripting
hi,
I want to know how to call a pl sql function testfunction(param1,..) that returns a value and grab that value in a shell variable.
Thnx in advance
---------- Post updated 03-30-10 at 11:58 AM ---------- Previous update was 03-29-10 at 03:49 PM ----------
thnx a lot jim (0 Replies)
Discussion started by: austinhell3_16
0 Replies
8. Shell Programming and Scripting
Hi!
I would like to do a single connection to sqlplus and execute some querys.
Actually I do for every query one connection to database
i.e
echo 'select STATUS from v$instance;
exit' > $SQL_FILE
sqlplus user/pass@sid @$SQL_FILE > $SELECT_RESULT
echo 'select VERSION from v$instance;... (6 Replies)
Discussion started by: guif
6 Replies
9. Shell Programming and Scripting
Hi,
I have a function which connects to the db and runs the sql.
it works fine when I run it like: function "select empname from emp;"
but when I try to pass the sql string to a variable which in turn in fed to the function , it throws error.
please advise.
Thanks,
Arnie. (1 Reply)
Discussion started by: itsarnie
1 Replies
10. Shell Programming and Scripting
Hi,
I am new to shell scripting and i need to write a automation script to execute sql files. I need to check the table if it is there in system tables and need to write a function to call the .sql files.
For ex. I have a.sql,b.sql,c.sql files, where the sql file contains DELETE and INSERT... (1 Reply)
Discussion started by: Samah
1 Replies
LEARN ABOUT DEBIAN
oar-database
oar-database(1) OAR commands oar-database(1)
NAME
oar-database - create/initialize/upgrade/reset/drop the oar database
SYNOPSIS
oar-database --create [OPTIONS]
oar-database --drop [OPTIONS]
oar-database --setup [OPTIONS]
oar-database --reset [OPTIONS]
DESCRIPTION
Manage the oar database.
--setup
Initialize/Upgrade an existing database.
--reset
Reset an existing database.
--create
Create and initialize a new database/user.
--drop
Drop an existing database/user.
OPTIONS
General parameters
--conf=OAR_CONF_FILE
Define the oar configuration file to use. By default /etc/oar/oar.conf is used. This file doesn't exist, the default parameters for
each value are used.
--update-conf
The database parameters given in the command line are writen to the OAR_CONF_FILE
-h,--help
Display this help.
-d,--debug
Display more information during the script execution
-f,--force-sql
Force to resume the execution even if an sql instruction fails
-y,--force-yes
This option will cause oar-database to continue without prompting if it is doins something potentially harmful
Database admin parameters
These parameters are only needed for database/user creation or removing.
--db-is-local
For --create or --drop, this option tells that the database is local. oar-database can use local admin account to execute command
(useful for postgres).
--db-admin-user=DB_ADMIN_USER
For --create or --drop, this option gives the privilegied user to use.
--db-admin-pass=DB_ADMIN_PASS
For --create or --drop, this option gives the privilegied user pass to use.
SQL parameters
By default, if not specified, all the sql parameters are taken from the OAR_CONF_FILE. It is preferable to set these values directly to
this file.
--db-type=DB_TYPE
The type of the SQL database. It can be currently, mysql or Pg (for postgresql).
--db-user=DB_USER
Connect to the database as the user DB_USER instead of the one given in OAR_CONF_FILE. By default, if OAR_CONF_FILE doesn't specify a
user, it is oar.
--db-pass=DB_PASS
Connect to the database with the password DB_PASS instead of the one given in OAR_CONF_FILE.
--db-host=DB_HOST
Connect to the database on the host DB_HOST, By default, if OAR_CONF_FILE doesn't specify a host, it is localhost.
--db-port=DB_PORT
Connect to the database on the port DB_PORT, By default, if OAR_CONF_FILE doesn't specify a port, the value depend on the DB_TYPE. if
DB_TYPE is mysql, DB_PORT is 3306. If DB_TYPE is postgresql, DB_PORT is 5432.
--db-name=DB_NAME
Connect to the database on the host DB_HOST, By default, if OAR_CONF_FILE doesn't specify a database name, it is oar.
--db-ro-user=DB_RO_USER
same as --db-user except that it is for the read only access.
--db-ro-pass=DB_RO_PASS
same as --db-pass except that it is for the read only access.
EXAMPLES
Mysql
First you need to specify the sql parameters in /etc/oar/oar.conf. These parameters will be used by oar-database.
To create a new database (assuming that the sql root password is PASS):
oar-database --create --db-admin-user root --db-admin-pass PASS
To upgrade an existing database:
oar-database --setup
Postgresql
First you need to specify the sql parameters in /etc/oar/oar.conf. These parameters will be used by oar-database. Then if your postgresql
database is on the local system, you can use the option --db-is-local (otherwise, the procedure is the same as Mysql). So oar-database will
use the postgres unix user to administrate the database (you need privilegied access to the local system).
To create a new database:
oar-database --create --db-is-local
To upgrade an existing database:
oar-database --setup
Advanced usages
To make some tests or to administrate several databases, you can also specify the sql parameters on the command line. For example:
oar-database --create --db-type=Pg --db-host=HOST
--db-user=oar --db-pass=PASS
--db-admin-user=ADMIN_USER --db-admin-pass=ADMIN_PASS
will create the oar database and the oar user on the postgresql system hosted by HOST. The user ADMIN_USER must have the right to create
new databases and new roles on this system.
FILES
/usr/lib/oar/database/mysql_structure.sql, /usr/lib/oar/database/pg_structure.sql
SQL instructions for creating the structure of the oar database.
/usr/lib/oar/database/mysql_default_admission_rules.sql, /usr/lib/oar/database/pg_default_admission_rules.sql
SQL instructions for inserting the default admission rules in the oar database.
/usr/lib/oar/database/default_data.sql
SQL instructions for inserting the default data in the oar database.
/usr/lib/oar/database/mysql_reset_structure.sql, /usr/lib/oar/database/pg_reset_structure.sql
SQL instruction for emptying an existing oar database.
/usr/lib/oar/database/mysql_structure_upgrade_*.sql, /usr/lib/oar/database/pg_structure_upgrade_*.sql
SQL instructions for upgrading an existing database.
oar-database 2012-06-26 oar-database(1)