PL/SQL 程序调用
PL/SQL call to procedure
我写了一个 PL/SQL 程序来更新 table 员工的薪水
create table Employee
(ID VARCHAR2(4 BYTE) NOT NULL,
First_Name VARCHAR2(10 BYTE),
Last_Name VARCHAR2(10 BYTE),
Start_Date DATE,
End_Date DATE,
Salary Number(8,2),
City VARCHAR2(10 BYTE),
Description VARCHAR2(15 BYTE)
)
/
这是程序
CREATE OR REPLACE PROCEDURE update_employee_salary(
p_factor IN NUMBER
) AS
v_employee_count INTEGER;
BEGIN
UPDATE employee
SET salary = salary * p_factor;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END update_employee_salary;
/
当我尝试调用过程时
CALL update_employee_salary (1.5)
oracle 显示 ORA-00900: invalid SQL statement
这是错误的调用方式procedure
。您可以使用以下方法:
Begin
update_employee_salary(1.5);
End;
在此处阅读更多内容:PL/SQL Procedure
你也可以这样执行,在SQL*PLUS 和SQL-Developer:
EXEC update_employee_salary(1.5)
您可以像以前一样使用 CALL 调用过程。不工作的原因可能与之前的 sql 语句没有用 ; 结束有关。此外还有一条建议:您不应像以前那样使用 oracle/plsql 保留字作为 table 列名称(id 是保留字)。
我写了一个 PL/SQL 程序来更新 table 员工的薪水
create table Employee
(ID VARCHAR2(4 BYTE) NOT NULL,
First_Name VARCHAR2(10 BYTE),
Last_Name VARCHAR2(10 BYTE),
Start_Date DATE,
End_Date DATE,
Salary Number(8,2),
City VARCHAR2(10 BYTE),
Description VARCHAR2(15 BYTE)
)
/
这是程序
CREATE OR REPLACE PROCEDURE update_employee_salary(
p_factor IN NUMBER
) AS
v_employee_count INTEGER;
BEGIN
UPDATE employee
SET salary = salary * p_factor;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END update_employee_salary;
/
当我尝试调用过程时
CALL update_employee_salary (1.5)
oracle 显示 ORA-00900: invalid SQL statement
这是错误的调用方式procedure
。您可以使用以下方法:
Begin
update_employee_salary(1.5);
End;
在此处阅读更多内容:PL/SQL Procedure
你也可以这样执行,在SQL*PLUS 和SQL-Developer:
EXEC update_employee_salary(1.5)
您可以像以前一样使用 CALL 调用过程。不工作的原因可能与之前的 sql 语句没有用 ; 结束有关。此外还有一条建议:您不应像以前那样使用 oracle/plsql 保留字作为 table 列名称(id 是保留字)。