本帖最后由 tayanxunhua 于 2013-08-15 22:53:58 编辑

解决方案 »

  1.   

    你在 sql里面输入  add_emp  然后右键点test然后在下面输入 传入的参数   执行下试试  
      

  2.   

    因为你这个错是说你执行的传入参数和 pkg定义的不一致 你看看再编译下你的 PKG    让后在按我说的操作去做一下
    这样他在下面会显示出  你这个方法的参数的  还有类型你可以再看看对不对
      

  3.   

    哦了
    CREATE OR REPLACE PROCEDURE add_emp(p_id    VARCHAR2,
                                        p_name  VARCHAR2,
                                        p_tel   VARCHAR2,
                                        p_limit NUMBER) IS
    BEGIN
      INSERT INTO emp_info
        (emp_id,
         emp_name,
         emp_tel,
         emp_limit)
      VALUES
        (p_id,
         p_name,
         p_tel,
         p_limit);
    END;
    /-- Created on 2013/8/15 by HAND 
    declare 
      -- Local variables here
      i integer;
    begin
      -- Test statements here
      BEGIN                                                        --使用默认值 
        add_emp ('111', '111', '1', 1);                                  --按顺序传递  
      END;end;
      

  4.   

    大哥,原因很简单,你难道没发现下面的p_id后面少了个逗号么???为什么这么简单的原因大家都没看出来!?VALUES (p_id p_name, p_tel, p_limit); 
      

  5.   

    倒~这是最简单的过程,相信学过SQL的人都知道INSERT语句怎么写吧,只不过有的时候总会犯些不经意的错
      

  6.   

    倒~这是最简单的过程,相信学过SQL的人都知道INSERT语句怎么写吧,只不过有的时候总会犯些不经意的错
    把逗号","加上就成功了?还是不行啊
      

  7.   

    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; 
      

  8.   

    我擦,没想到LZ这也会写错,自杀~~另外,别忘了加COMMIT提交!
      

  9.   

    我擦,没想到LZ这也会写错,自杀~~另外,别忘了加COMMIT提交!
    如果将这两个错误改了之后,您测试过吗?我测试过还是不可以
      

  10.   

    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 ;这样应该是可以的,已经测试过了!
      

  11.   

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