我正在尝试使用oracle创建包,虽然我已经在docs oracle中阅读了许多示例并且在本教程中构建了相同的代码,但我仍然对此进行了错误 . 以下代码:
create table manage_emplyee
(
f_name varchar(20),
l_name varchar(20)
);
// Specification
create or replace package fn2
as
procedure manage_emplyee(v_fname in VARCHAR2, v_lname in VARCHAR2);
procedure manage_emplyee_delete(v_fname in VARCHAR2);
end;
/
create or replace package body fn2
as
--Procedure Implementation
procedure manage_emplyee(v_fname in VARCHAR2, v_lname in VARCHAR2)
is
begin
insert into manage_emplyee VALUES (v_lname, v_lname);
end manage_emplyee;
// body
procedure manage_emplyee_delete (v_fname in VARCHAR2)
is
begin
delete manage_emplyee where v_fname = v_fname;
end manage_emplyee_delete;
end fn2;
/
错误
PLS-00103:遇到以下其中一项时遇到符号“文件结束”:开始结束函数编译指示程序
请帮我解决,非常感谢!
1 回答
有很多不正确的东西,所以这是一个正确的版本 .
首先运行表脚本 -
之后运行Spec脚本
之后运行body脚本
从table_name删除的语法不正确 .
我确定,您希望将表中的f_name与输入变量中的v_fname匹配以删除数据 . 之前您在代码中将v_fname与v_fname匹配,这将始终为true(除非它传递NULL)并且最终会丢失所有测试数据
*注意 - 不需要显式添加
IN
,PLSQL过程中的参数的默认类型是IN