ptable是个传入参数,我通过ptable将多个表区分开来,这多个表结构都一样,只是表名不同,请问我这个存储过程如何修改,谢谢大家
CREATE OR REPLACE PROCEDURE SP_tbsendcard_ADD(
ptable varchar2,
PAGENTSID VARCHAR2 ,
PAGENTSCODE VARCHAR2 ,
PSENDCARDCOUNT VARCHAR2 ,
PSIMCARDTYPE VARCHAR2 ,
PSUMMATION VARCHAR2 ,
PSENDER VARCHAR2 
)as
beginINSERT INTO ptable_tbsendcard(
SENDCARDID,
AGENTSID,
AGENTSCODE,
SENDCARDCOUNT,
SIMCARDTYPE,
SUMMATION,
SENDER
)
VALUES(
SEQ_tbsendcard.NEXTVAL,
PAGENTSID,
PAGENTSCODE,
PSENDCARDCOUNT,
PSIMCARDTYPE,
PSUMMATION,
PSENDER
);
COMMIT;
END;

解决方案 »

  1.   

    看看这样行不?
    CREATE OR REPLACE PROCEDURE SP_tbsendcard_ADD(
    ptable varchar2,
    PAGENTSID VARCHAR2 ,
    PAGENTSCODE VARCHAR2 ,
    PSENDCARDCOUNT VARCHAR2 ,
    PSIMCARDTYPE VARCHAR2 ,
    PSUMMATION VARCHAR2 ,
    PSENDER VARCHAR2 
    )as
    v_sql      varchar2(8000);
    v_num      number(10);
    begin
    v_num := SEQ_tbsendcard.NEXTVAL;
    v_sql := 'INSERT INTO '||ptable||'SENDCARDID,AGENTSID,AGENTSCODE,SENDCARDCOUNT,SIMCARDTYPE,SUMMATION,SENDER) VALUES('||to_char(v_num)||','||''''||PAGENTSID||''''||','......--把剩余的值都拼到这个字符串中
    execute immediate v_sql;COMMIT;
    END;