1. SPL 语句
该主题描述存储过程语言(SPL)语句,用于编写 SPL 例程。您可以将这些例程作为用户定义的例程(UDR)存储在数据库中。
SPL 例程(之前称为存储过程)是用于控制 SQL 活动的有效工具。本章包含 SPL 语句的描述。每个语句的描述包含以下信息: 信息
l 说明语句的作用的简单介绍
l 显示如何正确输入语句的语法图表
l 说明语法图表中每个输入参数的语法表
l 用法鬼子,包括带有说明这些规则的示例
如果语句由多个子句组成,则该语句描述为每个子句提供相同的信息集合。
有关创建和使用 SPL 例程的 SPL 语言和面向任务的信息的概述,请参阅GBase 8s SQL 教程指南。
有关如果创建和使用 SPL 例程中预备对象和动态 SQL 的详细示例的概述,请参阅 GBase developerWorks 中的 GBase 8s 数据库服务器存储过程语言的动态 SQL 支持。
GBase 8s 可以使用 CREATE PROCEDURE 或 CREATE PROCEDURE FROM 语句创建 SPL 函数,但是它对与外部函数则需要使用 CREATE FUNCTION 或 CREATE FUNCTION FROM 语句。但是,建议您使用 CREATE FUNCTION 或 CREATE FUNCTION FROM 语句创建新的用户定义的函数。
1.1 调试 SPL 例程
可以使用 Routine Debugger 客户端应用程序标识并分析 SPL 中的逻辑错误。
您可以在 SPL 例程中包含 TRACE 语句来生成跟踪输出。有关如何生成及检查 TRACE 语句的输出,请参阅 TRACE。
调试 SPL 例程中的当前限制
以下软件产品可支持当前用于调试 GBase 8s SPL 例程的客户端环境:
l Optim™ Development Studio (ODS)
l GBase Database Add-Ins for Visual Studio (IDAIVS)
有关哪些 GBase 8s 数据类型是只读的以及哪些是可更新的信息,请参阅数据类型支持文档。
以下限制适用于 Optim Development Studio (ODS) 和 GBase Database Add-Ins for Visual Studio (IDAIVS) 调试环境:
未日志记录的数据库
GBase 8s 非事务型数据库不支持 SPL 调试。无法对 ODS 或 IDAIVS 调试环境使用省略 WITH LOG 关键字的 CREATE DATABASE 语句的 GBase 8s 数据库。
辅助服务器实例
集群环境中的辅助服务器不支持 Insert 、Delete 或 Update 触发器的 'Step into' 触发过程操作。
用引号(")分隔的数据字符串
ODS 或 IDAIVS 调试客户端当前对引号标记分隔符的解释可能与某些 SPL 例程的预期行为冲突。
l 目前,在 ODS 调试会话中,缺省情况下,GBase Data Server 驱动程序 JDBC 和 SQLJ 连接字符串中的 DELIMIDENT 环境变量设置为'y'。JDBC 连接的 DELIMIDENT 缺省值为'n'。
l 在当前 IDAIVS 调试会话中,缺省情况下, GBase 8s .NET provider 连接字符串中的 DELIMIDENT 环境变量设置为 'y' 。
DELIMIDENT 环境变量的设置会影响数据库服务器如何解释带引号的字符串:
· 'y' 指定由双引号(")标记包括的字符串是分隔的 SQL 标识符。客户端应用程序必须使用单引号(')标记分隔字符串,并且只能在分隔的 SQL 标识符周围使用双引号("),可以支持比在未限定标识符中有效的更大的字符集。在支持区分大小写的语言环境中,分隔字符串中或分隔标识符内的字母都区分大小写。这是 .NET 的缺省值。
· 'n' 指定客户端应用程序可以使用双引号(")或单引号(')标记分隔字符串,但是不能分隔 SQL 标识符。如果数据库服务器遇到在需要 SQL 标识符的上下文中由双引号或单引号分隔的字符串,则它会发出错误。限定 SQL 标识符的所有者名称可以用单引号(')标记分隔。您必须使用一对相同的引号符号来分隔字符串。
· 如果客户端系统上没有指定 DELIMIDENT 值,则使用缺省设置。如上所述,对于 OCD 该缺省值为 'n'(来自GBase Data Server 驱动程序 JDBC 和 SQLJ 连接字符串)。对于 IDAIVS ,该缺省值为 'y'(来自 GBase 8s .NET provider 连接字符串)。




