The corrected command syntax would be:
Where the contents of myprogram.sql would be everything in the "here document" in your Shell script between EOF and EOF and excluding the actual terminator (EOF). In other words we take the Oracle program code out of the unix Shell script and put it in an Oracle SQL script file.
Similar to your post #26 the SQL program would contain references to &1 &2 &3 to match the parameters supplied on the sqlplus command line (though in the various versions posted on both threads I have only seen you use &1).
Imho embedding SQL in Shell script is great for quick systems admin tasks but for anything more it should be a proper program with change control headers. Also you don't have to bother about clashes with Shell characters like $ .
You will find numerous examples like this in the Oracle demo examples which came with your system.
A word on security:
Most admins would suggest using the /NOLOG parameter to sqlplus and putting the Oracle account login details in an Oracle CONNECT statement as the first line of your SQL program (there's an example in your other now closed thread on this subject). Obviously securing the program file to be only readable by the owner. This stops the username+password being visible in a unix ps display and (if you have it) some forms of unix process accounting.
Last edited by methyl; 03-27-2012 at 05:02 PM..
Reason: remove some ambiguity, spellin, enhance
Hi friends,
i am having a variable declared in .profile.i am changing its value in a shell script and then i am connecting to oracle and then from there i am calling a .sql called update.sql
STATUS is the variable declared in the .profile
===============================
if
sqlplus <<END... (3 Replies)
Hi,
I have a requirement where in I have to connect to an Unix database server using SFTP. After connecting I have to write some data to one of the tables in UNIX.
Can anyone tell me the UNIX commands to open and update database table.
Thanks,
Pallavi (1 Reply)
Hi,
Data file path (.txt)
Control file(.ctl)
I have delimited file(|).
Sample data:
1|name|50009|DS24|0|12
2|name|30009|DS24|0|13
3|name|20409|DS24|0|14
4|name|20009|DS24|0|15
5|name|10009|DS24|0|16
I want to load this data into a oracle table (update and insert)
Please help me... (1 Reply)
Hello,
I read and search through this wonderful forum and tried different approaches but it seems I lack some knowledge and neurones ^^
Here is what I'm trying to achieve :
file1:
test filea 3495;
test fileb 4578;
test filec 7689;
test filey 9978;
test filez 12300;
file2:
test filea... (11 Replies)
Hi,
I have the following requirement.
I have a unix table as below
progname par1 par2 par3 par4
PROG1 abc def 0012 ooo
PROG2 wed xas 0100 xxx
PROG3 kkk ppp 0004 ppp
Different programs(ex:PROG1,PROG2..) accesses this table and update... (5 Replies)
Hi
I am having three oracle databases running in three different machine. their ip address is different. from one of the DB am able to access both the databases.(means am able to select values and insert values in to tables individually.)
I need to fetch some data from DB1 table(say DB1 ip is... (2 Replies)
Hello,
I'm working with putty on Windows 7 professional and I'd like to know if there's a way to gather specific lines from a pre-existing table and make a new table with that information.
More specifically, I'd like the program to look at a specific column, say column N, and see if any of the... (5 Replies)
I am new to this shell scripting....
I have a file which contains list of users. This files get updated when new user comes into the system.
I want to create script which will give a table containing unique list of users. When I say unique, it means script should match table while parsing... (3 Replies)
I have 100 Scripts, each containing 10-15 SQL's in them.
Each Script run for 40 mins to 1 hour 30 mins.
In the event of Failure in any step, if i re-start the Script, it will start running from the beginning. Which is waste of time. So in order handle this, i made the script to run from the... (7 Replies)
Bootstrap is great; but we have had some issues with Bootstrapped <tables> (and legacy <fieldset> elements) showing annoying, wayward lines. I solved that problem today with this simple jQuery in the footer:
<script>
$(function(){
$('tr, td, fieldset,... (0 Replies)
Discussion started by: Neo
0 Replies
LEARN ABOUT DEBIAN
sql::translator::parser::dbi
SQL::Translator::Parser::DBI(3pm) User Contributed Perl Documentation SQL::Translator::Parser::DBI(3pm)NAME
SQL::Translator::Parser::DBI - "parser" for DBI handles
SYNOPSIS
use DBI;
use SQL::Translator;
my $dbh = DBI->connect('dsn', 'user', 'pass',
{
RaiseError => 1,
FetchHashKeyName => 'NAME_lc',
}
);
my $translator = SQL::Translator->new(
parser => 'DBI',
dbh => $dbh,
);
Or:
use SQL::Translator;
my $translator = SQL::Translator->new(
parser => 'DBI',
parser_args => {
dsn => 'dbi:mysql:FOO',
db_user => 'guest',
db_password => 'password',
}
);
DESCRIPTION
This parser accepts an open database handle (or the arguments to create one) and queries the database directly for the information.
The following are acceptable arguments:
o dbh
An open DBI database handle. NB: Be sure to create the database with the "FetchHashKeyName => 'NAME_lc'" option as all the DBI
parsers expect lowercased column names.
o dsn
The DSN to use for connecting to a database.
o db_user
The user name to use for connecting to a database.
o db_password
The password to use for connecting to a database.
There is no need to specify which type of database you are querying as this is determined automatically by inspecting
$dbh->{'Driver'}{'Name'}. If a parser exists for your database, it will be used automatically; if not, the code will fail automatically
(and you can write the parser and contribute it to the project!).
Currently parsers exist for the following databases:
o MySQL
o SQLite
o Sybase
o PostgreSQL (still experimental)
Most of these parsers are able to query the database directly for the structure rather than parsing a text file. For large schemas, this
is probably orders of magnitude faster than traditional parsing (which uses Parse::RecDescent, an amazing module but really quite slow).
Though no Oracle parser currently exists, it would be fairly easy to query an Oracle database directly by using DDL::Oracle to generate a
DDL for the schema and then using the normal Oracle parser on this. Perhaps future versions of SQL::Translator will include the ability to
query Oracle directly and skip the parsing of a text file, too.
AUTHOR
Ken Y. Clark <kclark@cpan.org>.
SEE ALSO
DBI, SQL::Translator.
perl v5.14.2 2012-05-01 SQL::Translator::Parser::DBI(3pm)