CREATE OR REPLACE FUNCTION my_func(str IN NVARCHAR2)
RETURN NUMBER IS ret_val NUMBER(9);
DECLARE new_str NVARCHAR2(1000);
BEGIN
....
这会产生encauntered symbol "declare" ....
如果删除“DECLARE”,则编译成功。
你能否告诉我为什么不需要使用DECLARE
字?
当需要声明变量时,在BEGIN
语句必须这样之前,对吗?
DECLARE
variable_1 type;
variable_2 type;
BEGIN
.....
我哪里错了?
答案 0 :(得分:3)
匿名PL / SQL块由关键字DECLARE,BEGIN,EXCEPTION和END定义。
DECLARE
l_message VARCHAR2 (100) := 'Hello';
BEGIN
DBMS_OUTPUT.put_line (l_message);
END;
一个命名的PL / SQL块,如函数,过程或包,不需要DECLARE关键字:
CREATE OR REPLACE PROCEDURE p_hello
IS
l_message VARCHAR2 (100) := 'Hello';
BEGIN
DBMS_OUTPUT.put_line (l_message);
END p_hello;