This file is indexed.

/usr/share/doc/racket/db/notes.html is in racket-doc 6.7-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>6&nbsp;Notes</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_0&quot;);">&#9660;</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">DB:<span class="mywbr"> &nbsp;</span> Database Connectivity</a></td></tr></table></div><div class="tocviewsublisttop" style="display: block;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="using-db.html" class="tocviewlink" data-pltdoc="x">Using Database Connections</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="connect.html" class="tocviewlink" data-pltdoc="x">Connections</a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="query-api.html" class="tocviewlink" data-pltdoc="x">Queries</a></td></tr><tr><td align="right">4&nbsp;</td><td><a href="sql-types.html" class="tocviewlink" data-pltdoc="x">SQL Types and Conversions</a></td></tr><tr><td align="right">5&nbsp;</td><td><a href="util.html" class="tocviewlink" data-pltdoc="x">Utilities</a></td></tr><tr><td align="right">6&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">Notes</a></td></tr></table></div></div><div class="tocviewlist"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_1&quot;);">&#9658;</a></td><td>6&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">Notes</a></td></tr></table><div class="tocviewsublistbottom" style="display: none;" id="tocview_1"><table cellspacing="0" cellpadding="0"><tr><td align="right">6.1&nbsp;</td><td><a href="#%28part._connecting-to-server%29" class="tocviewlink" data-pltdoc="x">Local Sockets for Postgre<span class="mywbr"> &nbsp;</span>SQL and My<span class="mywbr"> &nbsp;</span>SQL Servers</a></td></tr><tr><td align="right">6.2&nbsp;</td><td><a href="#%28part._.Postgre.S.Q.L_.Database_.Character_.Encoding%29" class="tocviewlink" data-pltdoc="x">Postgre<span class="mywbr"> &nbsp;</span>SQL Database Character Encoding</a></td></tr><tr><td align="right">6.3&nbsp;</td><td><a href="#%28part._.Postgre.S.Q.L_.Authentication%29" class="tocviewlink" data-pltdoc="x">Postgre<span class="mywbr"> &nbsp;</span>SQL Authentication</a></td></tr><tr><td align="right">6.4&nbsp;</td><td><a href="#%28part._postgresql-timestamp-tz%29" class="tocviewlink" data-pltdoc="x">Postgre<span class="mywbr"> &nbsp;</span>SQL Timestamps and Time Zones</a></td></tr><tr><td align="right">6.5&nbsp;</td><td><a href="#%28part._.My.S.Q.L_.Authentication%29" class="tocviewlink" data-pltdoc="x">My<span class="mywbr"> &nbsp;</span>SQL Authentication</a></td></tr><tr><td align="right">6.6&nbsp;</td><td><a href="#%28part._.My.S.Q.L_.C.A.L.Ling_.Stored_.Procedures%29" class="tocviewlink" data-pltdoc="x">My<span class="mywbr"> &nbsp;</span>SQL <span class="stt">CALL</span>ing Stored Procedures</a></td></tr><tr><td align="right">6.7&nbsp;</td><td><a href="#%28part._sqlite3-requirements%29" class="tocviewlink" data-pltdoc="x">SQLite Requirements</a></td></tr><tr><td align="right">6.8&nbsp;</td><td><a href="#%28part._ffi-concurrency%29" class="tocviewlink" data-pltdoc="x">FFI-<wbr></wbr>Based Connections and Concurrency</a></td></tr><tr><td align="right">6.9&nbsp;</td><td><a href="#%28part._odbc-requirements%29" class="tocviewlink" data-pltdoc="x">ODBC Requirements</a></td></tr><tr><td align="right">6.10&nbsp;</td><td><a href="#%28part._odbc-status%29" class="tocviewlink" data-pltdoc="x">ODBC Status</a></td></tr></table></div></div></div><div class="tocsub"><div class="tocsubtitle">On this page:</div><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber">6.1<tt>&nbsp;</tt></span><a href="#%28part._connecting-to-server%29" class="tocsubseclink" data-pltdoc="x">Local Sockets for Postgre<span class="mywbr"> &nbsp;</span>SQL and My<span class="mywbr"> &nbsp;</span>SQL Servers</a></td></tr><tr><td><span class="tocsublinknumber">6.2<tt>&nbsp;</tt></span><a href="#%28part._.Postgre.S.Q.L_.Database_.Character_.Encoding%29" class="tocsubseclink" data-pltdoc="x">Postgre<span class="mywbr"> &nbsp;</span>SQL Database Character Encoding</a></td></tr><tr><td><span class="tocsublinknumber">6.3<tt>&nbsp;</tt></span><a href="#%28part._.Postgre.S.Q.L_.Authentication%29" class="tocsubseclink" data-pltdoc="x">Postgre<span class="mywbr"> &nbsp;</span>SQL Authentication</a></td></tr><tr><td><span class="tocsublinknumber">6.4<tt>&nbsp;</tt></span><a href="#%28part._postgresql-timestamp-tz%29" class="tocsubseclink" data-pltdoc="x">Postgre<span class="mywbr"> &nbsp;</span>SQL Timestamps and Time Zones</a></td></tr><tr><td><span class="tocsublinknumber">6.5<tt>&nbsp;</tt></span><a href="#%28part._.My.S.Q.L_.Authentication%29" class="tocsubseclink" data-pltdoc="x">My<span class="mywbr"> &nbsp;</span>SQL Authentication</a></td></tr><tr><td><span class="tocsublinknumber">6.6<tt>&nbsp;</tt></span><a href="#%28part._.My.S.Q.L_.C.A.L.Ling_.Stored_.Procedures%29" class="tocsubseclink" data-pltdoc="x">My<span class="mywbr"> &nbsp;</span>SQL <span class="stt">CALL</span>ing Stored Procedures</a></td></tr><tr><td><span class="tocsublinknumber">6.7<tt>&nbsp;</tt></span><a href="#%28part._sqlite3-requirements%29" class="tocsubseclink" data-pltdoc="x">SQLite Requirements</a></td></tr><tr><td><span class="tocsublinknumber">6.8<tt>&nbsp;</tt></span><a href="#%28part._ffi-concurrency%29" class="tocsubseclink" data-pltdoc="x">FFI-<wbr></wbr>Based Connections and Concurrency</a></td></tr><tr><td><span class="tocsublinknumber">6.9<tt>&nbsp;</tt></span><a href="#%28part._odbc-requirements%29" class="tocsubseclink" data-pltdoc="x">ODBC Requirements</a></td></tr><tr><td><span class="tocsublinknumber">6.10<tt>&nbsp;</tt></span><a href="#%28part._odbc-status%29" class="tocsubseclink" data-pltdoc="x">ODBC Status</a></td></tr><tr><td><span class="tocsublinknumber">6.10.1<tt>&nbsp;</tt></span><a href="#%28part._.D.B2_.O.D.B.C_.Driver%29" class="tocsubseclink" data-pltdoc="x">DB2 ODBC Driver</a></td></tr><tr><td><span class="tocsublinknumber">6.10.2<tt>&nbsp;</tt></span><a href="#%28part._.Oracle_.O.D.B.C_.Driver%29" class="tocsubseclink" data-pltdoc="x">Oracle ODBC Driver</a></td></tr><tr><td><span class="tocsublinknumber">6.10.3<tt>&nbsp;</tt></span><a href="#%28part._.S.Q.L_.Server_.O.D.B.C_.Driver%29" class="tocsubseclink" data-pltdoc="x">SQL Server ODBC Driver</a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="util.html" title="backward to &quot;5 Utilities&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="index.html" title="up to &quot;DB: Database Connectivity&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<span class="nonavigation">next &rarr;</span></span>&nbsp;</div><h3 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;notes&quot;">6<tt>&nbsp;</tt><a name="(part._notes)"></a>Notes</h3><p>This section discusses issues related to specific database systems.</p><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;connecting-to-server&quot;">6.1<tt>&nbsp;</tt><a name="(part._connecting-to-server)"></a>Local Sockets for PostgreSQL and MySQL Servers</h4><p>PostgreSQL and MySQL servers are sometimes configured by default to
listen only on local sockets (also called &ldquo;unix domain
sockets&rdquo;). This library provides support for communication over local
sockets on Linux and Mac OS X. If local socket communication is not
available, the server must be reconfigured to listen on a TCP port.</p><p>The socket file for a PostgreSQL server is located in the directory
specified by the <span class="stt">unix_socket_directory</span> variable in the
<span class="stt">postgresql.conf</span> server configuration file.  For example, on
Ubuntu 11.04 running PostgreSQL 8.4, the socket directory is
<span class="stt">/var/run/postgresql</span> and the socket file is
<span class="stt">/var/run/postgresql/.s.PGSQL.5432</span>. Common socket paths may be
searched automatically using the <span class="RktSym"><a href="connect.html#%28def._%28%28lib._db%2Fmain..rkt%29._postgresql-guess-socket-path%29%29" class="RktValLink" data-pltdoc="x">postgresql-guess-socket-path</a></span>
function.</p><p>The socket file for a MySQL server is located at the path specified by
the <span class="stt">socket</span> variable in the <span class="stt">my.cnf</span> configuration file. For
example, on Ubuntu 11.04 running MySQL 5.1, the socket is located at
<span class="stt">/var/run/mysqld/mysqld.sock</span>. Common socket paths for MySQL can be
searched using the <span class="RktSym"><a href="connect.html#%28def._%28%28lib._db%2Fmain..rkt%29._mysql-guess-socket-path%29%29" class="RktValLink" data-pltdoc="x">mysql-guess-socket-path</a></span> function.</p><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;PostgreSQL_Database_Character_Encoding&quot;">6.2<tt>&nbsp;</tt><a name="(part._.Postgre.S.Q.L_.Database_.Character_.Encoding)"></a>PostgreSQL Database Character Encoding</h4><p>In most cases, a database&rsquo;s character encoding is irrelevant, since
the connect function always requests translation to Unicode (UTF-8)
when creating a connection. If a PostgreSQL database&rsquo;s character
encoding is <span class="stt">SQL_ASCII</span>, however, PostgreSQL will not honor the
connection encoding; it will instead send untranslated octets, which
will cause corrupt data or internal errors in the client connection.</p><p>To convert a PostgreSQL database from <span class="stt">SQL_ASCII</span> to something
sensible, <span class="stt">pg_dump</span> the database, recode the dump file (using a
utility such as <span class="stt">iconv</span>), create a new database with the desired
encoding, and <span class="stt">pg_restore</span> from the recoded dump file.</p><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;PostgreSQL_Authentication&quot;">6.3<tt>&nbsp;</tt><a name="(part._.Postgre.S.Q.L_.Authentication)"></a>PostgreSQL Authentication</h4><p>PostgreSQL supports a large variety of
<a href="http://www.postgresql.org/docs/8.4/static/auth-pg-hba-conf.html">authentication
mechanisms</a>, controlled by the <span class="stt">pg_hba.conf</span> server configuration
file. This library currently supports only cleartext and md5-hashed
passwords, and it does not send cleartext passwords unless explicitly
ordered to (see <span class="RktSym"><a href="connect.html#%28def._%28%28lib._db%2Fmain..rkt%29._postgresql-connect%29%29" class="RktValLink" data-pltdoc="x">postgresql-connect</a></span>). These correspond to the
<span class="stt">md5</span> and <span class="stt">password</span> authentication methods in the parlance of
<span class="stt">pg_hba.conf</span>, respectively. On Linux and Mac OS X, <span class="stt">ident</span>
authentication is automatically supported for local sockets (as of
PostgreSQL 9.1, this authentication method has been renamed
<span class="stt">peer</span>). The <span class="stt">gss</span>, <span class="stt">sspi</span>, <span class="stt">krb5</span>, <span class="stt">pam</span>, and
<span class="stt">ldap</span> methods are not supported.</p><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;postgresql-timestamp-tz&quot;">6.4<tt>&nbsp;</tt><a name="(part._postgresql-timestamp-tz)"></a>PostgreSQL Timestamps and Time Zones</h4><p>PostgreSQL&rsquo;s <span class="stt">timestamp with time zone</span> type is inconsistent with
the SQL standard (probably), inconsistent with <span class="stt">time with time
zone</span>, and potentially confusing to PostgreSQL newcomers.</p><p>A <span class="stt">time with time zone</span> is essentially a <span class="stt">time</span> structure with
an additional field storing a time zone offset. In contrast, a
<span class="stt">timestamp with time zone</span> has no fields beyond those of
<span class="stt">timestamp</span>. Rather, it indicates that its datetime fields should
be interpreted as a UTC time. Thus it represents an absolute point in
time, unlike <span class="stt">timestamp without time zone</span>, which represents local
date and time in some unknown time zone (possibly&#8212;<wbr></wbr>hopefully&#8212;<wbr></wbr>known
the the database designer, but unknown to PostgreSQL).</p><p>When a <span class="stt">timestamp with time zone</span> is created from a source without
time zone information, the session&rsquo;s <span class="stt">TIME ZONE</span> setting is used to
adjust the source to UTC time. When the source contains time zone
information, it is used to adjust the timestamp to UTC time. In either
case, the time zone information is <span style="font-style: italic">discarded</span> and only the UTC
timestamp is stored. When a <span class="stt">timestamp with time zone</span> is rendered
as text, it is first adjusted to the time zone specified by the
<span class="stt">TIME ZONE</span> setting (or by
<a href="http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-ZONECONVERT"><span class="stt">AT
TIME ZONE</span></a>) and that offset is included in the rendered text.</p><p>This library receives timestamps in binary format, so the time zone
adjustment is not applied, nor is the session&rsquo;s <span class="stt">TIME ZONE</span> offset
included; thus all <span class="RktSym"><a href="sql-types.html#%28def._%28%28lib._db%2Fbase..rkt%29._sql-timestamp%29%29" class="RktValLink" data-pltdoc="x">sql-timestamp</a></span> values in a query result
have a <span class="RktSym">tz</span> field of <span class="RktVal">0</span> (for <span class="stt">timestamp with time
zone</span>) or <span class="RktVal">#f</span> (for <span class="stt">timestamp without time
zone</span>). (Previous versions of this library sent and received
timestamps as text, so they received timestamps with adjusted time
zones.)</p><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;MySQL_Authentication&quot;">6.5<tt>&nbsp;</tt><a name="(part._.My.S.Q.L_.Authentication)"></a>MySQL Authentication</h4><p>As of version 5.5.7, MySQL supports
<a href="http://dev.mysql.com/doc/mysql-security-excerpt/5.5/en/pluggable-authentication.html">authentication
plugins</a>. The only plugins currently supported by this library are
<span class="stt">mysql_native_password</span> (the default) and <span class="stt">mysql_old_password</span>,
which corresponds to the password authentication mechanisms used since
version 4.1 and before 4.1, respectively.</p><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;MySQL_CALLing_Stored_Procedures&quot;">6.6<tt>&nbsp;</tt><a name="(part._.My.S.Q.L_.C.A.L.Ling_.Stored_.Procedures)"></a>MySQL <span class="stt">CALL</span>ing Stored Procedures</h4><p>MySQL <span class="stt">CALL</span> statements can be executed only if they return at most
one result set and contain no <span class="stt">OUT</span> or <span class="stt">INOUT</span> parameters.</p><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;sqlite3-requirements&quot;">6.7<tt>&nbsp;</tt><a name="(part._sqlite3-requirements)"></a>SQLite Requirements</h4><p>SQLite support requires the appropriate native library.</p><ul><li><p>On Windows, the library is <span class="stt">sqlite3.dll</span>. It is included in
the Racket distribution.</p></li><li><p>On Mac OS X, the library is <span class="stt">libsqlite3.0.dylib</span>, which is
included (in <span class="stt">/usr/lib</span>) in Mac OS X version 10.4 onwards.</p></li><li><p>On Linux, the library is <span class="stt">libsqlite3.so.0</span>. It is included in
the <span class="stt">libsqlite3-0</span> package in Debian/Ubuntu and in the <span class="stt">sqlite</span>
package in Red Hat.</p></li></ul><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;ffi-concurrency&quot;">6.8<tt>&nbsp;</tt><a name="(part._ffi-concurrency)"></a>FFI-Based Connections and Concurrency</h4><p><a href="connect.html#%28tech._wire._based._connection%29" class="techoutside" data-pltdoc="x"><span class="techinside">Wire-based connections</span></a> communicate using
<a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=ports.html%23%2528tech._port%2529&amp;version=6.7" class="techoutside Sq" data-pltdoc="x"><span class="techinside">ports</span></a>, which do not cause other Racket threads to
block. In contrast, an FFI call causes all Racket threads to block
until it completes, so <a href="connect.html#%28tech._ffi._based._connection%29" class="techoutside" data-pltdoc="x"><span class="techinside">FFI-based connections</span></a> can degrade the
interactivity of a Racket program, particularly if long-running
queries are performed using the connection. This problem can be
avoided by creating the FFI-based connection in a separate
<a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=places.html%23%2528tech._place%2529&amp;version=6.7" class="techoutside Sq" data-pltdoc="x"><span class="techinside">place</span></a> using the <span class="RktPn">#:use-place</span> keyword
argument. Such a connection will not block all Racket threads during
queries; the disadvantage is the cost of creating and communicating
with a separate <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=places.html%23%2528tech._place%2529&amp;version=6.7" class="techoutside Sq" data-pltdoc="x"><span class="techinside">place</span></a>.</p><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;odbc-requirements&quot;">6.9<tt>&nbsp;</tt><a name="(part._odbc-requirements)"></a>ODBC Requirements</h4><p>ODBC requires the appropriate driver manager native library as well as
driver native libraries for each database system you want use ODBC to
connect to.</p><ul><li><p>On Windows, the driver manager is <span class="stt">odbc32.dll</span>, which is
included automatically with Windows.</p></li><li><p>On Mac OS X, the driver manager is <span class="stt">libiodbc.2.dylib</span>
(<a href="http://www.iodbc.org">iODBC</a>), which is included (in
<span class="stt">/usr/lib</span>) in Mac OS X version 10.2 onwards.</p></li><li><p>On Linux, the driver manager is <span class="stt">libodbc.so.1</span>
(<a href="http://www.unixodbc.org">unixODBC</a>&#8212;<wbr></wbr>iODBC is not
supported). It is available from the <span class="stt">unixodbc</span> package in
Debian/Ubuntu and in the <span class="stt">unixODBC</span> package in Red Hat.</p></li></ul><p>In addition, you must install the appropriate ODBC Drivers and
configure Data Sources. Refer to the ODBC documentation for the
specific database system for more information.</p><h4 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;odbc-status&quot;">6.10<tt>&nbsp;</tt><a name="(part._odbc-status)"></a>ODBC Status</h4><p>ODBC support is experimental. The behavior of ODBC connections can
vary widely depending on the driver in use and even the configuration
of a particular data source.</p><p>The following sections describe the configurations that this library
has been tested with.</p><p>Reports of success or failure on other platforms or with other drivers
would be appreciated.</p><h5 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;DB2_ODBC_Driver&quot;">6.10.1<tt>&nbsp;</tt><a name="(part._.D.B2_.O.D.B.C_.Driver)"></a>DB2 ODBC Driver</h5><p>The driver from IBM DB2 Express-C v9.7 has been tested on Ubuntu 11.04
(32-bit only).</p><p>For a typical installation where the instance resides at
<span class="stt">/home/db2inst1</span>, set the following option in the Driver
configuration: <span class="stt">Driver =
/home/db2inst1/sqllib/lib32/libdb2.so</span>. (The path would presumably be
different for a 64-bit installation.)</p><p>The DB2 driver does not seem to accept a separate argument for the
database to connect to; it must be the same as the Data Source name.</p><h5 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;Oracle_ODBC_Driver&quot;">6.10.2<tt>&nbsp;</tt><a name="(part._.Oracle_.O.D.B.C_.Driver)"></a>Oracle ODBC Driver</h5><p>The driver from Oracle Database 10g Release 2 Express Edition has been
tested on Ubuntu 11.04 (32-bit only).</p><p>It seems the <span class="stt">ORACLE_HOME</span> and <span class="stt">LD_LIBRARY_PATH</span> environment
variables must be set according to the <span class="stt">oracle_env.{csh,sh}</span> script
for the driver to work.</p><p>Columns of type <span class="stt">TIME</span> can cause a memory error (ie, Racket
crashes). This seems to be due to a
<a href="http://forums.oracle.com/forums/thread.jspa?threadID=572661">bug</a>
in Oracle&rsquo;s ODBC driver, but I do not yet have a workaround.</p><h5 x-source-module="(lib &quot;db/scribblings/db.scrbl&quot;)" x-source-pkg="db-doc" x-part-tag="&quot;SQL_Server_ODBC_Driver&quot;">6.10.3<tt>&nbsp;</tt><a name="(part._.S.Q.L_.Server_.O.D.B.C_.Driver)"></a>SQL Server ODBC Driver</h5><p>Basic SQL Server support has been verified on Windows,
but the automated test suite has not yet been adapted and run.</p><p>The &ldquo;SQL Server&rdquo; driver refuses to accept <span class="stt">NUMERIC</span> or
<span class="stt">DECIMAL</span> parameters, producing the error &ldquo;Invalid precision value
(SQLSTATE: HY104).&rdquo; If possible, use the &ldquo;Native SQL Server&rdquo;
driver instead.</p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="util.html" title="backward to &quot;5 Utilities&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="index.html" title="up to &quot;DB: Database Connectivity&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<span class="nonavigation">next &rarr;</span></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>