通过使用一个称为
传递(Pass-Through) 的特殊方式,您可以将 SQL 语句直接提交给数据源。您可以在数据源使用的 SQL 语言中提交 SQL 语句。当想要执行 DB2
(R) SQL/API 不可能进行的操作时,使用传递(Pass-Through)会话。例如,使用传递(Pass-Through)会话来创建过程、创建索引或以数据源的本机语言执行查询。
当前,支持传递(Pass-Through)的数据源支持使用使用 SQL 的传递。将来,数据源有可能可以支持使用除 SQL 外的数据源语言的传递(Pass-Through)。
类似地,您可以使用传递(Pass-Through)会话来执行不受 SQL 支持的操作(例如,某些管理任务)。但是,您不能使用传递(Pass-Through)会话来执行所有管理任务。例如,您可以在数据源表上创建或删除表,但是不能启动或停止远程数据库。
您可以在传递(Pass-Through)会话中同时使用静态 SQL 和动态 SQL。
联合服务器提供下列 SQL 语句来管理传递(Pass-Through)会话:
- SET PASSTHRU
- 打开传递(Pass-Through)会话。当您发出另一个 SET PASSTHRU 语句来启动新的传递(Pass-Through)会话时,当前传递会话被终止。
- SET PASSTHRU RESET
- 终止当前的传递(Pass-Through)会话。
- GRANT(服务器特权)
- 对用户、组和授权标识列表或 PUBLIC 授予启动与特定数据源的传递(Pass-Through)会话的权限。
- REVOKE(服务器特权)
- 取消启动传递(Pass-Through)会话的权限。
下列限制适用于传递(Pass-Through)会话:
- 您必须使用数据源的 SQL 语言命令,而不能使用 DB2 SQL 语言。因此,您不查询昵称,但直接查询数据源对象。
- 当在传递(Pass-Through)会话中执行 UPDATE 或 DELETE 操作时,您不能使用 WHERE CURRENT OF CURSOR 条件。
- 2 LOB 在传递(Pass-Through)会话中不受支持。