第九章 通过 ODBC 连接 SQL 网关 - 特定于实现的 ODBC 连接选项

文章目录

  • [第九章 通过 ODBC 连接 SQL 网关 - 特定于实现的 ODBC 连接选项](#第九章 通过 ODBC 连接 SQL 网关 - 特定于实现的 ODBC 连接选项)
  • [特定于实现的 ODBC 连接选项](#特定于实现的 ODBC 连接选项)

第九章 通过 ODBC 连接 SQL 网关 - 特定于实现的 ODBC 连接选项

特定于实现的 ODBC 连接选项

在定义 SQL 网关连接之前,应该确保了解外部数据库和数据库驱动程序的要求,因为这些要求会影响您定义连接的方式。以下选项并不适用于所有驱动程序实现。

Legacy Outer Join

启用旧式外连接语法 (Sybase) 选项控制连接是否允许您使用旧式外连接。旧版外连接使用早于 SQL-92 标准的 SQL 语法。要了解外部数据库是否支持此类联接,请查阅该数据库的文档。

需要长数据长度

需要长数据长度选项控制连接如何绑定数据。此选项的值应与数据库驱动程序的 SQL_NEED_LONG_DATA_LEN 设置一致。要查找此设置的值,请使用 ODBC SQLGetInfo 函数。如果 SQL_NEED_LONG_DATA_LEN 等于 Y,则选择需要长数据长度选项;否则清除它。

支持 Unicode

支持 Unicode 流选项控制连接是否支持流中的 Unicode 数据,这些数据是 LONGVARCHARLONGVARBINARY 类型的字段。

  • 对于 Sybase,清除此复选框。如果使用 Sybase 数据库,则通过 SQL 网关访问的所有字段应仅包含 UTF-8 数据。
  • 对于其他数据库,请选中此复选框。

默认情况下不使用分隔标识符

默认情况下不使用分隔标识符选项控制生成的例程中标识符的格式。

如果使用的数据库不支持分隔 SQL 标识符,请选中此复选框。目前包括以下数据库:

  • Sybase
  • Informix
  • MS SQL Server

如果使用任何其他数据库,请清除该复选框。所有 SQL 标识符都将被分隔。

Use COALESCE

Use COALESCE 选项控制当查询包含参数 (?) 时如何处理查询,并且仅当查询参数等于 null 时才有效。

  • 如果不选择"使用 COALESCE"并且查询参数等于 null,则查询仅返回对应值为 null 的记录。例如,考虑以下形式的查询:
sql 复制代码
SELECT ID, Name from LinkedTables.Table WHERE Name %STARTSWITH ?

如果提供的参数为空,则查询将仅返回名称为空值的行。

  • 如果选择"使用 COALESCE",查询会将每个参数包装在 COALESCE 函数调用中,该函数调用控制空值的处理方式。

然后,如果查询参数等于 null,则查询本质上将该参数视为通配符。在前面的示例中,如果提供的参数为 null,则此查询将返回所有行,这与典型 ODBC 客户端的行为一致。

是否选择此选项取决于您的偏好以及外部数据库是否支持 COALESCE 功能。

要查明外部数据库是否支持 COALESCE 函数,请查阅该数据库的文档。

复合行 ID 的转换

复合行 ID 中的转换选项控制在形成复合 ID 时如何处理非字符值。选择数据库支持的选项:

  • 不转换非字符值 --- 此选项不执行任何转换。仅当数据库支持将非字符值连接到字符值时,此选项才适用。
  • 使用 CAST --- 此选项使用 CAST 将非字符值转换为字符值。
  • 使用 {fn Convert ...} --- 此选项使用 {fn Convert ...} 将非字符值转换为字符值。

在所有情况下,ID 都用 || 连接起来ID(或转换后的 ID)之间。

相关推荐
DarkAthena34 分钟前
【ORACLE】记录一些ORACLE的merge into语句的BUG
数据库·oracle·bug
江沉晚呤时1 小时前
深入了解C# List集合及两种常见排序算法:插入排序与堆排序
windows·sql·算法·oracle·c#·排序算法·mybatis
大新新大浩浩1 小时前
arm64适配系列文章-第三章-arm64环境上mariadb的部署
数据库·arm·mariadb
聪明的墨菲特i1 小时前
SQL进阶知识:九、高级数据类型
xml·数据库·sql·mysql·json·空间数据类型
oioihoii1 小时前
金仓数据库 KingbaseES 产品深度优化提案:迈向卓越的全面升级
数据库·性能优化·金融·金仓数据库 2025 征文·数据库平替用金仓
艺杯羹1 小时前
JDBC 批处理与事务处理:提升数据操作效率与一致性的密钥
数据库·mysql·jdbc·事务处理·批处理数据
猫咪-95272 小时前
【金仓数据库征文】——选择金仓,选择胜利
数据库·金仓数据库 2025 征文·数据库平替用金仓
努力进修3 小时前
【金仓数据库征文】-金仓数据库性能调优 “快准稳” 攻略:实战优化,让数据处理飞起来
数据库·人工智能·金仓数据库 2025 征文·数据库平替用金仓
User_芊芊君子4 小时前
【金仓数据库征文】金仓数据库KingbaseES:千行百业国产化征程中的璀璨之星
数据库·数据库平替用金仓·金仓数据库2025征文
User_芊芊君子5 小时前
【金仓数据库征文】金仓数据库KingbaseES:在技术与人文交织中开拓信创未来
数据库·数据库平替用金仓·金仓数据库2025征文