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

GBae 8s SQL 指南:语法_4. 数据类型和表达式_4.7 表达式(101)

GBASE数据库 2022-04-28
151

下列形式的 SELECT 语句是有效的,因为以表名称限定 newtable 的 NULL 列:
SELECT newtable.null, null::int FROM newtable;
在有名为 null 的变量的 SPL 例程的上下文中,会出现更多语法的多义性。示例如下:
CREATE FUNCTION nulltest() RETURNING INT;
DEFINE a INT;
DEFINE null INT;
DEFINE b INT;
LET a = 5;
LET null = 7;
LET b = null;
RETURN b;
END FUNCTION;

EXECUTE FUNCTION nulltest();
当在 DB-Access 中执行前面的函数时,在 LET 语句的表达式中,创建标识符 null 作为关键字
NULL。该函数返回 NULL 值,而不是 7。
使用 null 作为 SPL 例程的变量会限制在 SPL 例程体中对 NULL 值的使用。因此,前面的 SPL
代码是无效的,并导致 GBase 8s 返回下列错误:
-947 Declaration of an SPL variable named 'null' conflicts with SQL NULL value.
在 ESQL/C 中,如果有 SELECT 语句会返回 NULL 值的可能性,则您应使用指示符变量。

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

评论