概述

Microsoft ODBC Driver for Oracle 与用于您的平台上的 《 ODBC Programmer's Reference》（第二版）中所描述的“开放式数据库连接” （ODBC） 技术规格一致。ODBC 驱动程序使您能够把符合 ODBC 技术规格的应用程序与 Oracle 数据库相连接。

本帮助文件描述如何设置、配置和使用 ODBC 驱动程序，包括下列章节：

•	系统要求

•	增加和修改数据源

•	与数据源相连

•	ODBC 符合级

•	映射数据类型

•	错误信息


系统要求

要使用 Microsoft ODBC Driver for Oracle，您的 Windows 系统上必须装有下列 Oracle 软件：

•	Oracle Client Software（客户软件），7.2 版或更高。

Microsoft Oracle ODBC Driver 只支持 SQL*Net 2.3 或更新的版本。有关 Oracle 产品的细节，请查阅您的 Oracle 文献集。


增加和修改数据源

数据源标识一个通往可能包括网络库、服务器、数据库和其他属性在内的数据的路径。在这种情况下，数据源就是去  Oracle 数据库的路径。为了与数据源相连，Driver Manager （驱动程序管理器）检查  Window 注册文件中有关指定连接的信息。

由 ODBC DataSource Administrator 建立的注册项被 ODBC Driver Manager 和 ODBC 驱动程序所使用。该输入项包含有关每个数据源及其相关驱动程序的信息。在您能够连接数据源之前，连接信息必须要加到注册文件中。详情请见：

•	使用 ODBC Administrator


使用 ODBC Administrator

要在 Windows 中控制面板上的 32bit ODBC 上，通过 ODBC Administrator 才能增加和配置数据源。 然后 ODBC Administrator 再更新您的数据源连接信息。在您增加数据源的时侯，ODBC Administrator 为您更新注册信息。

增加用于 Windows 数据源

1	要启动 ODBC Administrator，双击 Windows 控制面板 上的 ODBC 图标。数据源 对话框就会出现。

2	当您看到数据源 对话框时，单击增加按钮。增加数据源 对话框会显示出来。

3	选择 ODBC 驱动程序，然后单击确定 。Microsoft ODBC Driver for Oracle Setup 对话框就会出现。

4	在 数据源名称 框内，输入您想要访问的数据源名称。它可以是您选择的任意名称。

5	在描述框内，输入对驱动程序的描述。这是一个用于描述数据源要连接的数据库驱动程
序的任选域。 它可以是您选择的任意名称。

6	在 用户名框内，输入您的数据库用户名。用户名是您的数据库用户标识。

7	在连接字符串 框内，输入用于 Oracle 服务器引擎的连接字符串。连接字符串标识您要访问的 输入用于 Oracle 服务器引擎 。

8	单击确定来增加此数据源。数据源 对话框将出现，并且 ODBC Administrator 会更新注册信息。您输入的用户名和连接字符串就成了该数据源的默认数据源连接值。
这样，当您使用对话框或连接字符串连接数据源时，这些值就成为对该数据源连接的
默认输入项。

9	单击增加 来增加另一个数据源，或者单击关闭 退出。

修改用于 Windows 的数据源

1	激活 ODBC Administrator。数据源 对话框会出现。

2	在 数据源 对话框里，选择您想要修改的 Oracle 数据源，然后单击设置。Microsoft ODBC Driver for Oracle Setup 对话框就会出现。

3	修改相应的数据源字域，然后单击确定 。

当您在这个对话框里完成了信息修改之后，ODBC Administrator 就会更新注册信息。


与数据源相连

ODBC 应用程序可以多种方式传递连接信息。例如：应用程序可让驱动程序总是提醒用户输入连接信息。或者应用程序也可以期望一个指定数据源连接的连接字符串。您连接数据源的方式依赖于您的 ODBC 应用程序所使用的连接方法。

连接数据源的一个常用方法是通过数据源对话框。如果您的 ODBC 应用程序被设置成使用对话框的话，对话框将显示出来，并提醒您输入适当的数据源连接信息。

另一种方法是通过使用连接字符串。

使用对话框连接数据源

1	当您看到数据源 对话框后，选择 Oracle 数据源并单击确定 。连接对话框将出现。

2	在连接对话框里填好适当的信息，然后单击确定 。

一旦连接信息被核实后，您的应用程序就可以用 ODBC 驱动程序来访问数据源包含的信息了。

连接字符串属性

有些应用程序可能要求连接字符串来指定数据源连接信息，而不用对话框来获得这类信息。 这个连接字符串由一个指明驱动程序连接到数据源方式的一系列属性组成。每个属性确定一段特定的信息，在驱动程序能够正确的连接数据源之前，它需要得到此信息。每一个驱动程序可以有不同的属性组，但是所有连接字符串的格式是相同的。连接字符串的格式如下：

�DSN=数据源名称[;CONNECTSTRING=值] [;PWD=值] [;UID=值] [;<属性>=<值>]�

您必须指定数据源名称（data-source-name），而其他的属性是可选的。如果您没有指明属性 ， 则您在 ODBC 数据源管理器的 DSN 表中指明的属性即为默认属性。属性的值对字母的大小写可能是敏感的。

用于连接字符串的属性如下：

