create or replace procedure p_insert
(a varchar2(8))
as
begin
insert into table1 select * from table2 where "date"=a;
commit;
end;
上边是创建
执行时
begin
p_insert('20110101') ;
end;
说一下,你这个a和表2里的类型必须都一致,都要是字符型,如果不是的话,输入参数a不可以变,你可以在表2里用to_char函数将日期转成这个格式
还有你表2里的字段叫date,这个是关键字,所以加了双引号
不用存储过程那么麻烦的。。。
insert into table1 select* from table2 where date= &a;
执行的时候自动会跳出框让你填写a的值。。这里a是数值
如果a是字符或日期格式的的话那么改成
insert into table1 select* from table2 where date= '&a';
a integer;
b date;
另外 你的where语句不对 where date=a