Piotr
K.
QA / Test Engineer
at Luxoft / UBS
Temat: Oracle mass UPDATE
Witam,Czasami potrzebuje zrobic masowy UPDATE na pojedynczych rekordach w bazie, i zastanawiam sie jakie byloby najszybsze i najefektywniejsze podejscie / rozwiazanie do takiego problemu:
Zawsze mam podane 'userid' (identyfikator) oraz pole ktore trzeba zaktualizowac np. 'companyname'. Zalozmy, ze pole ktore trzeba uaktualnic jest dla kazdego rekordu inne.
x1 c1
x2 c2
. .
. .
. .
xn cn
Dane ktore trzeba zaktualizowac mam w pliku (xls), ktory zalozmy ze moge wyfiltrowac zeby zawieralo tylko dwie interesujace mnie kolumny: 'userid' oraz 'companyname' i poddac jakiejs dalszej obrobce.
Pojedyncze zapytanie mogloby wygladac np. tak:
UPDATE (SELECT companyname, timestamp FROM userdata WHERE userid = 'x1')
SET companyname = 'c1', timestamp = CURRENT_TIMESTAMP;
Uzywam SQL Developera do laczenia sie z baza i manipulowania danymi. Może znacie jakieś ciekawe narzedzia do automatycznego generowania "batchów" na podstawie podanych regul, wyjatkow, etc. Ogolnie jestem ciekaw jak podchodzicie do tego typu "taskow" (pierwsza myśl to napisanie programu w PL/SQL i w petli ladowac dane z pliku lub cos w tym stylu).
Piotrek