属性	描述	默认值
DSN	数据源名称。数据源名称被列在 ODBC 数据源管理器的 ODBC 驱动程序表中。	� �
PWD	用于您想访问的 Oracle 服务器的口令。	� �
CONNECTSTRING	用于您想访问的 Oracle 服务器的连接字 符串。	� �
UID	Oracle 服务器用户名称。取决于您的系统，此属性可能不是任选的。即，出于安全需要，某些数据库和表格可能要求此属性。	� �
BUFFERSIZE	在获取列时使用的高速缓存大小。	40000
ROWLIMIT	在执行扩展获取时，使用的高速缓存大小。	400
SYSTEMTABLE	当这个值是 �T� （真）时，图视被视为 SQL 表格。	.F.
SYNONYMCOLUMNS	当这个值是 �T� （真）时，SQL 列返回 用于 Oracle 替代的列。否则，SQL 列将只返回用于表格和图视的列。如果没有设置此值，ODBC 驱动程序将提供更高速的存取。	.T.
REMARKS	当这个值是 �T� （真）时，注释列被返回用于结果。 如果没有设置此值，ODBC 驱动 程序将提供更高速的存取。	.F.
例如，一个连接字符串，它连接使用员工服务器（employees server）， mickey  主机和 TCP/IP 网络的员工数据源（Employees data source），  在连接字段中将有下列属性：

"DSN=Employees;CONNECTSTRING=t:mickey:employees;UID=cindy;PWD=secret"


ODBC 符合级

ODBC 为驱动程序定义了两种类型的符合标准��API 符合标准和 SQL 语法符合标准。 API 符合涉及到驱动程序支持的功能。SQL 符合涉及到这个驱动程序支持的 SQL 语法。 每一种符合标准均由若干级组成。

API  符合级

ODBC 驱动程序支持 API 的核心（Core）和第一级（Level 1）。 驱动程序也支持下列第二级（Level 2）功能：

•	SQLBrowseConnect(�)

•	SQLDataSources(�)

•	SQLDescribeParams(�)

•	SQLDrivers(�)

•	SQLForeignKeys(�)

•	SQLMoreResults(�)

•	SQLNativeSql(�)

•	SQLNumParams(�)

•	SQLPrimaryKeys(�)

•	SQLSetScrollOptions(�)

•	SQLSetPos(�)

•	SQLProcedureColumns(�)

•	SQLExtendedFetch(�)

•	SQLProcedures(�)

支持的选择

对于 SQLGetConnectOption(�) 和 SQLSetConnectOption(�) Level 1 功能，驱动程序支持下列选 择：

•	SQL_ACCESS_MODE (仅适于 SQLGetConnectOption(�))

•	SQL_AUTOCOMMIT

•	SQL_ODBC_CURSORS

•	SQL_OPT_TRACE

•	SQL_OPT_TRACEFILE

•	SQL_TRANSLATE_DLL

•	SQL_TRANSLATE_OPTION

•	SQL_TXN_ISOLATION

对于 SQLGetStmtOption(�) 和 SQLSetStmtOption(�) Level 1 功能，驱动程序支持下列选择：

•	SQL_BIND_TYPE

•	SQL_CONCURRENCY

•	SQL_CURSOR_TYPE

•	SQL_KEYSET_SIZE

•	SQL_MAX_ROW

•	SQL_ROWSET_TYPE

SQL 符合级

ODBC 驱动程序支持最小（Minimum）SQL 语法和核心（Core）SQL 语法。对于 SQL ，ODBC 驱动程序还支持下列 ODBC 扩展。

•	日期，时间和时间印记数据

•	左外部连接（Left Outer joins）

•	下列数值函数：

abs	log	round	tan
ceiling	log10	second	truncate
cos	mod	sign
exp	pi	sin
floor	power	sqrt
•	下列日期函数：

curdate	dayofweek	monthname	second
curtime	dayofyear	minute	week
dayname	hour	now	year
dayofmonth	month	quarter
•	下列字符串函数：

ascii	left	right	ucase
char	length	rtrim
concat	ltrim	soundex
lcase	replace	substring
•	下列类型转换函数：

convert
•	下列系统函数：

ifnull	user


映射数据类型

Oracle 服务器支持一个数据类型的集合。ODBC 驱动程序将这些数据类型映射到与它们对应的 ODBC SQL 数据类型。下表列出了 Oracle  服务器数据类型和它所对应的 ODBC Oracle 数 据类型。

Oracle  服务器数据类型	ODBC SQL 数据类型
CHAR	SQL_CHAR
DATE	SQL_TIMESTAMP
FLOAT	SQL_DOUBLE
LONG	SQL_LONGVARCHAR
LONG RAW	SQL_LONGVARBINARY
NUMBER	SQL_DECIMAL
NUMBER(P)	SQL_DECIMAL
NUMBER(P,S)	SQL_DECIMAL
RAW	SQL_VARBINARY
VARCHAR2	SQL_VARCHAR
INTEGER	SQL_DECIMAL
注释： ODBC SQL 数据类型不支持 MLSLABEL Oracle 数据类型。


错误信息

当一个错误发生时， 用于 Oracle 的 Microsoft ODBC 驱动程序返回 SQLSTATE（一种 ODBC 错误代码）和一个错误信息。这个驱动程序从它检测的错误以及从  Oracle 服务器返回的错误产生派生错误信息。

Oracle ODBC 驱动程序返回的信息

如果有一个可用的 Oracle 错误信息， 这个信息将按 [Microsoft]，[ODBC Driver for Oracle] 和 [Oracle] 标识符优先顺序返回。否则，返回的信息将没有 [Oracle] 标识符。如下例所 示：

Oracle 错误信息：

[Microsoft][ODBC driver for Oracle][Oracle]ORA-nnnnn 信息文本

Oracle ODBC 驱动程序错误信息

[Microsoft][ODBC driver for Oracle]