Sponsored Content
Full Discussion: A SQL Loader Script
Top Forums Shell Programming and Scripting A SQL Loader Script Post 302115211 by jim mcnamara on Monday 23rd of April 2007 06:17:42 AM
Old 04-23-2007
If I understand, you want to create metacode that generates a .ctl on the fly. There have been discussions at various levels about this idea at
www.orafaq.com

There are several examples - search for dynamic control file

To answer your question - you have to use a scripting facility (perl, ksh, etc.), I assume you are. Then you can use patternmatching or regex to find your database name.

A list of all the Oracle sids must live in the tnsnames.ora in the $ORACLE_HOME/network/admin tree. First, you have to parse that file for db names. You have to validate the names anyway, bad name=load failure. Then use the array of names to search for '@' prefixed on all of your possible dbnames.

Our tnanames files all have the sid on a single line by itself, so this works
Code:
#!/bin/ksh
let cnt=0
set -A sidlist
tr -s '[:upper:]'  '[:lower:]' < $ORACLE_HOME/network/admin/tnsnames.ora |\
grep 'sid =' | awk '{print $3}' \
while read sid
do
    sidlist[cnt]=$sid
    let cnt=$cnt+1
done

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

problems running a sql loader script

Hi Folks, I have created a number of unix scripts that i can run from the scheduler on a server-side application that we use (Chordiant Marketing Director). All scripts are working except one. This last script is a user load script which first truncates a table and then loads it using a flat... (2 Replies)
Discussion started by: jibbadiah
2 Replies

2. Shell Programming and Scripting

Shell script for accessing a file in the network drive and invoking oracle sql loader

Hi, Please let me know if anybody is having a solution handy for the below tasks... It would be helpful if somebody can resolve my query. I am new to unix and oracle environment and looking for some online reference for completing a task. Task: Check if the network drive exists Check... (0 Replies)
Discussion started by: sayydevara
0 Replies

3. UNIX for Dummies Questions & Answers

Problem with SQL loader

Hi, I am trying to load the records in a .txt file into the data base using SQL loader. I gave: $ sqlldr user/pass@DB control=filename.ctl log =mylog.log It throwed the following error: SQL*Loader-297: Invalid syntax or bind variable in SQL string for column STATUS. ORA-01756: quoted... (2 Replies)
Discussion started by: risshanth
2 Replies

4. Shell Programming and Scripting

sql loader script

hi all i am new to shell scripting. i have 35 flat files delimited files that i have to load in to a table. i was asked to create a shell script that loads the data into the table... could you please help me if you have a script. Also .. how to create logs files...does my sql... (3 Replies)
Discussion started by: rajesh_tns
3 Replies

5. Shell Programming and Scripting

Problem in sql loader

Hi Frnds, I wanto load the data thats in data file with comma(,) delimited. it throw this errors SQL*Loader-951: Error calling once/load initialization ORA-00604: error occurred at recursive SQL level 1 ORA-00054: resource busy and acquire with NOWAIT specified Plz look at my file... (3 Replies)
Discussion started by: Gopal_Engg
3 Replies

6. UNIX for Dummies Questions & Answers

SQL*Loader

HI Experts, We have a ksh file named ldr_empdelta.ksh and it is having the SQL*LOADER script as follows. print "LOAD DATA" > $WEDB_GEN/ldrscan.ctl print "INFILE '"$LED_SCAN"/delta/led_del.dat'" >> $WEDB_GEN/ldrparms.ctl print "TRUNCATE" >> $WEDB_GEN/ldrscan.ctl print "PRESERVE BLANKS" >>... (1 Reply)
Discussion started by: ajaykumarkona
1 Replies

7. UNIX for Dummies Questions & Answers

SQL loader script - ORACLE environmental variable

I am new in unix.. I am running a sql loader script where I have to specify the data file path but the file name contains spaces in it so giving error multiple arguments I have tried it with "" and '' but does n't work the command is : $ORACLE_HOME/bin/sqlldr... (1 Reply)
Discussion started by: Sandip Dey
1 Replies

8. Shell Programming and Scripting

use of sql loader in the script

All, Below is the code written when sql loader loads the data: $ORACLE_EXEC_PATH/sqlldr userid=$user_passwd control=$CNTR_FILES/invoice.ctl log=$LOG_FILES/$INVOICE_FILE.log bad=$ER ROR_FILES/$INVOICE_FILE.bad data=$DATA_FILES/$INVOICE_FILE silent=FEEDBACK direct=false errors=50000 rc=$?... (1 Reply)
Discussion started by: Oracle_User
1 Replies

9. Homework & Coursework Questions

Write a shell script for SQL loader to load data into a staging table

