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

华为GaussDB T 匿名块

墨天轮 2019-10-12
321

匿名块

功能描述

匿名块是可以直接运行的语句块,定义之后立即编译并执行。匿名块不会存储在数据库中,下次使用时需要重新定义。

注意事项

参数和表的列不能重名,因为匿名块以变量名优先,二者重名会导致列的值不可获取。

语法格式

DECLARE [param-list] BEGIN statement; END;

参数说明

  • param-list

    参数列表。可以指定参数的缺省值。格式为“variant_name data_type [ { := | DEFAULT } default_expr ];”。

  • statement

    匿名块语句,不允许为空,为空会报错。

    可以使用基本语句、动态语句、控制语句、异常语句、其他语句、函数或存储过程。基本语句详情请参见基本语句,动态语句详情请参见动态语句,控制语句详情请参见控制语句,其他语句详情请参见其他语句,自定义函数详情请参见自定义函数,自定义存储过程请参见创建存储过程。

示例

创建匿名块。

存储过程和函数存储在同一个系统表中,如果新创建的存储过程和已有自定义函数重名,将导致创建存储过程失败。因此,在创建存储过程之前,需要删除重名的自定义函数。

--删除重名的存储过程。 DROP PROCEDURE IF EXISTS Zenith_Test_004;
--删除重名的自定义函数。 DROP FUNCTION IF EXISTS Zenith_Test_004;

创建存储过程和匿名块时,最后的“/”符号用于标示存储过程定义语句的结束,不能省略,且必须单独成行。

--创建存储过程。 CREATE OR REPLACE PROCEDURE Zenith_Test_004(param1 OUT VARCHAR2) IS tmp VARCHAR(20):='12345678'; BEGIN param1:=param1||tmp; END Zenith_Test_004; /
--创建匿名块。 DECLARE v_char1 CHAR(9) :='A'; BEGIN Zenith_Test_004(v_char1); DBMS_OUTPUT.PUT_LINE('OUT PUT RESULT:'||v_char1); END; /
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论