MENU: home / manpage
NAME
Oratcl - Oracle Database Server access commands for Tcl
INTRODUCTION
Oratcl is an extention to the Tcl language designed to pro-
vide access to an Oracle Database Server. Each Oratcl com-
mand generally invokes several Oracle Call Interface (OCI)
library functions. Programmers using Oratcl should be fami-
lar with basic concepts of OCI programming. Oratcl is
loaded into the Tcl interpreter with the tcl package com-
mand.
Example
package require Oratcl
package require -exact Oratcl 4.4
ORATCL COMMANDS
oralogon connect-str ?-async? ?-failovercallback procname?
Connect to an Oracle server using connect-str. The
connect string should be a valid Oracle connect string,
in the form:
name/password
name/password@n:dbname
If using system authentication, the connect string
should be in the form:
/
/@dbname
If connecting as SYSOPER or SYSDBA, the connect string
should be in the form:
sysdba
sysoper
A logon handle is returned and should be used for all
other Oratcl commands using this connection that
require a logon handle. Multiple connections to the
same or different servers are allowed. Oralogon raises
a Tcl error if the connection is not made for any rea-
son (login or password incorrect, network unavailable,
etc.). If the connect string does not include a data-
base specification, a connection will be established
with the server specified in the environment variable
ORACLE_SID.
The optional -async argument specifies that all com-
mands allowing asynchronous (nonblocking) operation
will do so. The commands affected are: oraparse,
oraexec, orafetch and those that make use of these such
as orasql, orabindexec and oraplexec. These commands
will immediately return a code of OCI_STILL_EXECUTING
which is equal to the numeric value of -3123. Repeat
calls to these commands with the same arguements until
a return value of OCI_SUCCESS, a 0, is retuned. See
the section below on ASYNChrONOUS TRANSACTION HANDLING.
The optional -failovercallback procname arguments
provide a TAF failover functionality to Oratcl. The
given procname is invoked on a TAF failover. It is
often used to re-execute "alter session" statements
after the automatic reconnect to another RAC node.
oralogoff logon-handle
Logoff from the Oracle server connection associated
with logon-handle. Logon-handle must be a valid handle
previously opened with oralogon. Oralogoff raises a
Tcl error if the logon handle specified is not open.
Oralogoff closes any open statement handles opened with
logon-handle. Oralogoff returns the return code from
OCISessionEnd().
oraopen logon-handle
Open a statement handle to the server. Oraopen returns
a handle to be used on subsequent Oratcl commands that
require a statement handle. Logon-handle must be a
valid handle previously opened with oralogon. Multiple
statement handles can be opened through the same or
different logon handles. Oraopen raises a Tcl error if
the logon handle specified is not open.
oraconfig statement-handle ?name ?value??
Configure a statement-handle or retrieve configuration
information about a statement-handle. If no arguments
are provided, oraconfig returns a list of name-value
pairs. If name is provided, the associated value will
be returned. If both name and value are provided,
oraconfig will configure the statement-handle as
directed. For numeric values, a value less than or
equal to zero or greater than the stated maximum will
cause Oratcl to raise a TCL error. Name may be one of
the following:
longsize Sets or returns the maximum amount of LONG or
LONG RAW data returned by orafetch. The
default is 40960 bytes and the maximum is
21474.4647 bytes.
bindsize Sets or returns the size of the buffer used
for storing bind variable values. This is
used in orabindexec and oraplexec to allow
the buffer to be reused on subsequent calls.
The default is 2000 bytes and the maximum is
4000 bytes.
nullvalue Sets or returns the NULL value behavior. A
value of "default" causes orafetch to substi-
tute zeros for NULLs in numeric columns and
null strings "{}" for NULLs in character
columns. Any other value causes that value
to be returned as a string for all NULLs.
The default is "default".
fetchrows Sets or returns the number of rows pre-
fetched by orafetch. Orafetch attempts to
fetch fetchrows rows from the Oracle server
at once and then returns single rows until
the cache is exhausted and another set of
rows is retreived. Setting the fetchrows to
larger numbers for queries that return many
rows may dramatically decrease the time spent
fetching the rows. Changes to fetchrows only
affects subsequent orasql commands.
Fetchrows defaults to 10 rows and the maximum
is dependent upon available memory.
lobpsize Sets or returns the amount of of data (in
characters) used in piecewise reads and
writes to LOB types in the oralob command.
Lobpsize defaults to 10,000 characters and
the maximum is 15,000 characters.
longpsize Sets or returns the amount of of data (in
characters) used in piecewise reads and
writes to LONG types in the oralong command.
Longpsize defaults to 50,000 characters and
the maximum is 2,147,4.4,648 characters.
utfmode Sets or returns the UTF translation behavior.
Setting this value to true causes orasql,
orabindexec, oraplexec, orafetch, oralong and
oralob to perform UTF translation on values
written to and read from the database with
the system encoding. It is not recommended
that this function be enabled when reading or
writting long raw type values with oralong.
The default is false.
numbsize Sets or returns the amount of of data (in
characters) used to represent a number column.
Numbsize defaults to 40 characters and the maximum
is 4000 characters.
datesize Sets or returns the amount of of data (in
characters) used to represent a date column.
Datesize defaults to 75 characters and the maximum
is 7500 characters.
oraclose statement-handle
Closes the cursor associated with statement-handle.
Oraclose raises a Tcl error if the statement-handle
specified is not open.
oramsg handle option
all returns all values as a list in the format
{rc error rows peo ocicode sqltype}
rc returns the result code of the last OCI
library function called by Oratcl with this
handle. This code is a numeric value that
often corresponds to an Oracle error code.
Refer to the Oracle Error Messages and Codes
manual for more detailed information. Typi-
cal values are:
0 - Function completed normally
14.4 - End of data in orafetch command
1406 - Fetched column was truncated.
-3123 - Asynchronous command still processing
error returns the message text associated with the
return code.
rows returns the number of rows affected by an
insert, update, delete statement by oraexec,
or the number of rows fetched to date by
orafetch.
peo returns the parse error offset, an index
position in an SQL string that failed to
parse due to a syntax error.
ocicode returns the OCI code of the last OCI function
called by Oratcl. See the OCI manual for
descriptions.
sqltype returns a code set by last SQL or PL/SQL
parsed with oraparse. Valid values are:
1 == SELECT corresponds to OCI_STMT_SELECT
2 == UPDATE corresponds to OCI_STMT_UPDATE
3 == DELETE corresponds to OCI_STMT_DELETE
4 == INSERT corresponds to OCI_STMT_INSERT
5 == CREATE corresponds to OCI_STMT_CREATE
6 == DROP corresponds to OCI_STMT_DROP
7 == ALTER corresponds to OCI_STMT_ALTER
8 == BEGIN corresponds to OCI_STMT_BEGIN
9 == DECLARE corresponds to OCI_STMT_DECLARE
Oramsg raises a Tcl error if the handle cannot be
located in the set of open statement-handles and con-
nected logon-handle.
oraparse statement-handle statement-text
Parse the statement statment-text on the Oracle server.
Statement-handle must be a valid handle previously
opened with oraopen. Statement-text can be either a
SQL or anonymous PL/SQL statement. the Statement-text
may contain bind variables that begin with a colon ':'.
Oraparse will return the numeric return code "0" on
successful parsing of the statement-text, and the
error code returned by Oracle when parsing fails. Ora-
parse raises a Tcl error if the statement-handle speci-
fied is not open, or if the statment-text is syntacti-
cally incorrect.
orabind statement-handle ?:varname value ...?
Bind values SQL variables in a previously parsed SQL
statement. Statement-handle must be a valid handle pre-
viously opened with oraopen. An SQL or PL/SQL state-
ment must have previously been parsed by executing ora-
parse. Orabind may be executed repeatedly on a previ-
ously parsed statement. Binding should only be done in
conjunction with sql types (1-4) select, insert, update,
delete and with the PL/SQL types (8-9) begin and
declare type statements.
Optional :varname value pairs allow substitutions on
SQL bind variables. As many :varname value pairs
should be specified as there are defined in the previ-
ously parsed SQL statement. Varnames must be prefixed
by a colon ":". It is not an error to call orabind
without any :varname value pairs, but no binding will
occur.
Orabind will return "0" when bindings are successful;
"1003" if a previous SQL has not been parsed with ora-
parse; "1008" if not all SQL bind variables have been
specified. Refer to Oracle error numbers and messages
for other possible values.
Orabind raises a Tcl error if the statement-handle
specified has not ben opened with oraopen.
oraexec statement-handle ?-commit?
Execute a previously parsed and optionally bound SQL
statement. Statement-handle must be a valid handle pre-
viously opened with oraopen. An SQL statement must
have previously been parsed by executing oraparse.
Orabind and oraexec commands may be repeatedly issued
after a statement is parsed.
The optional -commit argument specifies the that SQL
will be committed upon successful execution.
orafetch statement-handle ?options ...?
Retrieve data from the database as specified by prior
oraparse, orabind, oraxec calls. All values are
converted to character strings except ref_cursors which
will be represented in the datavariable list as a null
string. Orafetch returns the code from the OCIStmtExe-
cute() library function. Likely values include 0 for
success, 14.4 for no more data, and -3123 for asyncro-
nous still executing.
-datavariable Specifies the variable to be set with a
list containing the row of data
fetched. The list returned in the data-
variable by orafetch contains the
values of the selected columns in the
order specified by select.
-dataarray Specifies the array in which the indi-
vidual columns of data fetched will be
set.
-indexbyname When combinded with the -dataarray
option, orafetch will use the column
names from the query as the index
(hash) values of the array.
-indexbynumber When combinded with the -dataarray
option, orafetch will use the column
positon number from the query as the
index (hash) values of the array.
-command Specifies a script to eval when
orafetch retrieves a row of data. This
script may reference the variable and
array specified by other options.
Orafetch raises a Tcl error if the statement-handle
specified is not open, or if an unknown option is
specified.
orasql statement-handle sql-statement ?-parseonly? ?-commit?
Execute the SQL statement sql-statement on the Oracle
server. Statement-handle must be a valid handle previ-
ously opened with oraopen. Orasql will return the
numeric return code "0" on successful execution of the
sql-statement.
The optional -parseonly argument causes orasql to parse
but not execute the SQL statement. The SQL statement
may contain bind variables that begin with a colon
(':'). The statement may then be executed with the
orabindexec command, allowing bind variables to be sub-
stituted with values. Bind variables should only be
used for SQL statements select, insert, update, or
delete.
The optional -commit argument specifies the that SQL
will be committed upon successful execution.
Orasql raises a Tcl error if the statement handle
specified is not open, or if the SQL statement is syn-
tactically incorrect.
Table inserts made with orasql should follow conversion
rules in the Oracle SQL Reference manual.
orabindexec statement-handle ?-commit? ?:varname value ...?
Execute a previously parsed SQL statement, optionally
binding values to SQL variables. Statement-handle must
be a valid handle previously opened with oraopen. An
SQL statement must have previously been parsed by exe-
cuting oraparse or orasql with the -parseonly option.
Orabindexec may be repeatedly executed after a state-
ment is parsed with bind variables substituted on each
execution. Orabindexec does not re-parse SQL state-
ments before execution.
The optional -commit argument specifies the that SQL
will commit upon successful execution.
Optional :varname value pairs allow substitutions on
SQL bind variables before execution. As many :varname
value pairs should be specified as there are defined in
the previously parsed SQL statement. Varnames must be
prefixed by a colon ":".
Orabindexec will return "0" when the SQL is executed
successfully; "1003" if a previous SQL has not been
parsed with orasql; "1008" if not all SQL bind vari-
ables have been specified. Refer to Oracle error
numbers and messages for other possible values.
oraplexec statement-handle pl-block ?:varname value ...?
Execute an anonymous PL block, optionally binding
values to PL/SQL variables.
Statement-handle must be a valid handle previously
opened with oraopen. Pl-block may either be a complete
PL/SQL procedure or a call to a stored procedure coded
as an anonymous PL/SQL block. Optional :varname value
pairs may follow the pl-block. Varnames must be pre-
fixed by a colon ":", and match the subsitution bind
names used in the procedure. Any :varname that is not
matched with a value is ignored. If a :varname is used
for output, the value should be coded as a null list,
{}.
Ref-cursor variables may be returned from a PL/SQL
block by specifing an open statement-handle as the bind
value for a :varname bind variable. The handle must
have previously been opened by oraopen using the same
logon-handle as the cursor used to execute the ora-
plexec command. After oraplexec completes, the handle
may be used to fetch result rows by using orafetch;
column information is available by using oracols.
Oraplexec will return "0" when executed successfully;
Use the command orafetch to retrieve the bind results.
Oraplexec raises a Tcl error if the cursor handle
specified is not open, or if the PL/SQL block is in
error.
oralob sub-command handle ?options ...?
Perform operations on Oracle Long Objects.
Handle must be either a valid statement handle previ-
ously opened with oraopen or a LOB handle created with
the alloc sub-command. Both Binary Long Object (BLOB)
and Character Long Object (CLOB) columns are supported
by the oralob command.
The following sub-commands are available:
alloc statement-handle -table $table -column
$column -rowid $rowid
Create and return a LOB handle that refers to
the LOB specified by ($table, $column,
$rowid). statement-handle must be a state-
ment handle previously created with oraopen
and will be used implicitly by the other
oralob sub-commands that operate on this LOB.
free LOB-handle
Destroy the LOB handle and free any resources
associated with it.
read LOB-handle -datavar varname
Read the LOB specified by LOB-handle into the
variable identified by varname.
varname
substr LOB-handle -start $start -stop $stop -datavar
Reads characters of the LOB specified by
LOB-handle, beginning at $startpos and ending
at $stoppos, into varname. $startpos and
$stoppos both default to 0.
write LOB-handle -datavar varname
Write the data in the variable identified by
varname into the LOB specified by LOB-handle.
writeappend LOB-handle -datavar varname
Append the data in the variable identified by
varname to the end of the LOB specified by LOB-handle.
append LOB-handle1 LOB-handle2
Appends the contents of the LOB specified by
LOB-handle2 to the LOB specified by
LOB-handle1. Both LOBs must be of the same
type (Binary or Character).
erase LOB-handle -start $start -stop $stop
Overwrites the data in the LOB specified by
LOB-handle from $start to $stop with NULL
characters. $start and $stop both default to
0.
trim LOB-handle -length $length
Trims the LOB specified by LOB-handle to
$length characters or bytes.
length LOB-handle
Returns the length (in characters or bytes)
of the LOB specified by LOB-handle.
instr LOB-handle -pattern $pattern -start $start
-nth $nth
Returns the position in the LOB specified by
LOB-handle at which the $nth occurrence of
the pattern $pattern appears. The search is
started at $start. $start defaults to 0 and
$nth defaults to 1.
compare LOB-handle1 LOB-handle2 -start1 $start1
-start2 $start2 -length $length
Compares the two LOBs specified by
LOB-handle1 and LOB-handle2. The comparison
is begun at the position indicated by $start1
(in LOB 1) and $start2 (LOB 2) and continues
for $length positions. A return value of 0
indicates that the two LOBs are identical
through the positions specified. A non-zero
return value indicates that the two LOBs
differ.
The oralob commands are a collection of TCL and
anonymous PL/SQL wrappers for the Oracle dbms_lob
PL/SQL package and therefore require the rowid (as well
as the table name and column name) of the LOB in order
to operate. The rowid of a row may be determined
easily, as shown in the example below.
LOB Example
# Assume that $sth is a valid statement-handle
# opened earlier
oraparse $sth "select rowid from my_table \
where my_key = 'keyvalue'"
oraexec $sth
orafetch $sth -datavariable rowid
set data "abcdeabcdeabcde"
set lobid [oralob alloc $sth -table "my_table" \
-column "clob_col" -rowid $rowid]
oralob write $lobid -datavar data
set l [oralob length $lobid]
# $l == 15
set data ""
oralob read $lobid -datavar data
# $data contains "abcdeabcdeabcde"
set i [oralob instr $lobid -pattern "eab" -start 3 -nth 2]
# $i == 9 -- TCL-like indexing, not Oracle indexing
NOTE:
The PL/SQL DBMS_LOB package used by the oralob
command requires BLOB and CLOB fields to be ini-
tialized before they may be operated upon. You
may automatically initialize a LOB field by using
EMPTY_BLOB() or EMPTY_CLOB() in the DEFAULT clause
of a table definition or initialize before use by
inserting an EMPTY_BLOB() or EMPTY_CLOB().
Table Definition Example:
create table test_lob_1 (
lob_key varchar2(10) primary key,
lob_clob clob default empty_clob(),
lob_blob blob default empty_blob()
)
Initialize Before Use Example:
# Assume the following table definition:
# create table test_lob_2 (
# lob_key varchar2(10),
# lob_clob clob,
# lob_blob blob
# )
set sql { \
insert into test_lob_2 \
(lob_key, lob_clob, lob_blob) \
values (:lob_key, empty_clob(), empty_blob() )\
}
orasql $sth $sql -parseonly
# Create a new row in test_lob_2 with lob_clob
# and lob_blob properly initialized.
orabindexec $sth :lob_key "AAAAAAAAAA"
oralong sub-command handle ?options ...?
Perform operations on Oracle LONG column-types.
Handle must be either a valid statement handle
previously opened with oraopen or a LONG handle
created with the alloc sub-command. Both LONG and
LONG RAW columns are supported by the oralong com-
mand.
The following sub-commands are available:
alloc statement-handle -table $table -column
$column -rowid $rowid
Create and return a LONG handle that refers
to the LONG specified by ($table, $column,
$rowid). statement-handle must be a state-
ment handle previously created with oraopen
and will be used implicitly by the other ora-
long sub-commands that operate on this LONG.
free LONG-handle
Destroy the LONG handle and free any
resources associated with it.
read LONG-handle -datavar varname
Read the LONG specified by LONG-handle into
the variable identified by varname.
write LONG-handle -datavar varname
Write the data in the variable identified by
varname into the LONG specified by
LONG-handle.
LONG Example
# Assume that $sth is a valid statement-handle
# opened earlier with logon handle $lda
set chr_data [string repeat 0123456789---------- 10000]
# Find the ROWID for the LONG handle
oraparse $sth {select rowid from oratcl_long \
where field = 'value'}
oraexec $sth
orafetch $sth -datavariable rowid
set longid [oralong alloc $sth -table oratcl_long \
-column mp3 -rowid $rowid]
oralong write $longid -datavar chr_data
oracommit $lda
oralong read $longid -datavar out_data
oralong free $longid
if {[string equal $chr_data $out_data]} {
puts "write/read results are equal"
}
oracols statement-handle ?option?
Return the names of the columns from the last orasql,
orafetch, or oraplexec command as a Tcl list. The
oracols may be used after oraplexec, in which case the
bound variable names are returned. The option parame-
ter can be used to alter the result as follows:
all returns all values as a list of lists in the
format {{name size type precision scale nul-
lok} {...}}
name returns a list of column names. This is the
default.
size returns a list of column sizes.
type returns a list of column types.
precision returns a list of column precisions.
scale returns a list of column scales.
nullok returns a list of column "NULLOK" values.
"NULLOK" will be 1 if the column may be NULL,
or 0 otherwise.
The oracols command raises a Tcl error if the
statement-handle specified is not open. The oracols
command raises a Tcl error if the option is not valid.
oradesc logon-handle table-name
Describes the columns of table-name. Returns a list
containing lists in the format {name size type preci-
sion scale nullok} for each column of the table. Ora-
desc will also describe the columns of a table refer-
enced by a private or public synonym when given the
name of a synonym as the table-name arguement. Oradesc
will describe an object in the connecting schema before
describing a public synonym when the names are the
same.
oracommit logon-handle
Commit any pending transactions from prior orasql, ora-
bindexec, or oraplexec commands that use a statement
handle opened through the connection specified by
logon-handle. Logon-handle must be a valid handle pre-
viously opened with oralogon. Oracommit raises a Tcl
error if the logon-handle specified is not open.
oraroll logon-handle
Rollback any pending transactions from prior orasql,
orabindexec, or oraplexec commands that use a statement
handle opened through the connection specified by
logon-handle. Logon-handle must be a valid handle pre-
viously opened with oralogon. Oraroll raises a Tcl
error if the logon-handle specified is not open.
oraautocom logon-handle boolean
Enables or disables automatic commit of SQL data mani-
pulation statements using a statement handle opened
through the connection specified by logon-handle.
Logon-handle must be a valid handle previously opened
with oralogon. Boolean may be any value that evaluates
to boolean true (1, on, true) to enable automatic com-
mit, or boolean false to disable. After setting the
automatic commit status, oraautocom returns the new
commit status (1 for on, 0 for off) for validation pur-
poses. The automatic commit feature defaults to "off".
Oraautocom raises a Tcl error if the logon-handle
specified is not open.
oraldalist
Return a list of all opened logon-handles.
orastmlist logon-handle
Return a list of all opened statement-handles associ-
ated with the logon-handle.
orainfo option ?args?
Retrieves information about oratcl. Option may be
either "version", "server", or "loginhandle".
"orainfo version" returns the current oratcl version.
"orainfo server" requires a valid logon handle previously opened
with oralogon as an argument and returns the oracle
server information.
"orainfo status" requires a valid logon handle previously opened
with oralogon as an argument and returns the oracle server
connection status (1 connected, 0 not connected).
"orainfo logonhandle" requires a
statement handle previously opened with oraopen and
returns the login handle that the statement handle was
opened under.
EXAMPLES
puts [orainfo version]
set lda [oralogon username/password@db]
puts [orainfo server $lda]
set sth [oraopen $lda]
set mylda [orainfo loginhandle $sth]
NOTE
The oramsg array ha been removed in Oratcl version 4.0.
Equivalent functionality for this array is available via the
oramsg command.
NOTES
Tcl errors can also be raised by any Oratcl command if a
command's internal calls to OCI library routines fail.
Dates
Oracle is very particular about using date literals in
SQL. Date literals should match the default date for-
mat for your oracle session. default date formats can
be modified with an "alter session" SQL statement.
alter session set nls_date_format = 'DD-MON-YYYY'
Connection Limits
The limit of the number of simultaneous connection han-
dles and statement handles is determined by the Oracle
server configuration. The processes init.ora is the
most common limitation.
Multithreading
Oratcl may be used with the thread extension.
Slave Interpreters
Oratcl may be used in a Tcl slave interpreter. How-
ever, logon handles and statement handles are only
accessible from the interpreter in which they are
created. The test suite provides examples of slave
interpreter interaction.
Long and Long Raw
The maximum amount of LONG or LONG RAW data returned by
orafetch is ultimately dependent on Oratcl's ability to
malloc() maxlong bytes of memory for each LONG/LONG RAW
column retrieved. Configuring maxlong to too high a
value may cause core dumps or memory shortages.
Ref Cursor
Ref-cursor variables returned by oraplexec must be
specified as a currently open statement handle from the
same logon connection:
set lda [oralogon scott/tiger]
set exec_cur [oraopen $lda]
set fetch_cur [oraopen $lda]
set plsql { begin
open :fetchcur for select empno, ename
from emp where job = :job ;
end;
}
oraplexec $exec_cur $plsql :job ANALYST :fetchcur $fetch_cur
orafetch $fetch_cur -arrayvariable dbres -indexbyname
while {[oramsg $fetch_cur rc] == 0} {
puts "$dbres(EMPNO) $dbres(ENAME)"
orafetch $fetch_cur -arrayvariable dbres -indexbyname
}
Bind Variables
Using SQL bind variables is more efficient than letting
Oracle reparse SQL statements. Use a combination of
oraparse / orabind / oraexec:
set sql "insert into name_tab(first_name) values(:firstname)"
oraparse $cur $sql
foreach name [list Ted Alice John Sue] {
orabind $cur :firstname $name
oraexec $cur
}
rather than:
foreach name [list Ted Alice John Sue] {
set sql "insert into name_tab(first_name) values('$name')"
oraparse $cur $sql
oraexec $cur
}
ASYNChrONOUS TRANSACTION PROCESSING
set lda [oralogon scott/tiger -async]
set sth [oraopen $lda]
set sql {select empno, ename from emp where job = :job}
#parse phase
while {[oraparse $sth $sql] == $::oratcl::codes(OCI_STILL_EXECUTING)} {
...
process other events
...
}
#bind phase
orabind $sth :job ANALYST
#execution phase
while {[oraexec $sth] == $::oratcl::codes(OCI_STILL_EXECUTING)} {
...
process other events
...
}
#fetch one row
while {[orafetch $sth -datavar row] == $::oratcl::codes(OCI_STILL_EXECUTING)} {
...
process other events
...
}
#while row found, process and fetch another row
while {[oramsg $sth rc] == 0} {
puts "row [oramsg $sth rows] == $row"
while {[orafetch $sth -datavar row] == $::oratcl::codes(OCI_STILL_EXECUTING)} {
...
process other events
...
}
}
ENVIRONMENT VARIABLES
ORACLE_SID
The default Oracle server system ID.
ORACLE_HOME
The path to the Oracle home directory for ORACLE_SID.
FILES
/etc/oratab or /var/opt/oracle/oratab
$ORACLE_HOME/network/admin/tnsnames.ora
/etc/tnsnames.ora
/var/opt/oracle/tnsnames.ora
$HOME/.tnsnames.ora - definitions for Oracle servers.
BUGS
None known.
AUTHOR
Todd Helfter, Version 4.4 released May 18, 2006
thelfter@gmail.com
Man(1) output converted with
man2html