
Oratcl -  Tcl interface to Oracle database server


 * Oracle interface to Tcl
 *
 * Copyright 1993 Tom Poindexter and U S WEST Advanced Technologies, Inc.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose and without fee is hereby granted, provided
 * that the above copyright notice appear in all copies.  
 * Tom Poindexter and U S WEST make no representations about the suitability 
 * of this software for any purpose.  It is provided "as is" without express or
 * implied warranty.  By use of this software the user agrees to 
 * indemnify and hold harmless Tom Poindexter and U S WEST from any 
 * claims or liability for loss arising out of such use.
 *
 *-----------------------------------------------------------------------
 * Version 1.0 July, 1993
 * Tom Poindexter, Boulder Colorado
 * tpoind@advtech.uswest.com  or  tpoindex@nyx.cs.du.edu   
 *-----------------------------------------------------------------------
 * Version 2.0 November, 1993
 * Tom Poindexter, Boulder Colorado
 * tpoind@advtech.uswest.com  or  tpoindex@nyx.cs.du.edu   
 *-----------------------------------------------------------------------
 * Version 2.1 February, 1994
 * Tom Poindexter, Boulder Colorado
 * tpoind@advtech.uswest.com  or  tpoindex@nyx.cs.du.edu   
 *-----------------------------------------------------------------------
 * Version 2.11 April, 1994
 * Tom Poindexter, Boulder Colorado
 * tpoind@advtech.uswest.com  or  tpoindex@nyx.cs.du.edu   
 *-----------------------------------------------------------------------
 * Version 2.2 October, 1994
 * Tom Poindexter, Denver Colorado
 * tpoindex@nyx.cs.du.edu      <<<note new address!
 *-----------------------------------------------------------------------
 * Version 2.3 August, 1995
 * Tom Poindexter, Denver Colorado
 * tpoindex@nyx.cs.du.edu 
 *-----------------------------------------------------------------------
 * Version 2.4 April, 1996
 * Tom Poindexter, Denver Colorado
 * tpoindex@nyx.net
 *



WHAT IS ORATCL?

Oratcl is an extension to Tool Command Language (Tcl) that provides access
to a Oracle Database server.  Oratcl adds additional Tcl commands that 
login to an Oracle Server, pass SQL code, read results, etc.  Oratcl was 
inspired by similar tools written for Perl (sybperl, oraperl) but was written 
from scratch instead of borrowing on the work of either Perl extension.

Oratcl was based on my earlier effort with Sybtcl.  The sample program
"wosql" is a direct descendent of Sybtcl's "wisql".


Oratcl features:
  -supports multiple connections to the same or different Oracle Servers
  -sends Sql code or anonymous PL blocks to the server
  -caches return rows from the server for efficiency
  -converts results to strings and returns rows as Tcl lists
  -allows user defined null values to be returned
  -Version 7 stored procedures can be executed and return values accessed
  -accesses column names, lengths, and datatypes of rows & return values
  -provides feedback of Oracle messages and codes
  -reads/writes long columns to files
  -commit, rollback, and autocommit options



ACKNOWLEDGEMENTS

	John Ousterhout (ouster@sprite.berkeley.edu) for Tcl and Tk -
	    wonderful software in my opinion.

	Karl Lehenbauer (karl@NeoSoft.com) and 
	    Mark Diekhans (markd@Grizzly.com) for Extended Tcl -
	    more good stuff.

	Michael Peppler (mpeppler@itf0.itf.ch) for sybperl, which gave me
	    the inspiration to write Oratcl.  

	    ("I tried Perl, but never inhaled." - Tom Poindexter)


REQUIREMENTS

Since Oratcl is an extension to Tcl, you should already have Tcl, or be
prepared to get it via Ftp [sites listed below].

Of course, you must also have access to a Oracle Databaser Server.  
Oratcl must be linked with the Oracle OCI libraries.

Starting with version 2.4, Oratcl supports building a dynamic load library on
systems that support dynamic loading.  If you build static libraries and
executables, I recommend building with Extended Tcl.

The specific software versions I used:

 
        Tcl - 7.5             ftp.smli.com:/pub/tcl/tcl7.5.tar.Z
        Tk  - 4.1             ftp.smli.com:/pub/tcl/tk4.1.tar.Z
                              also avaible at
                              ftp.neosoft.com:/pub/tcl/mirror/ftp.smli.com
			      and 
			      http://www.neosoft.com/tcl
 
        Extended Tcl - 7.5.1  ftp.neosoft.com
                                /pub/tcl/tclx-distrib/tclX7.5.1.tar.gz


	Oracle OCI libraries -                       $$$    from Oracle 
	Oracle SQL Server - Version 6 or Version 7   $$$$$$ from Oracle 

>>>>>>>	I've put oratcl-2.4.tar.gz on ftp.nesoft.com 
        in /pub/tcl/extensions/oratcl-2.4.tar.gz

	see the newsgroup comp.lang.tcl for general Tcl discussion and
	the Tcl Frequently Asked Questions.


I've built Oratcl in SunOS 4.1.2 (BSD), Solaris 2.3 (Sys 5.4),
and HP-UX 10.x.

Other users have reported successful compiles on: 

DG/UX
Sequent PTX 2.1
AIX
Dec Alpha OSF/1
SGI Irix

(mail to me on a successful port on other platforms; I'll add to this list)


SAMPLES

Some samples are included using the Extended Tcl tcl(1) and wishx(1)
interpreters.    In particular, the "wosql" (Windowing Oracle SQL) program 
is a handy replacement for Sql*Plus for ad hoc queries.  Wosql does not 
attempt to provide any of the report generating and formatting 
capabilities of Sql*Plus.

Also in samples/ is iud_maker, an Oratcl that builds insert-update-delete
applications for a single table.

See ./samples/README.samples plus each file's comments and code.


MAN PAGE

You're in luck! I've written one.


OTHER DOCUMENTATION

The directory doc contains a draft of a chapter I'm writing on Oratcl
for an upcoming book on Tcl extensions, to be published by O'Reilly &
Associates late summer 1996 (?).
 

BUG REPORTS

Comments, suggestions, et.al., should be mailed to me at the above email
address, or posted to comp.lang.tcl if general enough nature.  
Hell, you can even mail to me if you like Oratcl!

Mail bug reports to:	tpoindex@nyx.net

Please *always* include: 
        -version of Oratcl
        -version of Tcl, Tk, and TclX
        -version of Oracle server and OCI libary
        -version of your operating system
        -compiler used, stock cc or Gcc
        -samples of SQL or Oratcl code causing problems
        -relevant database table definitions, views, procedures


KNOWN BUGS !!!

Oracle's 7.1.4 release seems to have introduced several problems with their
Oracle Call Interface (OCI) libraries that Oratcl uses.  Symptoms include
excessively long connect times (2+ minutes) when using Sql*Net, or
possibly "fetch out of sequence" errors when retrieving rows.  Use 
7.0.x or 7.1.6+ OCI libraries if you experience problems with 7.1.4.  

Some users have reported that this bug is still in some versions after
7.1.6, possibly SunOS.  I recommend calling Oracle Tech support. 

See the file OCI714.bug for additional details.


INSTALLATION

See the file INSTALL.  GNU Autoconf is used to generate the Makefile.

If you are having problems trying to build a dynamic load library for
Oratcl (--enable-shared), check the note in the INSTALL file.


OTHER

See the file CHANGES for changes in versions of Oratcl.

-finis-

