Avatar billede xezbeth Nybegynder
05. september 2008 - 15:52 Der 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;

  end loop;
  commit;
end;
/
Avatar billede steber Nybegynder
06. september 2008 - 08:05 #1
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.
Avatar billede xezbeth Nybegynder
08. september 2008 - 08:55 #2
ok, så man også lave det på den måde, ja den er mere simple :) og til at forstå
mange tak for hjælpen
vil du svare så du kan få points
Avatar billede steber Nybegynder
08. september 2008 - 19:03 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester