programing

Oracle plsql 블록에 삽입된 총 행 수를 세는 방법

powerit 2023. 10. 5. 23:37
반응형

Oracle plsql 블록에 삽입된 총 행 수를 세는 방법

데이터베이스에 삽입할 수 있는 개수를 세고 싶습니다.

아래 쿼리는 2개의 행이 업데이트되었음에도 불구하고 1개를 반환합니다.

begin 
   Insert into APPLICATIONS (ID,ALIAS,NAME,STATUS) 
        values (1000000386,'BB','Branch Budgets','I'));
   Insert into APPLICATIONS (ID,ALIAS,NAME,STATUS) 
        values (1000000257,'TIME','Timesheets','I'));
   dbms_output.put_line('No Of rows'||sql%Rowcount);
 end;
dbms_output.put_line('No Of rows'||sql%Rowcount);

이렇게 하면 마지막 문장으로 업데이트된 총 행 수를 알 수 있습니다.그래서 이런 식으로 삽입문이 10개 있어도 항상 다음과 같은 것을 얻을 수 있습니다.1~하듯이sql%rowcount.

다음에 하나씩 두 개의 출력 문을 사용합니다.insert문을 사용하거나 변수를 사용하여 업데이트된 행 수를 추가한 다음 마지막으로 표시합니다.

declare
    v_count integer;
    begin 
        v_count:=0;
       Insert into APPLICATIONS (ID,ALIAS,NAME,STATUS) 
            values (1000000386,'BB','Branch Budgets','I');
        v_count:=   sql%Rowcount;
       Insert into APPLICATIONS (ID,ALIAS,NAME,STATUS) 
            values (1000000257,'TIME','Timesheets','I');
        v_count:= v_count+ sql%Rowcount;
       dbms_output.put_line('No Of rows '||v_count);
     commit;
     end;

또는 동일한 테이블에 데이터를 삽입하는 경우에는 다음을 조합하여insert이런 식의 진술.이렇게 하면 2행이 반환됩니다.

begin    
    INSERT ALL 
        into  APPLICATIONS (ID,ALIAS,NAME,STATUS) 
             values (1000000386,'BB','Branch Budgets','I')
        into  APPLICATIONS (ID,ALIAS,NAME,STATUS) 
             values (1000000257,'TIME','Timesheets','I')
    SELECT * FROM dual;         
    dbms_output.put_line('No Of rows '||sql%Rowcount);
    commit;
    end;

언급URL : https://stackoverflow.com/questions/37563557/oracle-how-to-count-total-number-of-rows-inserted-in-a-plsql-block

반응형