在 BEGIN..END 过程中声明变量时出现编译错误 PL/SQL
Compilation error when declaring variables in BEGIN..END procedure PL/SQL
我有一个编译错误,无法在程序 PL/SQL 中声明变量,该程序正在尝试其他来源的解决方案。谁能帮忙看看是什么问题?
CREATE OR REPLACE PROCEDURE add_vaccine
(p_id IN VARCHAR, d_id IN VARCHAR, p_vdate IN DATE, p_vaccinated IN VARCHAR)
AS
BEGIN
DECLARE counter NUMBER(MAX);
--Prompt user to input vaccination and visit detail
DBMS_OUTPUT.PUT_LINE('Patient ID = ' || p_id);
DBMS_OUTPUT.PUT_LINE('Doctor ID = ' || d_id);
DBMS_OUTPUT.PUT_LINE('Date = ' || p_vdate);
DBMS_OUTPUT.PUT_LINE('Vaccinated = ' || p_vaccinated);
END;
/
代码未完成,但我卡在了变量声明处。
因此在您的过程中的第一个 BEGIN 之前有一个隐含的 DECLARE
SQL> CREATE OR REPLACE PROCEDURE add_vaccine
2 (p_id IN VARCHAR, d_id IN VARCHAR, p_vdate IN DATE, p_vaccinated IN VARCHAR)
3 AS
4
5 counter NUMBER;
6 BEGIN
7 --Prompt user to input vaccination and visit detail
8 DBMS_OUTPUT.PUT_LINE('Patient ID = ' || p_id);
9 DBMS_OUTPUT.PUT_LINE('Doctor ID = ' || d_id);
10 DBMS_OUTPUT.PUT_LINE('Date = ' || p_vdate);
11 DBMS_OUTPUT.PUT_LINE('Vaccinated = ' || p_vaccinated);
12 END;
13 /
Procedure created.
只要有 DECLARE 部分,就必须有包含一些代码的 BEGIN 和 END。
如果不需要在里面声明,可以在AS之后声明。
CREATE OR REPLACE PROCEDURE STH()
AS
<DECLARE VARIABLES HERE>
BEGIN
DECLARE
<YOU CAN DECLARE HERE AS WELL>
BEGIN
DBMS_OUTPUT.PUT_LINE('HELLO');
END;
-- Do something here
END;
我有一个编译错误,无法在程序 PL/SQL 中声明变量,该程序正在尝试其他来源的解决方案。谁能帮忙看看是什么问题?
CREATE OR REPLACE PROCEDURE add_vaccine
(p_id IN VARCHAR, d_id IN VARCHAR, p_vdate IN DATE, p_vaccinated IN VARCHAR)
AS
BEGIN
DECLARE counter NUMBER(MAX);
--Prompt user to input vaccination and visit detail
DBMS_OUTPUT.PUT_LINE('Patient ID = ' || p_id);
DBMS_OUTPUT.PUT_LINE('Doctor ID = ' || d_id);
DBMS_OUTPUT.PUT_LINE('Date = ' || p_vdate);
DBMS_OUTPUT.PUT_LINE('Vaccinated = ' || p_vaccinated);
END;
/
代码未完成,但我卡在了变量声明处。
因此在您的过程中的第一个 BEGIN 之前有一个隐含的 DECLARE
SQL> CREATE OR REPLACE PROCEDURE add_vaccine
2 (p_id IN VARCHAR, d_id IN VARCHAR, p_vdate IN DATE, p_vaccinated IN VARCHAR)
3 AS
4
5 counter NUMBER;
6 BEGIN
7 --Prompt user to input vaccination and visit detail
8 DBMS_OUTPUT.PUT_LINE('Patient ID = ' || p_id);
9 DBMS_OUTPUT.PUT_LINE('Doctor ID = ' || d_id);
10 DBMS_OUTPUT.PUT_LINE('Date = ' || p_vdate);
11 DBMS_OUTPUT.PUT_LINE('Vaccinated = ' || p_vaccinated);
12 END;
13 /
Procedure created.
只要有 DECLARE 部分,就必须有包含一些代码的 BEGIN 和 END。
如果不需要在里面声明,可以在AS之后声明。
CREATE OR REPLACE PROCEDURE STH()
AS
<DECLARE VARIABLES HERE>
BEGIN
DECLARE
<YOU CAN DECLARE HERE AS WELL>
BEGIN
DBMS_OUTPUT.PUT_LINE('HELLO');
END;
-- Do something here
END;