create or replace procedure sp_test(name in varchar2) as begin insert into ts.mytest values(seq_id.nextval,name); commit; exception when others then rollback; end; /
刚才试过了,没有问题的,看下面的, SQL> r 1* create table mytest(id number(10),name varchar2(100))表已创建SQL> r 1 create sequence seq_id 2 increment by 1 3 start with 1 4* nomaxvalue序列已创建SQL> r 1 create procedure sp_test(name in varchar2) 2 as 3 begin 4 insert into mytest values(seq_id.nextval,name); 5* end; 过程已创建SQL> exec sp_test('zhaokeke2004');PL/SQL 过程已成功完成SQL> select * 2 from mytest; ID ---------- NAME -------------------------------------------------------------------------------- 1 zhaokeke2004
可能是那里你不小心写错了,你可以用show error或者select * from user_erros来看
这样我试过,编译是能够通过,但是我在程序中去调用这个存储过程的时候就会出现问题,不知是何原因
as
begin
insert into ts.mytest values(seq_id.nextval,name);
commit;
exception
when others then
rollback;
end;
/
SQL> r
1* create table mytest(id number(10),name varchar2(100))表已创建SQL> r
1 create sequence seq_id
2 increment by 1
3 start with 1
4* nomaxvalue序列已创建SQL> r
1 create procedure sp_test(name in varchar2)
2 as
3 begin
4 insert into mytest values(seq_id.nextval,name);
5* end;
过程已创建SQL> exec sp_test('zhaokeke2004');PL/SQL 过程已成功完成SQL> select *
2 from mytest; ID
----------
NAME
--------------------------------------------------------------------------------
1
zhaokeke2004