Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/Oratcl?V=33
QUERY_STRINGV=33
CONTENT_TYPE
DOCUMENT_URI/revision/Oratcl
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.70.100.156
REMOTE_PORT42868
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR3.129.247.196
HTTP_CF_RAY87a674e63d6a1d00-ORD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_CONNECTING_IP3.129.247.196
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit Oratcl Purpose:\ Discuss\ the\ Tcl\ <->\ Oracle\ DBMS\ binding\n\n\ What:\ Oracle\ extension\ to\ Tcl\n\ Where:\ http://oratcl.sf.net/\n\ \ \ \ \ \ \ \ http://sf.net/projects/oratcl/\n\ \ \ \ \ \ \ \ ftp://tcl.activestate.com/pub/tcl/nightly-cvs/\n\ \ \ \ \ \ \ \ http://www.oracle.com/technology/software/products/database/oracle10g/index.html\n\ \ \ \ \ \ \ \ ftp://ftp.procplace.com/pub/tcl/sorted/packages-7.6/databases/oratcl-2.5/oratcl-2.5.tar.gz\n\ \ \ \ \ \ \ \ ftp://ftp.procplace.com/pub/tcl/sorted/packages-8.0/distrib/cvs-oratcl.tar.gz\n\ \ \ \ \ \ \ \ http://people.a2000.nl/hkooiman/Oratcl\n\ \ \ \ \ \ \ \ http://technet.oracle.com/\n\ Description:\ Provide\ access\ to\ a\ Oracle\ (versions\ through\ 6-9)\ Database\n\ \ \ \ \ \ \ \ server\ from\ within\ Tcl.\ \ OraTcl\ 3\ and\ up\ supports\ Tcl\ 8\n\ \ \ \ \ \ \ \ (tclX\ recommended),\ and\ supports\ Tcl\ 8.x,\ includes\ Windows\ NT\ DLLs,\n\ \ \ \ \ \ \ \ cursor\ variables\ from\ PL/SQL,\ can\ bind\ Tcl\ variables\ to\n\ \ \ \ \ \ \ \ orafetch\ results,\ can\ bind\ Tcl\ variables\ to\ Oracle\ :bind\ variables,\n\ \ \ \ \ \ \ \ supports\ asynchronous\ SQL\ execution.\n\ \ \ \ \ \ \ \ It\ supports\ Tcl/Tk\ 8.x,\ Oracle\ 7/8/8i/9i,\ i18n\ data,\ and\ TEA/Stubs\ as\n\ \ \ \ \ \ \ \ well\ as\ Solaris\ and\ Windows\ NT.\n\ \ \ \ \ \ \ \ OraTcl\ 2.5\ was\ the\ last\ version\ to\ support\ Tcl\ 7.6.\n\ \ \ \ \ \ \ \ The\ a2000\ site\ has\ information\ relating\ to\ a\ Macintosh\ port\ of\n\ \ \ \ \ \ \ \ \ Oratcl.\ \ Oracle\ has\ released\ a\ version\ of\ its\ 8.0.5\n\ \ \ \ \ \ \ \ \ database\ product\ for\ Linux\ at\ the\ oracle\ web\ site.\n\ \ \ \ \ \ \ \ Currently\ the\ version\ is\ 4.1\ .\n\ Updated:\ 06/2005\n\ Contact:\ See\ the\ sf.net\ web\ site\n\ \ \ \ \ \ \ \ mailto:[email protected]\ (Tom\ Poindexter)\n\n\n\nhttp://oratcl.sf.net/\ is\ the\ home\ page\ for\ this\ package\ binding\ Oracle\ to\ Tcl.\n\nInsert\ your\ favorite\ Oratcl\ tips,\ tricks,\ and\ hints,\ etc.\ here.\nAlso,\ point\ to\ various\ useful\ reading,\ such\ as\ \[BOOK\ Tcl/Tk\ Tools\],\nor\ \[BOOK\ Oracle\ and\ Open\ Source\].\n\n\"Cinderella\ languages\"\ \[http://sunsite.uakom.sk/sunworldonline/swol-08-1999/swol-08-regex.html\]\nis\ a\ published\ article\ on\ Oratcl's\ origins.\ ''(\[escargo\]\ -\ replaced\ link\ as\ of\ 8\ Nov\ 2006)''\n\n\[Tom\ Poindexter\]\ created\ Oratcl.\ \ \[Todd\ M.\ Helfter\]\ currently\ maintains\ it.\nTom\ Poindexter's\ Oratcl\ page\ http://www.nyx.net/~tpoindex/tcl.html\ has\na\ little\ bit\ about\ Oratcl,\ but\ the\ primary\ work\ on\ the\ extension\ is\ being\ndone\ by\ Todd\ via\ the\ \[SourceForge\]\ project.\ (''\[escargo\]\ 10\ Jan\ 2007''\ -\nThe\ tcl.html\ file\ referenced\ dates\ from\ the\ previous\ century....)\n\n\n\[VAD\],\ \[nstcl\]\ are\ tools\ that\ know\ about\ oratcl.\n\n----\n\nAlso\ add\ here\ information\ about\ tips\ for\ managing\ \[Unicode\],\ images,\ etc.\ from\ within\ Oracle\ tables.\n\nOne\ thing\ that\ was\ discovered\ is\ that\ one\ needs\ to\ set\ something\ called\ the\ NLS\ before\ starting\ oracle\ and\ attempting\ to\ deal\ with\ UTF-8\ data.\nThis\ can\ be\ done\ using\ the\ NLS_LANG\ environment\ variable,\ or\ using\ something\ like\ SQLPLUS's\n'''alter\ session\ set\ nls_territory'''\ and\ '''alter\ session\ set\ nls_language''\nto\ appropriate\ values.\n\nApparently,\ as\ long\ as\ NLS_LANG\ is\ set\ to\ some\ valid\ language,\ oracle\ then\nhandles\ a\ localization\ sweep\ over\ the\ data\ properly\ before\ handing\ the\ data\nback\ to\ the\ requestor.\ \ Then,\ you\ do\ a\ call\ to\n\ \ \ \ \ \ \ \ encoding\ convertfrom\ utf-8\ \$string\n\nand\ off\ you\ go.\n\n\n\n----\n\nTodd\ points\ out\ that,\ \"OraTcl\ relies\ on\ the\ Oracle\ install.\ \ This\ means\ different\ things\ on\ different\ platforms.\n\nOn\ Unix,\ the\ ORACLE_HOME\ environment\ variable\ must\ point\ to\ a\ valid\ Oracle\ninstall.\n\nOn\ windows,\ the\ ociw32.lib\ file\ must\ be\ found\ in\ the\ WINDOWS\ search\ path.\nIn\ the\ past,\ I\ have\ had\ to\ place\ the\ oracle\ directory\ in\ the\ windows\ PATH\nvariable\ in\ autoexec.bat.\ \ In\ later\ releases,\ the\ registry\ information\ was\nsufficient\ to\ find\ the\ file.\"\n\n----\n\n''Laurent\ Riesterer,\ 2005/9/23''\ The\ easiest\ way\ to\ install\ the\ required\ library\ (tested\ on\ Windows)\ is\ to\ use\ the\ \"Oracle\ Instant\ Client\"\ setup.\ You\ just\ need\ to\ unzip\ the\ content\ of\ one\ file\ in\ a\ folder\ (about\ 80\ MB),\ add\ this\ folder\ to\ you\ path\ and\ then\ you\ can\ start\ to\ use\ \[Oratcl\].\ You\ don't\ need\ any\ configuration\ file,\ just\ use\ a\ fully\ qualified\ name\ in\ your\ connection\ string:\n\n\ user/password@//my.oracle.server:port/my.database.service\n\n----\n\nTcl\ has\ other\ connections\ to\ \[COMPANY:\ Oracle\].\n\n----\n\[tksql\]\ is\ an\ application\ for\ editing\ \[PostgreSQL\]\ (''not''\ Oracle)\ tables.\n----\n\n\[LV\]\ For\ which\ version\ of\ Oratcl\ is\ this\ template\ -\ I\ seem\ to\ recall\ that\nat\ version\ changes,\ the\ paradigm\ used\ by\ oratcl\ programs\ had\ to\ change...\n\nA\ recent\ article\ on\ comp.lang.tcl\ by\ \[Kevin\ Rodgers\]\ asked\ for\ncomments\ about\ this\ sample\ boilerplate:\n\n\ #\ For\ error\ reporting:\n\ set\ program\ \[file\ tail\ \$argv0\]\n\n\ #\ Package\ interface:\n\ package\ require\ Oratcl\n\n\ #\ Connect\ to\ the\ \$env(TWO_TASK)\ database\ as\ USER\ with\ PASSWORD:\n\ if\ \[catch\ \{oralogon\ \"USER/PASSWORD\"\}\ ora_logon\]\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_logon\"\n\ \ \ \ exit\ 1\n\ \}\n\ if\ \[catch\ \{oraopen\ \$ora_logon\}\ ora_statement\]\ \{\n\ \ \ \ oralogoff\ \$ora_logon\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_statement\"\n\ \ \ \ exit\ 1\n\ \}\n\ #if\ \[catch\ \{oraconfig\ \$ora_statement\ fetchrows\ 1024\}\ ora_error\]\ \{\n\ #\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ #\}\n\n\ #\ Execute\ SQL\ statement:\n\ set\ sql\ \"SELECT\ column_1,\ ...\ column_N\ FROM\ ...\ WHERE\ ...\"\n\ #\ Note\ that\ for\ Oratcl\ 4.x,\ the\ \$oramsg\ references\ have\ to\ change\ to\n\ #\ \[oramsg\ \$ora_statement\ rc\]\n\ if\ \[catch\ \{orasql\ \$ora_statement\ \$sql\}\ ora_error\]\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ \}\ elseif\ \{\$oramsg(rc)\ !=\ 0\}\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$oramsg(errortxt)\"\n\ \}\ else\ \{\n\ \ \ \ #\ Process\ each\ row\ with\ column_I\ bound\ to\ var_I:\n\ \ \ \ while\ \{\$oramsg(rc)\ ==\ 0\}\ \{\n\ \ \ \ \ \ \ \ if\ \[catch\ \{orafetch\ \$ora_statement\ \\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{...\ \$var_1\ ...\ \$var_N\ ...\}\ \\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ '@'\ var_1\ 1\ ...\ var_N\ N\}\ \\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ora_error\]\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ \ \ \ \ \ \ \ \ \ \ \ break\n\ \ \ \ \ \ \ \ \}\ elseif\ \{\$oramsg(rc)\ ==\ 1403\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ break\n\ \ \ \ \ \ \ \ \}\ elseif\ \{\$oramsg(rc)\ !=\ 0\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ puts\ stderr\ \"\$program:\ \$oramsg(errortxt)\"\n\ \ \ \ \ \ \ \ \ \ \ \ break\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \}\n\ \}\n\n\ #\ Disconnect\ from\ the\ \$env(TWO_TASK)\ database:\n\ if\ \[catch\ \{oraclose\ \$ora_statement\ ora_error\]\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ \}\n\ if\ \[catch\ \{oralogoff\ \$ora_logon\ ora_error\]\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ \}\n\n----\nSee\ also\ http://www.dbcorp.com/downloads/ORATCL.ppt\ for\ an\ intro\ to\ Oratcl\ (and\ Oracle's\ OEM)\ from\ 2000.\n\nAddition\ of\ pointers\ to\ other\ Oratcl\ tutorials\ -\ particular\ current\ ones\ -\ would\nbe\ greatly\ appreciated.\n\n----\n\n\[elfring\]\ ''27\ Aug\ 2003''\ The\ package\ \"\[nstcl\]-database\"\ \[http://nstcl.sourceforge.net/\]\ uses\ a\ database\ driver\ for\ \[Oracle\].\n\n----\n\n\[RLH\]:\ I\ would\ like\ to\ second\ the\ request\ for\ tutorials\ and\ example\ pointers.\ I\ am\ new\ to\ Tcl\ and\ while\ I\ can\ use\ Perl/DBI\ to\ do\ what\ I\ want,\ I\ would\ rather\ use\ Tcl.\ \ :-)\n\n----\n\[Kroc\]\ -\ 18\ Oct.\ 2006\ :\n\nOraTcl\ relies\ on\ the\ Oracle\ install\ but\ that's\ not\ so\ easy\ to\ install\ Oracle\ client\ on\ Mac\ OS\ X.\ Here\ are\ the\ steps\ I\ followed\ to\ get\ something\ that\ works:\n\n'''1)\ Download\ Oracle\ client\ 8.1.7:'''\n\nThe\ file\ to\ get\ is\ '''Oracle\ 8i\ v8.1.7.1\ OCI\ /\ Mac\ OS\ X'''\ from\ this\ page:\ http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/macsoft.html\ (you\ must\ register\ to\ get\ it\ but\ it's\ free).\n\nUncompress\ '''MacOSX_8171.cpio'''\ and\ you'll\ get\ 3\ files:\ MacOSX_8.1.7.1_OCI_Demo.zip,\ Oracle_8.1.7.1_Client.zip\ et\ Release_Notes.zip.\n\n'''2)\ Client\ installation:'''\n\nUncompress\ Oracle_8.1.7.1_Client.zip\ then\ move\ '''Oracle_8.1.7.1_Client'''\ directory\ in\ your\ home.\n\nThen\ you\ must\ edit\ '''~/Oracle_8.1.7.1_Client/network/admin/tnsnames.ora'''\ to\ fit\ your\ server\ parameters.\ At\ the\ end,\ it\ should\ be\ something\ like\ this:\n\n\ MYBASE\ =\n\ \ \ \ \ (DESCRIPTION\ =\n\ \ \ \ \ \ \ \ \ (ADDRESS_LIST\ =\n\ \ \ \ \ \ \ \ \ \ \ \ \ (ADDRESS\ =\ (PROTOCOL\ =\ TCP)(HOST\ =\ 192.168.1.119)(PORT\ =\ 1521))\n\ \ \ \ \ \ \ \ \ )\n\ \ \ \ \ (CONNECT_DATA\ =\n\ \ \ \ \ \ \ \ \ (SID\ =\ MYBASE)\n\ \ \ \ \ )\n\ )\n\n'''3)\ Environment\ variable:'''\n\nAt\ least\ one\ environment\ variable,\ '''ORACLE_HOME''',\ must\ be\ set\ before\ loading\ \[OraTcl\]:\n\n\ set\ ::env(ORACLE_HOME)\ \[file\ normalize\ ~/Oracle_8.1.7.1_Client\]\n\nTested\ on\ Mac\ OS\ X\ 10.4.8\ with\ OraTcl\ 4.4\n\n----\n**Oracle\ 10\ and\ OraTcl**\n\nNote\ that\ Oracle\ 10\ brings,\ at\ least\ on\ some\ platforms,\ another\ wrinkle.\nFor\ me,\ on\ a\ SPARC\ Solaris\ 9\ system,\ Oracle\ 10\ defaults\ to\ 64\ bit\ libraries.\nIf\ you\ are\ using\ \[ActiveTcl\]\ or\ something\ similar,\ you\ will\ find\ that\noratcl\ was\ compiled\ as\ a\ 32\ bit\ interface.\ This\ means\ that\ you\ need\ to\nuse\ the\ environment\ varirable:\n======\n#\ For\ 32\ bit\ tcl\ on\ 64\ bit\ solaris\ with\ 64\ bit\ oracle.\nexport\ ORACLE_LIBRARY=\$ORACLE_HOME/lib32/libclntsh.so\n=======\n\nso\ that\ oratcl\ can\ be\ loaded.\nThis\ is\ '''not'''\ a\ bug\ in\ oratcl.\ It\ is\ the\ mechanism\ that\ Oracle\ provides\nfor\ someone\ to\ use\ the\ 32\ bit\ libraries.\ You\ just\ need\ to\ know\ whether\nyou\ are\ using\ a\ 32\ bit\ or\ a\ 64\ bit\ tcl\ so\ that\ you\ get\ the\ correct\ shared\nlibraries.\n\n----\n\[Programming\ Oracle\ stored-procedure\ cursors\]\n\n----\n!!!!!!\n%|\ \[Category\ Package\]\ |\ \[Category\ Database\]\ |%\n!!!!!! regexp2} CALL {my render Oratcl Purpose:\ Discuss\ the\ Tcl\ <->\ Oracle\ DBMS\ binding\n\n\ What:\ Oracle\ extension\ to\ Tcl\n\ Where:\ http://oratcl.sf.net/\n\ \ \ \ \ \ \ \ http://sf.net/projects/oratcl/\n\ \ \ \ \ \ \ \ ftp://tcl.activestate.com/pub/tcl/nightly-cvs/\n\ \ \ \ \ \ \ \ http://www.oracle.com/technology/software/products/database/oracle10g/index.html\n\ \ \ \ \ \ \ \ ftp://ftp.procplace.com/pub/tcl/sorted/packages-7.6/databases/oratcl-2.5/oratcl-2.5.tar.gz\n\ \ \ \ \ \ \ \ ftp://ftp.procplace.com/pub/tcl/sorted/packages-8.0/distrib/cvs-oratcl.tar.gz\n\ \ \ \ \ \ \ \ http://people.a2000.nl/hkooiman/Oratcl\n\ \ \ \ \ \ \ \ http://technet.oracle.com/\n\ Description:\ Provide\ access\ to\ a\ Oracle\ (versions\ through\ 6-9)\ Database\n\ \ \ \ \ \ \ \ server\ from\ within\ Tcl.\ \ OraTcl\ 3\ and\ up\ supports\ Tcl\ 8\n\ \ \ \ \ \ \ \ (tclX\ recommended),\ and\ supports\ Tcl\ 8.x,\ includes\ Windows\ NT\ DLLs,\n\ \ \ \ \ \ \ \ cursor\ variables\ from\ PL/SQL,\ can\ bind\ Tcl\ variables\ to\n\ \ \ \ \ \ \ \ orafetch\ results,\ can\ bind\ Tcl\ variables\ to\ Oracle\ :bind\ variables,\n\ \ \ \ \ \ \ \ supports\ asynchronous\ SQL\ execution.\n\ \ \ \ \ \ \ \ It\ supports\ Tcl/Tk\ 8.x,\ Oracle\ 7/8/8i/9i,\ i18n\ data,\ and\ TEA/Stubs\ as\n\ \ \ \ \ \ \ \ well\ as\ Solaris\ and\ Windows\ NT.\n\ \ \ \ \ \ \ \ OraTcl\ 2.5\ was\ the\ last\ version\ to\ support\ Tcl\ 7.6.\n\ \ \ \ \ \ \ \ The\ a2000\ site\ has\ information\ relating\ to\ a\ Macintosh\ port\ of\n\ \ \ \ \ \ \ \ \ Oratcl.\ \ Oracle\ has\ released\ a\ version\ of\ its\ 8.0.5\n\ \ \ \ \ \ \ \ \ database\ product\ for\ Linux\ at\ the\ oracle\ web\ site.\n\ \ \ \ \ \ \ \ Currently\ the\ version\ is\ 4.1\ .\n\ Updated:\ 06/2005\n\ Contact:\ See\ the\ sf.net\ web\ site\n\ \ \ \ \ \ \ \ mailto:[email protected]\ (Tom\ Poindexter)\n\n\n\nhttp://oratcl.sf.net/\ is\ the\ home\ page\ for\ this\ package\ binding\ Oracle\ to\ Tcl.\n\nInsert\ your\ favorite\ Oratcl\ tips,\ tricks,\ and\ hints,\ etc.\ here.\nAlso,\ point\ to\ various\ useful\ reading,\ such\ as\ \[BOOK\ Tcl/Tk\ Tools\],\nor\ \[BOOK\ Oracle\ and\ Open\ Source\].\n\n\"Cinderella\ languages\"\ \[http://sunsite.uakom.sk/sunworldonline/swol-08-1999/swol-08-regex.html\]\nis\ a\ published\ article\ on\ Oratcl's\ origins.\ ''(\[escargo\]\ -\ replaced\ link\ as\ of\ 8\ Nov\ 2006)''\n\n\[Tom\ Poindexter\]\ created\ Oratcl.\ \ \[Todd\ M.\ Helfter\]\ currently\ maintains\ it.\nTom\ Poindexter's\ Oratcl\ page\ http://www.nyx.net/~tpoindex/tcl.html\ has\na\ little\ bit\ about\ Oratcl,\ but\ the\ primary\ work\ on\ the\ extension\ is\ being\ndone\ by\ Todd\ via\ the\ \[SourceForge\]\ project.\ (''\[escargo\]\ 10\ Jan\ 2007''\ -\nThe\ tcl.html\ file\ referenced\ dates\ from\ the\ previous\ century....)\n\n\n\[VAD\],\ \[nstcl\]\ are\ tools\ that\ know\ about\ oratcl.\n\n----\n\nAlso\ add\ here\ information\ about\ tips\ for\ managing\ \[Unicode\],\ images,\ etc.\ from\ within\ Oracle\ tables.\n\nOne\ thing\ that\ was\ discovered\ is\ that\ one\ needs\ to\ set\ something\ called\ the\ NLS\ before\ starting\ oracle\ and\ attempting\ to\ deal\ with\ UTF-8\ data.\nThis\ can\ be\ done\ using\ the\ NLS_LANG\ environment\ variable,\ or\ using\ something\ like\ SQLPLUS's\n'''alter\ session\ set\ nls_territory'''\ and\ '''alter\ session\ set\ nls_language''\nto\ appropriate\ values.\n\nApparently,\ as\ long\ as\ NLS_LANG\ is\ set\ to\ some\ valid\ language,\ oracle\ then\nhandles\ a\ localization\ sweep\ over\ the\ data\ properly\ before\ handing\ the\ data\nback\ to\ the\ requestor.\ \ Then,\ you\ do\ a\ call\ to\n\ \ \ \ \ \ \ \ encoding\ convertfrom\ utf-8\ \$string\n\nand\ off\ you\ go.\n\n\n\n----\n\nTodd\ points\ out\ that,\ \"OraTcl\ relies\ on\ the\ Oracle\ install.\ \ This\ means\ different\ things\ on\ different\ platforms.\n\nOn\ Unix,\ the\ ORACLE_HOME\ environment\ variable\ must\ point\ to\ a\ valid\ Oracle\ninstall.\n\nOn\ windows,\ the\ ociw32.lib\ file\ must\ be\ found\ in\ the\ WINDOWS\ search\ path.\nIn\ the\ past,\ I\ have\ had\ to\ place\ the\ oracle\ directory\ in\ the\ windows\ PATH\nvariable\ in\ autoexec.bat.\ \ In\ later\ releases,\ the\ registry\ information\ was\nsufficient\ to\ find\ the\ file.\"\n\n----\n\n''Laurent\ Riesterer,\ 2005/9/23''\ The\ easiest\ way\ to\ install\ the\ required\ library\ (tested\ on\ Windows)\ is\ to\ use\ the\ \"Oracle\ Instant\ Client\"\ setup.\ You\ just\ need\ to\ unzip\ the\ content\ of\ one\ file\ in\ a\ folder\ (about\ 80\ MB),\ add\ this\ folder\ to\ you\ path\ and\ then\ you\ can\ start\ to\ use\ \[Oratcl\].\ You\ don't\ need\ any\ configuration\ file,\ just\ use\ a\ fully\ qualified\ name\ in\ your\ connection\ string:\n\n\ user/password@//my.oracle.server:port/my.database.service\n\n----\n\nTcl\ has\ other\ connections\ to\ \[COMPANY:\ Oracle\].\n\n----\n\[tksql\]\ is\ an\ application\ for\ editing\ \[PostgreSQL\]\ (''not''\ Oracle)\ tables.\n----\n\n\[LV\]\ For\ which\ version\ of\ Oratcl\ is\ this\ template\ -\ I\ seem\ to\ recall\ that\nat\ version\ changes,\ the\ paradigm\ used\ by\ oratcl\ programs\ had\ to\ change...\n\nA\ recent\ article\ on\ comp.lang.tcl\ by\ \[Kevin\ Rodgers\]\ asked\ for\ncomments\ about\ this\ sample\ boilerplate:\n\n\ #\ For\ error\ reporting:\n\ set\ program\ \[file\ tail\ \$argv0\]\n\n\ #\ Package\ interface:\n\ package\ require\ Oratcl\n\n\ #\ Connect\ to\ the\ \$env(TWO_TASK)\ database\ as\ USER\ with\ PASSWORD:\n\ if\ \[catch\ \{oralogon\ \"USER/PASSWORD\"\}\ ora_logon\]\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_logon\"\n\ \ \ \ exit\ 1\n\ \}\n\ if\ \[catch\ \{oraopen\ \$ora_logon\}\ ora_statement\]\ \{\n\ \ \ \ oralogoff\ \$ora_logon\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_statement\"\n\ \ \ \ exit\ 1\n\ \}\n\ #if\ \[catch\ \{oraconfig\ \$ora_statement\ fetchrows\ 1024\}\ ora_error\]\ \{\n\ #\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ #\}\n\n\ #\ Execute\ SQL\ statement:\n\ set\ sql\ \"SELECT\ column_1,\ ...\ column_N\ FROM\ ...\ WHERE\ ...\"\n\ #\ Note\ that\ for\ Oratcl\ 4.x,\ the\ \$oramsg\ references\ have\ to\ change\ to\n\ #\ \[oramsg\ \$ora_statement\ rc\]\n\ if\ \[catch\ \{orasql\ \$ora_statement\ \$sql\}\ ora_error\]\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ \}\ elseif\ \{\$oramsg(rc)\ !=\ 0\}\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$oramsg(errortxt)\"\n\ \}\ else\ \{\n\ \ \ \ #\ Process\ each\ row\ with\ column_I\ bound\ to\ var_I:\n\ \ \ \ while\ \{\$oramsg(rc)\ ==\ 0\}\ \{\n\ \ \ \ \ \ \ \ if\ \[catch\ \{orafetch\ \$ora_statement\ \\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{...\ \$var_1\ ...\ \$var_N\ ...\}\ \\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ '@'\ var_1\ 1\ ...\ var_N\ N\}\ \\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ora_error\]\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ \ \ \ \ \ \ \ \ \ \ \ break\n\ \ \ \ \ \ \ \ \}\ elseif\ \{\$oramsg(rc)\ ==\ 1403\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ break\n\ \ \ \ \ \ \ \ \}\ elseif\ \{\$oramsg(rc)\ !=\ 0\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ puts\ stderr\ \"\$program:\ \$oramsg(errortxt)\"\n\ \ \ \ \ \ \ \ \ \ \ \ break\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \}\n\ \}\n\n\ #\ Disconnect\ from\ the\ \$env(TWO_TASK)\ database:\n\ if\ \[catch\ \{oraclose\ \$ora_statement\ ora_error\]\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ \}\n\ if\ \[catch\ \{oralogoff\ \$ora_logon\ ora_error\]\ \{\n\ \ \ \ puts\ stderr\ \"\$program:\ \$ora_error\"\n\ \}\n\n----\nSee\ also\ http://www.dbcorp.com/downloads/ORATCL.ppt\ for\ an\ intro\ to\ Oratcl\ (and\ Oracle's\ OEM)\ from\ 2000.\n\nAddition\ of\ pointers\ to\ other\ Oratcl\ tutorials\ -\ particular\ current\ ones\ -\ would\nbe\ greatly\ appreciated.\n\n----\n\n\[elfring\]\ ''27\ Aug\ 2003''\ The\ package\ \"\[nstcl\]-database\"\ \[http://nstcl.sourceforge.net/\]\ uses\ a\ database\ driver\ for\ \[Oracle\].\n\n----\n\n\[RLH\]:\ I\ would\ like\ to\ second\ the\ request\ for\ tutorials\ and\ example\ pointers.\ I\ am\ new\ to\ Tcl\ and\ while\ I\ can\ use\ Perl/DBI\ to\ do\ what\ I\ want,\ I\ would\ rather\ use\ Tcl.\ \ :-)\n\n----\n\[Kroc\]\ -\ 18\ Oct.\ 2006\ :\n\nOraTcl\ relies\ on\ the\ Oracle\ install\ but\ that's\ not\ so\ easy\ to\ install\ Oracle\ client\ on\ Mac\ OS\ X.\ Here\ are\ the\ steps\ I\ followed\ to\ get\ something\ that\ works:\n\n'''1)\ Download\ Oracle\ client\ 8.1.7:'''\n\nThe\ file\ to\ get\ is\ '''Oracle\ 8i\ v8.1.7.1\ OCI\ /\ Mac\ OS\ X'''\ from\ this\ page:\ http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/macsoft.html\ (you\ must\ register\ to\ get\ it\ but\ it's\ free).\n\nUncompress\ '''MacOSX_8171.cpio'''\ and\ you'll\ get\ 3\ files:\ MacOSX_8.1.7.1_OCI_Demo.zip,\ Oracle_8.1.7.1_Client.zip\ et\ Release_Notes.zip.\n\n'''2)\ Client\ installation:'''\n\nUncompress\ Oracle_8.1.7.1_Client.zip\ then\ move\ '''Oracle_8.1.7.1_Client'''\ directory\ in\ your\ home.\n\nThen\ you\ must\ edit\ '''~/Oracle_8.1.7.1_Client/network/admin/tnsnames.ora'''\ to\ fit\ your\ server\ parameters.\ At\ the\ end,\ it\ should\ be\ something\ like\ this:\n\n\ MYBASE\ =\n\ \ \ \ \ (DESCRIPTION\ =\n\ \ \ \ \ \ \ \ \ (ADDRESS_LIST\ =\n\ \ \ \ \ \ \ \ \ \ \ \ \ (ADDRESS\ =\ (PROTOCOL\ =\ TCP)(HOST\ =\ 192.168.1.119)(PORT\ =\ 1521))\n\ \ \ \ \ \ \ \ \ )\n\ \ \ \ \ (CONNECT_DATA\ =\n\ \ \ \ \ \ \ \ \ (SID\ =\ MYBASE)\n\ \ \ \ \ )\n\ )\n\n'''3)\ Environment\ variable:'''\n\nAt\ least\ one\ environment\ variable,\ '''ORACLE_HOME''',\ must\ be\ set\ before\ loading\ \[OraTcl\]:\n\n\ set\ ::env(ORACLE_HOME)\ \[file\ normalize\ ~/Oracle_8.1.7.1_Client\]\n\nTested\ on\ Mac\ OS\ X\ 10.4.8\ with\ OraTcl\ 4.4\n\n----\n**Oracle\ 10\ and\ OraTcl**\n\nNote\ that\ Oracle\ 10\ brings,\ at\ least\ on\ some\ platforms,\ another\ wrinkle.\nFor\ me,\ on\ a\ SPARC\ Solaris\ 9\ system,\ Oracle\ 10\ defaults\ to\ 64\ bit\ libraries.\nIf\ you\ are\ using\ \[ActiveTcl\]\ or\ something\ similar,\ you\ will\ find\ that\noratcl\ was\ compiled\ as\ a\ 32\ bit\ interface.\ This\ means\ that\ you\ need\ to\nuse\ the\ environment\ varirable:\n======\n#\ For\ 32\ bit\ tcl\ on\ 64\ bit\ solaris\ with\ 64\ bit\ oracle.\nexport\ ORACLE_LIBRARY=\$ORACLE_HOME/lib32/libclntsh.so\n=======\n\nso\ that\ oratcl\ can\ be\ loaded.\nThis\ is\ '''not'''\ a\ bug\ in\ oratcl.\ It\ is\ the\ mechanism\ that\ Oracle\ provides\nfor\ someone\ to\ use\ the\ 32\ bit\ libraries.\ You\ just\ need\ to\ know\ whether\nyou\ are\ using\ a\ 32\ bit\ or\ a\ 64\ bit\ tcl\ so\ that\ you\ get\ the\ correct\ shared\nlibraries.\n\n----\n\[Programming\ Oracle\ stored-procedure\ cursors\]\n\n----\n!!!!!!\n%|\ \[Category\ Package\]\ |\ \[Category\ Database\]\ |%\n!!!!!!} CALL {my revision Oratcl} CALL {::oo::Obj1547805 process revision/Oratcl} CALL {::oo::Obj1547803 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4