Db2 在变量名上使用@
通过谷歌搜索,我发现了以下DB2函数声明:Db2 在变量名上使用@,db2,db2-400,Db2,Db2 400,通过谷歌搜索,我发现了以下DB2函数声明: CREATE FUNCTION QGPL.SPLIT ( @Data VARCHAR(32000), @Delimiter VARCHAR(5) ) 变量名前的@symbol是什么意思 问候, Pedro字符@只是SQL标识符[变量名]的第一个字符,用于命名为用户定义函数(UDF)的参数定义的参数;稍微重新格式化[因为乍一看,我认为修订可能会使at符号更明显地成为名称的一部分,但现在我认为可能不是]: CREATE FUNCTION Q
CREATE FUNCTION QGPL.SPLIT (
@Data VARCHAR(32000),
@Delimiter VARCHAR(5)
)
变量名前的@symbol是什么意思
问候,
Pedro字符@只是SQL标识符[变量名]的第一个字符,用于命名为用户定义函数(UDF)的参数定义的参数;稍微重新格式化[因为乍一看,我认为修订可能会使at符号更明显地成为名称的一部分,但现在我认为可能不是]:
CREATE FUNCTION QGPL.SPLIT
( @Data VARCHAR(32000)
, @Delimiter VARCHAR(5)
) returns ...
简言之,强烈反对在标识符中使用@字符;尽管标准对象命名支持使用此类变体字符,但它们可能会带来巨大的痛苦和困难,包括一些无法克服的困难:
标识符
标识符是用于形成名称的标记。SQL语句中的标识符是SQL标识符、系统标识符或主机标识符。 注意:$、@、#和所有其他变体字符不应在标识符中使用,因为用于表示它们的代码点因包含它们的字符串的CCSID而异。如果使用它们,可能会出现不可预测的结果。[……] [编辑附录2015年5月17日] 多民族语言环境中的命名规则
可在数据库名称中使用的基本字符集由单字节大写和小写拉丁字母(A…Z,A…Z)、阿拉伯数字(0…9)和下划线字符(389;)组成。
此列表增加了三个特殊字符(#、@和$),以提供与主机数据库产品的兼容性。在多民族语言环境中小心使用特殊字符#、@和$,因为它们不包括在多民族语言宿主(EBCDIC)不变字符集中。也可以使用扩展字符集中的字符,具体取决于所使用的代码页。如果在多代码页环境中使用数据库,则必须确保所有代码页都支持计划使用的扩展字符集中的任何元素。 [……]
[/Edit addendment 17May2015]“@”并没有任何特殊含义,它只是参数或变量名的有效字符之一。有些人使用“@”作为前缀来区分例程参数与局部变量或列名。感谢本附录,CRPence