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

通过谷歌搜索,我发现了以下DB2函数声明:

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