如果声明一个变量与关键字或例程的名称相同,可能会出现歧义。
GBase 8s
使用以下规则来解析 SPL 变量、UDR 名称和内置 SQL 函数名称之间的名称冲突。
- 在 DEFINE 语句中声明的变量名采用最高优先级。
- 在 CREATE PROCEDURE 或 CREATE FUNCTION 语句中定义的用户定义例程优先于内置 SQL 函数。
- 在 DEFINE 语句中使用 PROCEDURE 关键字声明的过程优先于内置 SQL 函数。
- 内置 SQL 函数优先于数据库中存在的 SQL 过程,但在 DEFINE 语句中未显式标识为过程。
如果您需要调用 SQL 函数,请不要使用内置 SQL 函数的名称作为 SPL 变量。 例如,如果您还需要调用这些聚集函数,则不要声明名称为
count 或
max 的变量。