匿名块是可以直接运行的语句块,定义之后立即编译并执行。匿名块不会存储在数据库中,下次使用时需要重新定义。
参数和表的列不能重名,因为匿名块以变量名优先,二者重名会导致列的值不可获取。
DECLARE
[param-list]
BEGIN
statement;
END;创建匿名块。
存储过程和函数存储在同一个系统表中,如果新创建的存储过程和已有自定义函数重名,将导致创建存储过程失败。因此,在创建存储过程之前,需要删除重名的自定义函数。
--删除重名的存储过程。
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/ ,如需转载,请注明出处,否则将追究法律责任。