Archive for the ‘Best practice’ Category

Temp tabele

Wednesday, July 2nd, 2008

Koliko puta mi se desilo da pokusam da izvrsim nesto ovako: SELECT * INTO #TempTAble FROM MyTable da bih dobio poruku Msg 2714, Level 16, State 6, Line 1 There is already an object named '#TempTable' in the database. Pokusaj da ordadim ovo: IF  Object_id('#TempTable') IS NOT NULL DROP #TempTable daje mi ovo: Msg 102 , Level ...

Korišćenje UDF funkcija u CHECK uslovima - rezervacija soba

Wednesday, March 5th, 2008

Pošto mi se mnogo dopalo korišćenje UDF funkcija u CHECK uslovima, pokušao sam da odgovorim na pitanje, koje se često sreće na forumima: rezervacija soba bez prebukiranja. Evo kako može da se reši: Kreiramo tabelu u koju se upisuju rezervacije soba u jednom hotelu. Tabela ima 3 kolone (Sobe, ZauzetoOD, ZauzetoDo) - Soba ...

Upotreba korisničkih funkcija u CHECK CONSTRAINTS

Wednesday, March 5th, 2008

MS SQL  2000 doneo je jednu lepu novinu - mogućnost pisanja korisničkih funkcija. Uz to je tiho došla još jedna novina, slabo dokumentovana,  iako se može naći u Boks On Line. Korisničke funkcije mogu se pozvati iz CHECK constraints. Funkcije ko funkcije, mogu da pozivaju redove iz posmatrane tabele, ali i ...

Recenzija: Expert Oracle Database Architecture

Tuesday, February 12th, 2008

Napokon sam ugrabio vremena da napišem neku novu recenziju, a ovaj put sam odabrao još jednu odličnu knjigu o Oracle bazi - "Expert Oracle Database Architecture", čiji autor je fenomenalni i svima poznat - Tom Kyte. Knjiga je namijenjena svima - kako programerima, tako i administratorima, bez obzira da li se radi o početnicima ili iskusnim znalcima. ...

Common Table Expressions i iterativni ciklusi

Monday, January 21st, 2008

Upotreba CTE i iterativni procesi Kako bismo u MS SQL ispisali prvih 50 celih brojeva tako da svaki broj bude u posebnom redu? 1 2 3 ... 50 Nešto ovako bi možda pomoglo: DECLARE @i int SET @i = 0 WHILE @i<=50 BEGIN  SET @I = @i + 1  SELECT @i AS i  CONTINUE END Nažalost, svaki SELECT se ...

Kloniranje/dupliciranje Oracle “ASM based” baze (How to duplicate Oracle “ASM based” database)

Thursday, December 13th, 2007

Pojavila se potreba da postojeću bazu klonirate, da biste mogli npr. izvršiti određene testove i provjeriti funkcionalnost novih programa. U ovom slučaju taj problem, odnosno zadatak, još kompleksnijim čini korištenje ASM (Automatic Storage Management), tako da postupak kloniranja baze nije jednostavan kao kod kloniranja baze sa datotekama na OS File-Systemu. Sad ...

Isti upit izražen na različite načine

Sunday, October 28th, 2007

Većina upita može da se napiše na različite načine.  C.J. Date je u online članku "Fifty Ways to Quote Your Query" prikazao listu od 52 načina da se iskaže jedan upit! Nije mi namera da se u ovome takmičim sa Date-om, već želim da prikažem nekoliko praktičnih i pravolinijskih metoda pomoću kojih se izvesna forma upita može zameniti adekvatnom (a efikasnijom) formom. Prikazaću dve ...

DUAL vs. FAST DUAL (_fast_dual_enabled)

Wednesday, October 17th, 2007

Ukoliko u izvornom kôdu često koristite DUAL tabelu, npr.  "SELECT sysdate FROM dual", interne funkcije USER, USERENV, SYS_CONTEXT ili pseudokolone (ROWID, LEVEL i td.), onda pogledajte, da li je podešen parametar "_fast_dual_enabled" i da li je postavljen na "true", jer u verziji 10g Oracle koristi poboljšani "access path" za operacije, ...

Spajanje podataka po zajednickom atributu

Tuesday, October 16th, 2007

Miša, jedan moj kolega s posla, je juče naišao na problem prilikom pravljenja nekog izveštaja. Za potrebe tog izveštaja mora da prikupi podatke iz četiri različita izvora, a onda da ih objedini u jedinstven izveštaj. Miša je napravio strukturu od četiri tabele, i u svaku od tabela je importovao podatke iz ...

Spajanje neprekidnih datumskih intervala

Tuesday, August 7th, 2007

Pre neki dan je Dado (kolega s posla) naišao na interesantan problem. Originalni problem se tiče generisanja M4 obrazca za zaposlene i treženja neprekidnog intervala u kome je osoba bila zaposlena. Postavka problema Problem se može abstrahovati na sledeći način: Neka imamo skup datumskih intervala . Interval ’I’ je određen početnim i krajnjim ...