2016-06-01 9 views
2

ich nicht von Einsätzen zählen will ich in die Datenbank machenOracle Wie Gesamtzahl der Zeilen in einem plsql Block eingefügt zählen

Die folgende Abfrage gibt eine (1), obwohl zwei Reihen Update haben

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; 

Antwort

4
dbms_output.put_line('No Of rows'||sql%Rowcount); 

Dies gibt Ihnen die Gesamtzahl der Zeilen aktualisiert von letzten Anweisung. Selbst wenn Sie 10 Insert-Anweisungen auf diese Weise haben, erhalten Sie immer 1 als sql%rowcount.

Verwenden Sie entweder 2 Ausgabenanweisungen, jeweils eine nach insert Anweisungen, oder verwenden Sie eine Variable und fügen Sie die Anzahl der Zeilen hinzu, die aktualisiert wurden, und zeigen Sie sie schließlich an.

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; 

ODER Wenn Sie Daten auf derselben Tabelle einfügen, verwenden, um eine kombinierte insert Anweisung wie folgt. Dies wird 2 Zeilen zurückgeben.

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; 
+0

@arjun - Danke für die vorgeschlagene Bearbeitung. – Utsav

+0

Danke - mein Netzwerk war ausgefallen, daher habe ich lange gebraucht um zu antworten –

+0

Kein Problem. Akzeptieren Sie auch die Antworten auf die zuvor gestellte Frage, falls Sie dies noch nicht getan haben. Falls nicht richtig beantwortet wurde, bitte die Antwort so kommentieren, dass sie betrachtet werden kann. Vielen Dank! – Utsav

Verwandte Themen