--函数包头
create or replace package fun_package as
function insert_func(
model varchar2,
displacement number,
price number,
factoryyear date,
carid in varchar2
) return number;
end fun_package;
--函数包体
create or replace package body fun_package as
function insert_func(
model varchar2,
displacement number,
price number,
factoryyear date,
carid in varchar2
) return number is
begin
insert into store_car values(model,displacement,price,factoryyear,carid);
v_count:=sql%rowcount;
return v_count;
end insert_func;
end fun_package;
--测试
declare
v_count number;
begin
v_count:=fun_package.insert_func('MM',2.0,20000,'01-1月 01','豫AG3333');
dbms_output.put_line(v_count);
end;
在包中声明函数如何使用,不知道...这个出错了
--一般使用过程做
SQL> create table t(col_1 number(10),col_2 date,col_3 varchar2(10));
Table created
SQL> create or replace package pkg_data as
2 procedure pro_insert(
3 v1 in t.col_1%type,v2 in t.col_2%type,v3 in t.col_3%type);--这里使用变量类型的栓钉
4 end pkg_data;
5 /Package created
SQL> create or replace package body pkg_data as
2 procedure pro_insert(
3 v1 in t.col_1%type,v2 in t.col_2%type,v3 in t.col_3%type)
4 as
5 begin
6 insert into t(col_1,col_2,col_3) values(v1,v2,v3);
7 dbms_output.put_line('添加了 '||sql%rowcount||' 条数据');--使用隐式游标
8 end pro_insert;
9 end pkg_data;
10 /Package body created
SQL> alter table t modify col_3 varchar2(20 char);
--当你该动数据类型的时候,procedure里面的参数会自动的修改
Table altered
SQL> exec pkg_data.pro_insert(10086,to_date('2011-07-04','yyyy-mm-dd'),'充了50元话费');
添加了 1 条数据
PL/SQL procedure successfully completed
SQL> SQL> select * from t;
COL_1 COL_2 COL_3
----------- ----------- ----------------------------------------
10086 2011-07-04 充了50元话费
这个加个to_date转换一下吧!