/*创建一个表*/
create table emp (emp_id number (5),emp_name varchar2(20), emp_salary number(4) )
/*创建一个存储过程*/
create or replace procedure ins_table_emp(p_emp_id number,p_emp_name varchar2,p_emp_salary number)as
v_emp_id number:=p_emp_id;
v_emp_name varchar2(20):=p_emp_name;
v_emp_salary number:=p_emp_salary;
begin
   insert into emp values (v_emp_id,v_emp_name,v_emp_salary);
   end ins_table_emp;
/*插入数据*/
BEGIN
 ins_table_emp(10000,'tian2',1200); 
 ins_table_emp(10001,'wang2',2300);
 ins_table_emp(10002,'zhao3',3500);
 ins_table_emp(10003,'wu1',3500);
 ins_table_emp(10004,'feng2',3500); 
END;
----------------------------------------------------------------------
问题,插入时不停的报错,但是怎么看都没有问题。
请教~

解决方案 »

  1.   

    BEGIN
     ins_table_emp(10000,'tian2',1200);  
     ins_table_emp(10001,'wang2',2300);
     ins_table_emp(10002,'zhao3',3500);
     ins_table_emp(10003,'wu1',3500);
     ins_table_emp(10004,'feng2',3500);  
    END;这个是在啥里面执行的??你的procedure  写好后 编译了么?
      

  2.   

    编译好了,重新刷了几次编译。
    然后在“命令”里面
    已连接到 Oracle Database 11g Express Edition Release 11.2.0.2.0 
    已连接为 scott
    SQL> 
    SQL> BEGIN
      2   ins_table_emp(10000,'tian2',1200);
      3   ins_table_emp(10001,'wang2',2300);
      4   ins_table_emp(10002,'zhao3',3500);
      5   ins_table_emp(10003,'wu1',3500);
      6   ins_table_emp(10004,'feng2',3500);
      7  END;
      8  /BEGIN
     ins_table_emp(10000,'tian2',1200);
     ins_table_emp(10001,'wang2',2300);
     ins_table_emp(10002,'zhao3',3500);
     ins_table_emp(10003,'wu1',3500);
     ins_table_emp(10004,'feng2',3500);
    END;ORA-06550: line 2, column 3:
    PLS-00103: Encountered the symbol "" when expecting one of the following:   ( begin case declare exit for goto if loop mod null pragma
       raise return select update while with <an identifier>
       <a double-quoted delimited-identifier> <a bind variable> <<
       continue close current delete fetch lock insert open rollback
       savepoint set sql execute commit forall merge pipe purge
    The symbol "" was ignored.
    ORA-06550: line 3, column 3:
    PLS-00103: Encountered the symbol "" when expecting one of the following:   ( begin case declare end exception exit for goto if loop mod
       null pragma raise return select update while with
       <an identifier> <a double-quoted delimited-i
    ORA-06550: line 4, column 3:
    PLS-00103: Encountered the symbol "" when expecting one of the following:   ( begin case declare end exception exit for goto if loop mod
       null pragma raise return select update while with
       <an identifier> <a double-quoted delimited-i
    ORA-06550: line 5, column 3:
    PLS-00103: EncountSQL> 
      

  3.   


    BEGIN
     p_ins_table_emp( p_emp_id => 10000,
                      p_emp_name => 'tian2',
                      p_emp_salary => 1200);
    END;
      

  4.   

    BEGIN
       ins_table_emp(10000,'tian2',1200);
     ins_table_emp(10001,'wang2',2300);
     ins_table_emp(10002,'zhao3',3500);
     ins_table_emp(10003,'wu1',3500);
     ins_table_emp(10004,'feng2',3500);
    END;这个存储过程执行的有问题,
    不能这么执行存储过程的
      

  5.   

    过程里要加commit 
    另外你这个过程有什么意义? 不就是一个Insert 吗
      

  6.   


    BEGIN
     ins_table_emp(10000,'tian2',1200);  
     ins_table_emp(10001,'wang2',2300);
     ins_table_emp(10002,'zhao3',3500);
     ins_table_emp(10003,'wu1',3500);
     ins_table_emp(10004,'feng2',3500);  
    END;--你的存储过程名称前面有全角空格,去掉再执行。
      

  7.   

    其实insert 只是一个开始,但开始就出现问题了