05. september 2008 - 15:52Der er
2 kommentarer og 1 løsning
Sql update script i Oracle
Hej Er der nogen der kan fortælle mig om dette script er korrekt når man skal update i en tabel?
declare i number := 0; cursor s1 is SELECT rowid, t.* FROM Product t WHERE PRO_GROUP = '299'; begin for c1 in s1 loop update Product set PRO_GROUP = '999' where rowid = c1.rowid;
i := i + 1; if i > 10000 then commit; i := 0; end if;
Du kan jo også skrive det som en ren SQL - det er meget lettere at læse og forstå: UPDATE product SET pro_group = '999' WHERE pro_group = '299'; COMMIT;
Men hvis du gør mere i scriptet end du viser her kan der jo være en god grund til at køre det som script. Der er muligvis noget jeg overser, men hvis dit script ellers ikke giver kompileringsfejl så ændrer den alle pro_group 299 rækker til 999, - så hvis det er det du vil så er det vel korrekt. Hvis man opdaterer MANGE rækker på denne måde kan det være nødvendigt at COMMIT'e ind imellem.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.