暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

南大通用GBase 8s 数据库SPL语句

GBASE数据库 2022-06-20
928

SPL 例程(之前称为存储过程)是用于控制 SQL 活动的有效工具。本章包含 SPL 语句的描述。每个语句的描述包含以下信息:
1、说明语句的作用的简单介绍
2、显示如何正确输入语句的语法图表
3、说明语法图表中每个输入参数的语法表
4、使用规则,包括带有说明这些规则的示例
如果语句由多个子句组成,则该语句描述为每个子句提供相同的信息集合。

GBase 8s 可以使用 CREATE PROCEDURE 或 CREATE PROCEDURE FROM 语句创建 SPL 函数,但是它对与外部函数则需要使用 CREATE FUNCTION 或 CREATE FUNCTION FROM 语句。但是,建议您使用 CREATE FUNCTION 或 CREATE FUNCTION FROM 语句创建新的用户定义的函数。

可使用 Routine Debugger 客户端应用程序标识并分析 SPL 中的逻辑错误。可在 SPL 例程中包含 TRACE 语句来生成跟踪输出。有关如何生成及检查 TRACE 语句的输出,请参阅 TRACE。

调试 SPL 例程中的当前限制,以下软件产品可支持当前用于调试 GBase 8s SPL 例程的客户端环境:
1、Optim™ Development Studio (ODS)
2、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 例程的预期行为冲
突。
⚫ 目前,在 ODS 调试会话中,缺省情况下,GBase Data Server 驱动程序 JDBC 和 SQLJ连接字符串中的 DELIMIDENT 环境变量设置为'y'。JDBC 连接的 DELIMIDENT 缺省值为'n'。
⚫ 在当前 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 连接字符串)。
只影响 ODS 调试会话的限制,缺省情况下,JDBC 和 SQLJ 的 GBase Data Server 驱动程序的 'AUTOCOMMIT' 事务方式设置为'TRUE' 。它会在所有的日志记录的数据库的 ODS 调试会话中启用,包括创建的 WITH LOGMODE ANSI 的数据库,以及不兼容 ANSI 的数据库。

目前, GBase 8s 服务器在 Optim Development Studio 调试会话中完成每个 SQL 语句后执行隐式提交操作。如果在 GBase 8s SPL 例程中启动了显式事务,则数据库服务器将忽略 SQL ERROR -535 并继续调试会话。
只影响 IDAIVS 调试会话的限制,目前,GBase Database Add-Ins for Visual Studio 不支持 SPL 函数调试。您只能将 IDAIVS 调试环境用于不向调用上下文返回任何值的 GBase 8s SPL 过程。

使用 Optim Development Studio 开始 SPL 调试会话,要使用 Optim™ Development Studio (ODS) 调试 SPL 例程,您必须在 GBase 8s 数据库服务器和ODS 客户端之间建立连接。
您可以在客户端调试环境中检查 SPL 例程的运行时的行为,并用 Optim Development Studio(ODS)的标准调试器接口控制调试会话的流程。以下步骤也适用于 Optim Data Studio。
注: GBase 8s 数据库服务器的 SPL Routine Debugger 支持在 ODS 2.2.1.0 及以后的版本中有效。 早期的 ODS 版本(如 2.2.0)支持 GBase 8s 数据库服务器,但是不提供 GBase 8s SPL 支持和 SPL Routine Debugger 支持。

使用 GBase Database Add-Ins for Visual Studio 调试 SPL 过程,可以使用 GBase Database Add-Ins for Visual Studio 调试 GBase 8s SPL 过程。您可以调试运行在 GBase 8s 上的任何 SPL 过程。您可以遍历您的代码,设置行或变量断点,查看变量值,更改变量值,查看嵌套过程的调用堆栈信息,以及在调用堆栈的不同过程之间切换。通过在调试模式下运行过程并查看结果时单步执行代码,可以发现过程的问题并进行必要的更改。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论