ITPub博客

首页 > 数据库 > > 入门介绍-匿名块

入门介绍-匿名块

作者:GaussDB_数据库 时间:2020-02-21 10:23:43 0 删除 编辑

功能描述

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

注意事项

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

语法格式

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;/


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3122706/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19245