第七章 过 JDBC 连接 SQL 网关 - 特定于实现的 JDBC 连接选项

特定于实现的 JDBC 连接选项

在定义 SQL 网关连接之前,应该确保了解外部数据库和数据库驱动程序的要求,因为这些要求会影响您定义连接的方式。

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

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

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

  • Sybase
  • Informix
  • MS SQL Server

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

Use COALESCE

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

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

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

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

然后,如果查询参数等于 null,则查询本质上将该参数视为通配符。在前面的示例中,如果提供的参数为 null,则此查询将返回所有行。

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

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

Conversion in Composite Row IDs

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

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

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

SQL 网关日志记录

SQL 网关使用 JDBC 连接时,可以生成日志。要启用此日志记录:

  • 在管理门户中,转至系统管理 > 配置 > 外部语言服务器。
  • 选择 %JDBC_Server 链接以打开编辑对话框(注意:不要选择 %Java_Server 链接,这是完全不同的)。
  • 如果高级设置尚未显示,请在“编辑”对话框底部选择“高级设置显示”链接。
  • 指定 LogFile 的名称(例如 jdbcSqlGateway.log)以记录 SQL Gateway 与数据库之间的交互。如果未指定完全限定路径,则日志文件将位于 JDBC SQL Gateway 最初启动时的当前目录中(可能是 /mgr/mgr/namespace 目录)。
  • 选择对话框顶部的“保存”按钮。
  • 在外部服务器主页上,关闭并重新启动 %JDBC_Server 连接以启用新设置。

还可以通过在编辑对话框中设置 Java 主目录字段来指定与 SQL 网关一起使用的 Java 版本 (JAVAHOME)。

注意:仅当需要执行故障排除时才启用日志记录。不应在正常操作期间启用日志记录,因为这会显着降低性能。

02-03 11:57