Zeig' mal den Code drumrum. Ein SELECT-Statement ist ja noch keine Prozedur.
Wenn du einen Haufe Daten in der Tabelle ändern willst: Deklariere es als Cursor, schiebe die Daten in Collections und mache etwas damit. Danach kannst du die per BULK DML ziemlich fix zurückschreiben:
SQL-Code:
create or replace
procedure SenselessSample(pC
in varchar2)
is
cursor curTabl8(iC
in varchar2)
is
SELECT PK
,A
,B
FROM Table8
WHERE C = iC;
type IntTab
is table of integer;
type ShortChrTab
is table of varchar2(255);
type LongChrTab
is table of varchar2(2000);
lPK IntTab;
lA ShortChrTab;
lB LongChrTab;
i
integer;
begin
-- hole Daten
open curTabl8(pC);
fetch curTabl8
bulk collect
INTO lPK, lA, lB;
close curTabl8;
-- mache was damit
for i
in lPK.first ..
lPK.last loop
lA(i) := lA(i) || '
miep!';
lB(i) := lB(i) || '
' || lA(i);
end loop;
-- schiebe sie per BULK DML zurück
forall i
in lPK.first ..
lPK.last
UPDATE Table8 u
SET u.A = lA(i)
,u.B = lB(i)
WHERE PK =
lPK(i);
end;