存储过程要疯了,该怎么解决

存储过程要疯了大神求解啊!存储过程[解决办法]你在 sql里面输入add_emp然后右键点test然后在下面输入 传入

存储过程要疯了

大神求解啊! 存储过程
[解决办法]
你在 sql里面输入  add_emp  然后右键点test



然后在下面输入 传入的参数   执行下试试  


[解决办法]
因为你这个错是说你执行的传入参数和 pkg定义的不一致 

你看看再编译下你的 PKG    让后在按我说的操作去做一下
这样他在下面会显示出  你这个方法的参数的  还有类型你可以再看看对不对
[解决办法]
大哥,原因很简单,你难道没发现下面的p_id后面少了个逗号么???为什么这么简单的原因大家都没看出来!?


[解决办法]

倒~这是最简单的过程,相信学过SQL的人都知道INSERT语句怎么写吧,只不过有的时候总会犯些不经意的错
[解决办法]
p_id后面逗号加上,再把end后面add_dept去掉,或者改成add_emp
CREATE OR REPLACE PROCEDURE add_emp 
     (p_id    IN emp_info.emp_id%TYPE DEFAULT '1',
     p_name  IN emp_info.emp_name%TYPE DEFAULT 'unknown',
     p_tel   IN emp_info.emp_tel%TYPE DEFAULT '1',
     p_limit IN emp_info.emp_limit%TYPE DEFAULT 1) 
IS 
BEGIN 
    INSERT INTO emp_info(emp_id, 
               emp_name, emp_tel, emp_limit) 
    VALUES (p_id,p_name, p_tel, p_limit); 
END; 

[解决办法]
引用:
p_id后面逗号加上,再把end后面add_dept去掉,或者改成add_emp
CREATE OR REPLACE PROCEDURE add_emp 
     (p_id    IN emp_info.emp_id%TYPE DEFAULT '1',
     p_name  IN emp_info.emp_name%TYPE DEFAULT 'unknown',


     p_tel   IN emp_info.emp_tel%TYPE DEFAULT '1',
     p_limit IN emp_info.emp_limit%TYPE DEFAULT 1) 
IS 
BEGIN 
    INSERT INTO emp_info(emp_id, 
               emp_name, emp_tel, emp_limit) 
    VALUES (p_id,p_name, p_tel, p_limit); 
END; 


我擦,没想到LZ这也会写错,自杀~~另外,别忘了加COMMIT提交!
[解决办法]
自己学会通过架构来编写会更容易些!
[解决办法]
引用:
大哥,原因很简单,你难道没发现下面的p_id后面少了个逗号么???为什么这么简单的原因大家都没看出来!?
VALUES (p_id p_name, p_tel, p_limit); 

真是的,问题在这里的
[解决办法]
create table emp_info
(
       emp_id   varchar2(10) primary key,
       emp_name varchar2(40),
       emp_tel  varchar2(10),
       emp_limit  number
);

CREATE OR REPLACE PROCEDURE add_emp 
(    p_id    IN emp_info.emp_id%TYPE DEFAULT '1',
     p_name  IN emp_info.emp_name%TYPE DEFAULT 'unknown',
     p_tel   IN emp_info.emp_tel%TYPE DEFAULT '1',
     p_limit IN emp_info.emp_limit%TYPE DEFAULT 1) 
  IS 
  BEGIN 
    INSERT INTO emp_info(emp_id, emp_name, emp_tel, emp_limit) 
    VALUES (p_id, p_name, p_tel, p_limit); 
END ;

这样应该是可以的,已经测试过了!
[解决办法]
引用:
create table emp_info
(
       emp_id   varchar2(10) primary key,
       emp_name varchar2(40),
       emp_tel  varchar2(10),
       emp_limit  number
);

CREATE OR REPLACE PROCEDURE add_emp 


(    p_id    IN emp_info.emp_id%TYPE DEFAULT '1',
     p_name  IN emp_info.emp_name%TYPE DEFAULT 'unknown',
     p_tel   IN emp_info.emp_tel%TYPE DEFAULT '1',
     p_limit IN emp_info.emp_limit%TYPE DEFAULT 1) 
  IS 
  BEGIN 
    INSERT INTO emp_info(emp_id, emp_name, emp_tel, emp_limit) 
    VALUES (p_id, p_name, p_tel, p_limit); 
END ;

这样应该是可以的,已经测试过了!


LZ啊,千万别忘了加COMMIT提交!!!!不然等于没插入数据