Hi, I'm new to Linux. I'm working on a database, and need to load data in a database table (which I already created) using shell script. The table has two columns - Acct_number (not nullable) and date (timestamp). I'm not able to write a shell script for that. Can any one help me? ... (3 Replies)
Discussion started by: saisudeep
3 Replies

10. Shell Programming and Scripting

How to call SQL Loader in shell script?

HI Experts, I am pretty new to scripting and i need to create a perl or shell script which should fetch a file from local directory and insert the data into a table using sql loader. This will be later added to chron job to run daily and fetch all files and load them into the table. Also i... (1 Reply)
Discussion started by: sam1234
1 Replies
OCI_NEW_CONNECT(3)														OCI_NEW_CONNECT(3)

oci_new_connect - Connect to the Oracle server using a unique connection

SYNOPSIS
resource oci_new_connect (string $username, string $password, [string $connection_string], [string $character_set], [int $ses- sion_mode]) DESCRIPTION
Establishes a new connection to an Oracle server and logs on. Unlike oci_connect(3) and oci_pconnect(3), oci_new_connect(3) does not cache connections and will always return a brand-new freshly opened connection handle. This is useful if your application needs transactional isolation between two sets of queries. PARAMETERS
o $username - The Oracle user name. o $password - The password for $username. o $connection_string -Contains the Oracle instance to connect to. It can be an Easy Connect string, or a Connect Name from the tnsnames.ora file, or the name of a local Oracle instance. If not specified, PHP uses environment variables such as TWO_TASK (on Linux) or LOCAL (on Windows) and ORACLE_SID to determine the Oracle instance to connect to. To use the Easy Connect naming method, PHP must be linked with Oracle 10 g or greater Client libraries. The Easy Connect string for Oracle 10 g is of the form: [//]host_name[:port][/ser- vice_name]. From Oracle 11 g, the syntax is: [//]host_name[:port][/service_name][:server_type][/instance_name]. Service names can be found by running the Oracle utility lsnrctl status on the database server machine. The tnsnames.ora file can be in the Oracle Net search path, which includes $ORACLE_HOME/network/admin and /etc. Alternatively set TNS_ADMIN so that $TNS_ADMIN/tnsnames.ora is read. Make sure the web daemon has read access to the file. o $character_set -Determines the character set used by the Oracle Client libraries. The character set does not need to match the character set used by the database. If it doesn't match, Oracle will do its best to convert data to and from the database character set. Depending on the character sets this may not give usable results. Conversion also adds some time overhead. If not specified, the Oracle Client libraries determine a character set from the NLS_LANG environment variable. Passing this parameter can reduce the time taken to connect. o $session_mode -This parameter is available since version PHP 5 (PECL OCI8 1.1) and accepts the following values: OCI_DEFAULT, OCI_SYSOPER and OCI_SYSDBA. If either OCI_SYSOPER or OCI_SYSDBA were specified, this function will try to establish privileged connection using external credentials. Privileged connections are disabled by default. To enable them you need to set oci8.privileged_connect to On. PHP 5.3 (PECL OCI8 1.3.4) introduced the OCI_CRED_EXT mode value. This tells Oracle to use External or OS authentication, which must be configured in the database. The OCI_CRED_EXT flag can only be used with username of "/" and a empty password. oci8.privileged_connect may be On or Off. OCI_CRED_EXT may be combined with the OCI_SYSOPER or OCI_SYSDBA modes. OCI_CRED_EXT is not supported on Windows for security reasons. RETURN VALUES
Returns a connection identifier or FALSE on error. EXAMPLES
The following demonstrates how you can separate connections. Example #1 oci_new_connect(3) example <?php // create table mytab (mycol number); function query($name, $c) { echo "Querying $name "; $s = oci_parse($c, "select * from mytab"); oci_execute($s, OCI_NO_AUTO_COMMIT); $row = oci_fetch_array($s, OCI_ASSOC); if (!$row) { echo "No rows "; } else { do { foreach ($row as $item) echo $item . " "; echo " "; } while (($row = oci_fetch_array($s, OCI_ASSOC)) != false); } } $c1 = oci_connect("hr", "welcome", "localhost/orcl"); $c2 = oci_new_connect("hr", "welcome", "localhost/orcl"); $s = oci_parse($c1, "insert into mytab values(1234)"); oci_execute($s, OCI_NO_AUTO_COMMIT); query("basic connection", $c1); query("new connection", $c2); oci_commit($c1); query("new connection after commit", $c2); // Output is: // Querying basic connection // 1234 // Querying new connection // No rows // Querying new connection after commit // 1234 ?> See oci_connect(3) for further examples of parameter usage. SEE ALSO
oci_connect(3), oci_pconnect(3). PHP Documentation Group OCI_NEW_CONNECT(3)
All times are GMT -4. The time now is 04:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy