目录位置

目录名称在标识符中的位置及其与标识符的其余部分的分隔方式因数据源而异。 例如,在 Xbase 数据源中,目录名称表示一个目录;在 Microsoft Windows 中,目录名称通过反斜杠(\)与表名(即文件名)分隔。 下图演示了此条件。

目录位置:Xbase

在 SQL Server 数据源中,目录(catalog)指的是一个数据库,并且用句点(.)将它与架构和表名隔开。

目录位置:SQL Server

在 Oracle 数据源中,目录也是数据库,但位于表名之后,并通过符号“@”与架构和表名分隔开。

目录位置:Oracle

若要确定目录分隔符和目录名称的位置,应用程序使用SQL_CATALOG_NAME_SEPARATOR和SQL_CATALOG_LOCATION选项调用 SQLGetInfo。 可互操作的应用程序应根据这些值构造标识符。

引用包含多个部分的标识符时,应用程序必须注意单独引用每个部分,而不引用分隔标识符的字符。 例如,以下语句用于选择 Xbase 表的所有行和列,其中引用了目录(\XBASE\SALES\CORP)和表(Parts.dbf)名称,但不引用目录分隔符(\):

SELECT * FROM "\XBASE\SALES\CORP"\"PARTS.DBF"  

以下语句用于选择 Oracle 表的所有行和列,其中引用了目录 (Sales)、架构 (Corporate) 和表 (Parts) 名称,但未引用目录 (@) 或架构 (.) 分隔符:

SELECT * FROM "Corporate"."Parts"@"Sales"  

有关引用标识符的信息,请参阅下一部分,带引号的标识符