找本基础的写procedure的书看看呀

解决方案 »

  1.   

    很简单的
    create or replace procedure pinsert(value1 in string) 
    is
    begin
       insert into TableA values (value1);
       commit;
    end pinsert;
      

  2.   

    !如果那样插入,我还不如写一个insert的脚本来执行
      

  3.   

    创建一个包(p1)中声明:
    type t_cursor is ref cursor;然后创建你的过程:
    create or replace procedure dsf (c1 in out p1.t_cursor) as
    begin
    open c1 for select * from tbname;
    end;如果你想在过程之前得到结果集也可以,然后在传入到过程中
      

  4.   

    各位,我说的是传入一个数据集,不是一条记录,更不是单个的 string.
      

  5.   

    学习!不知道oracle有什么好的办法!
      

  6.   

    --创建过程
    create or replace procedure P_INSERT(
           pincMAKERCD    IN CHAR,              
           potcRETURN     OUT CHAR ) is
    begin
         BEGIN
           INSERT INTO TEMPA(KKKNO,MAKERCD)
           SELECT KKKNO,MAKERCD
           FROM TEMPB
           WHERE MAKERCD=pincMAKERCD;
           potcRETURN:='1';      
          END ;
          EXCEPTION
          WHEN OTHERS THEN
               potcRETURN:='0';    
    end P_INSERT;
    --调用过程 DECLARE 
     pincMAKERCD char(5):= '00012'; 
     potcRETURN char(1) ;
     
     BEGIN  
      P_INSERT(pincMAKERCD,potcRETURN); 
      DBMS_OUTPUT.PUT_LINE(potcRETURN); 
       
     END;
      

  7.   

    楼上所说的方法需要创建临时表,并不能,数据集首先需要一条一条的插入临时表中,所以本质上仍未达到我要的效果.嗯补充一点:我要在程序中(.NET)中调用这个procedure 并把数据集传给它,由它完成整个插入过程.