01-03-2008
Automate SQL statements
Hello,
On unix side, I have written below script for taking oracle db backup. But when I tried to execute it - i could not execute the sql statements from unix.
Please suggest
------------------------
$ more bkp.sh
#!/bin/ksh
# make sure database is shutdown cleanly
sqlplus '/ as sysdba' <<eof
{
shutdown immediate;
startup force dba pfile=$ORACLE_HOME/dbs/init.ora;
shutdown immediate;
}
exit;
eof
#Mount the database and start backup
run {
startup mount pfile=$ORACLE_HOME/dbs/init.ora;
}
# Backup datafile, controlfile and archivelogs
rman target=/ << EOF
RUN {
allocate channel ch1 type
disk format '/u00/oradata/backup/%d_DB_%u_%s_%p_%t';
backup database include current controlfile
tag = '1_daily_backup';
release channel ch1;
}
EXIT;
EOF
# Open the database
run {
alter database open;
}
# Archive all logfiles including current
run {
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
}
# Backup outdated archlogs and delete them
rman target=/ << EOF
RUN {
allocate channel ch1 type
disk format '/u00/oradata/backup/%d_DB_%u_%s_%p_%t';
backup archivelog
until time 'Sysdate-2' all
delete input;
release channel ch1;
}
EXIT;
EOF
# Backup remaining archlogs
rman target=/ << EOF
RUN {
allocate channel ch1 type
disk format '/u00/oradata/backup/%d_DB_%u_%s_%p_%t';
backup archivelog all;
release channel ch1;
}
EXIT;
EOF
------------------------
Thank you!
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I have a shell script which resides on three SCO machines containing some simple sqlplus statments. I need to run these scripts remotely. Currently, I am trying to use rsh to do so:
rsh hostname myscript args
The problem is that the arguments to the sqlplus statements in the remote shell... (4 Replies)
Discussion started by: Madbreaks
4 Replies
2. Shell Programming and Scripting
Hi-
I am trying to achieve the following in a script so I can schedule it on a cron job. I am fairly new to the unix environment...
I have written a shell script that reads a flat file and loads the data into an Oracle table (Table1) via SQLLDR. This Works fine. Then, I run a nested insert... (5 Replies)
Discussion started by: rajagavini
5 Replies
3. Shell Programming and Scripting
i want to use multple sql count statements and store these count values in unix variable but in one connection only i.e. in only 1 time database should be hit ,which is the main requirement. (1 Reply)
Discussion started by: sw@pnil
1 Replies
4. Shell Programming and Scripting
I've got:
isql -U $USERID -S $SERVER -D $DATABASE -i inputfile.sql -o outputfile.txt
in inputfile I have:
go
sql#1
go
sql#2
go
sql#3
go
I also tried without "go" and with";" instead which did not work
SQL statements will work if I paste them directly into the script and use EOF
... (0 Replies)
Discussion started by: Cailet
0 Replies
5. UNIX for Dummies Questions & Answers
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... (1 Reply)
Discussion started by: reptile
1 Replies
6. UNIX for Dummies Questions & Answers
Hello Guys...
I want a small help from you guys.
Actually in Oracle, we are having a utlity called spool through which can store whatever SQL statements executed and other queries and the output of those queries in a file
So, similarly in Unix, if I start a session executing a number of Unix... (2 Replies)
Discussion started by: mraghunandanan
2 Replies
7. Shell Programming and Scripting
Hello members,
I'm working on the Solaris environment and the DB i'm using is Oracle 10g.
Skeleton of what I'm attempting;
Write a ksh script to perform the following. I have no idea how to include my sql query within a shell script and loop through the statements. Have therefore given a... (4 Replies)
Discussion started by: novice82
4 Replies
8. UNIX for Advanced & Expert Users
Hi Experts:
I have a shell script that's kicked off by cron. Inside this shell script, I need to kick off two or more oracle sql scripts to process different groups of tables. And when both sql scripts are done, I will continue in the shell script to do other things like checking processing... (3 Replies)
Discussion started by: huasheng8
3 Replies
9. Shell Programming and Scripting
Hi all.
This is my first post on this forum. I've previously found great help in the huge knowledgebase that is here, but this time I have not been able to find a solution to my problem.
I have a large text file that looks like this:
typedef struct ABC_struct_nbr1_ {
char attr1; /*... (0 Replies)
Discussion started by: Yagi Uda
0 Replies
10. Shell Programming and Scripting
Hi All,
I want to run multiple sql queries and store the data in variable but i want to use sql command only once. Is there a way without running sql command twice and storing.Please advise.
Eg :
Select 'Query 1 output' from dual;
Select 'Query 2 output' from dual;
I want to... (3 Replies)
Discussion started by: Rokkesh
3 Replies
LEARN ABOUT DEBIAN
prepare
PREPARE(7) SQL Commands PREPARE(7)
NAME
PREPARE - prepare a statement for execution
SYNOPSIS
PREPARE name [ ( datatype [, ...] ) ] AS statement
DESCRIPTION
PREPARE creates a prepared statement. A prepared statement is a server-side object that can be used to optimize performance. When the PRE-
PARE statement is executed, the specified statement is parsed, rewritten, and planned. When an EXECUTE command is subsequently issued, the
prepared statement need only be executed. Thus, the parsing, rewriting, and planning stages are only performed once, instead of every time
the statement is executed.
Prepared statements can take parameters: values that are substituted into the statement when it is executed. When creating the prepared
statement, refer to parameters by position, using $1, $2, etc. A corresponding list of parameter data types can optionally be specified.
When a parameter's data type is not specified or is declared as unknown, the type is inferred from the context in which the parameter is
used (if possible). When executing the statement, specify the actual values for these parameters in the EXECUTE statement. Refer to EXECUTE
[execute(7)] for more information about that.
Prepared statements only last for the duration of the current database session. When the session ends, the prepared statement is forgotten,
so it must be recreated before being used again. This also means that a single prepared statement cannot be used by multiple simultaneous
database clients; however, each client can create their own prepared statement to use. The prepared statement can be manually cleaned up
using the DEALLOCATE [deallocate(7)] command.
Prepared statements have the largest performance advantage when a single session is being used to execute a large number of similar state-
ments. The performance difference will be particularly significant if the statements are complex to plan or rewrite, for example, if the
query involves a join of many tables or requires the application of several rules. If the statement is relatively simple to plan and re-
write but relatively expensive to execute, the performance advantage of prepared statements will be less noticeable.
PARAMETERS
name An arbitrary name given to this particular prepared statement. It must be unique within a single session and is subsequently used to
execute or deallocate a previously prepared statement.
datatype
The data type of a parameter to the prepared statement. If the data type of a particular parameter is unspecified or is specified as
unknown, it will be inferred from the context in which the parameter is used. To refer to the parameters in the prepared statement
itself, use $1, $2, etc.
statement
Any SELECT, INSERT, UPDATE, DELETE, or VALUES statement.
NOTES
In some situations, the query plan produced for a prepared statement will be inferior to the query plan that would have been chosen if the
statement had been submitted and executed normally. This is because when the statement is planned and the planner attempts to determine the
optimal query plan, the actual values of any parameters specified in the statement are unavailable. PostgreSQL collects statistics on the
distribution of data in the table, and can use constant values in a statement to make guesses about the likely result of executing the
statement. Since this data is unavailable when planning prepared statements with parameters, the chosen plan might be suboptimal. To exam-
ine the query plan PostgreSQL has chosen for a prepared statement, use EXPLAIN [explain(7)].
For more information on query planning and the statistics collected by PostgreSQL for that purpose, see the ANALYZE [analyze(7)] documenta-
tion.
You can see all available prepared statements of a session by querying the pg_prepared_statements system view.
EXAMPLES
Create a prepared statement for an INSERT statement, and then execute it:
PREPARE fooplan (int, text, bool, numeric) AS
INSERT INTO foo VALUES($1, $2, $3, $4);
EXECUTE fooplan(1, 'Hunter Valley', 't', 200.00);
Create a prepared statement for a SELECT statement, and then execute it:
PREPARE usrrptplan (int) AS
SELECT * FROM users u, logs l WHERE u.usrid=$1 AND u.usrid=l.usrid
AND l.date = $2;
EXECUTE usrrptplan(1, current_date);
Note that the data type of the second parameter is not specified, so it is inferred from the context in which $2 is used.
COMPATIBILITY
The SQL standard includes a PREPARE statement, but it is only for use in embedded SQL. This version of the PREPARE statement also uses a
somewhat different syntax.
SEE ALSO
DEALLOCATE [deallocate(7)], EXECUTE [execute(7)]
SQL - Language Statements 2010-05-14 PREPARE(7)