create or replace procedure test
(unid int number,username  in varchar)
is
  ls_sql     varchar2(4000);
  v_unid number,
   v_username varchar2(4000);
beginv_unid:=unid;
v_username:=username;
droptable('sms_send_user_temp');
ls_sql:='  
insert into table_name(unid,username) values ('||v_unid||','||v_username||')';
 execute immediate ls_sql;
commit;
 end test;

解决方案 »

  1.   

    droptable('sms_send_user_temp');没用,刚才没删
      

  2.   

    如果要插入数据一个SQL就行了,为何需要存储过程?
    存储过程插入数据样例:
    CREATE OR REPLACE PROCEDURE insert_usersyan(unid      INT,
                                                username  VARCHAR2,
                                                userpass  VARCHAR2,
                                                uname     VARCHAR2,
                                                sex       VARCHAR2,
                                                company   VARCHAR2,
                                                dept      VARCHAR2,
                                                job       VARCHAR2,
                                                telephone VARCHAR2,
                                                email     VARCHAR2,
                                                MSN       VARCHAR2,
                                                QQ        VARCHAR2) IS
    BEGIN
      INSERT INTO usersyan
        (unid, username, userpass, uname, sex, company, dept, job, telephone, email, MSN, QQ)
      VALUES
        (i_unid,
         i_username,
         i_userpass,
         i_uname,
         i_sex,
         i_company,
         i_dept,
         i_job,
         i_telephone,
         i_email,
         i_MSN,
         i_QQ);
      COMMIT;
    EXCEPTION
      WHEN OTHERS THEN
        NULL;
    END;
      

  3.   

    个人觉得,如果只是单纯的往表里面插一条数据的话,直接用SQL简单点,如果是大批量往表里面插数据的话,可以用存储过程来控制批量提交(比如500条提交一次)。
      

  4.   

    因为我是在EXT中直接调用存储过程,我想把前台的值组织成字符串,传到后台,那我在存储过程中怎么做呢?值与值之间用|隔开,在存储过程中怎么分割字符串啊?