banjalukaforum.com

Dobrodošli na banjalukaforum.com
Danas je 11 Maj 2024, 11:23

Sva vremena su u UTC [ DST ]




Započni novu temu Odgovori na temu  [ 94 Posta ]  Idi na stranicu Prethodni  1, 2, 3, 4, 5  Sledeća
Autoru Poruka
 Tema posta: Re: Oracle kod nas?
PostPoslato: 29 Maj 2012, 08:39 
OffLine
Samo jedan iznad mene
Samo jedan iznad mene
Korisnikov avatar

Pridružio se: 29 Mar 2005, 18:06
Postovi: 36400
Ti nisi normalan. Cuj kako zivjeti?


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 29 Maj 2012, 08:41 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 05 Jun 2002, 08:33
Postovi: 10481
Lokacija: Banja Luka
ok, mozda imam manjak podataka, kolika je potrosacka korpa u AUT?

_________________
Batmobil ti inace ima 5.7 litarski chevroletov V8 motor, koji ti ima ubrzanje do 100 za 5 sekundi. Ako uzmes u obzir da batmobil tezi preko dvije tone,to ti je zbilja fenomenalno. Al` dobro,dosta o mom autu, pricajmo malo o meni!


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 29 Maj 2012, 08:44 
OffLine
Samo jedan iznad mene
Samo jedan iznad mene
Korisnikov avatar

Pridružio se: 29 Mar 2005, 18:06
Postovi: 36400
Pojma nemam.


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 29 Maj 2012, 09:38 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 22 Maj 2003, 18:55
Postovi: 4706
:D

_________________
http://www.codebluestudio.com


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 31 Maj 2012, 21:11 
OffLine
Stara kuka
Stara kuka

Pridružio se: 06 Jan 2003, 01:19
Postovi: 4072
Jeftinija nego kod nas...


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 04 Feb 2013, 17:56 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 06 Apr 2003, 12:32
Postovi: 5310
Lokacija: HEAVEN
Imam pitanjce za poznavaoce Oraclea (ako neko ima takav)... Problem se javlja kod to_date funkcije, gdje prilikom odradjivanja te funkcije, vraca pogresan datum... Npr:

to_date('31.12.2199','dd.mm.yyyy') vraca 31.12.1999 godine...

S druge strane, ukoliko se stavi 31.12.2049, vraca dobro... Skontao sam da je 2199 tacno 3 puta veca po numberu od 1999, tj 1 dan razlike (109574 i 36525)... Ali jos uvijek ne kontam zasto nece da napise 2199 kao datum... Export se radi u excel tabelu...

_________________
Slika


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 04 Feb 2013, 23:12 
OffLine
Veteran
Veteran
Korisnikov avatar

Pridružio se: 08 Okt 2003, 12:10
Postovi: 2552
Lokacija: Banja Luka
Nemam blage veze o programiranju, o Oracle-u još manje, ali kad si naveo datume palo mi je na pamet ovo:

Slika

Da te možda ta sistemska podešavanja ne zezaju?

_________________
dejo the best - professional


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 05 Feb 2013, 06:10 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 06 Apr 2003, 12:32
Postovi: 5310
Lokacija: HEAVEN
E moguce da je do toga, posto u punom kodu (ne znam tacno kako ide), ima sysdate funkcija, pa mozda zbog tog ne moze... Ali opet ne kontam kako radi za 2049, a 2199 vraca na 1999 :)

_________________
Slika


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 05 Feb 2013, 21:00 
OffLine
Veteran
Veteran

Pridružio se: 01 Jul 2004, 11:47
Postovi: 2597
koristi RRRR umjesto YYYY, znaci to_date('31.12.2199','DD.MM.RRRR')

_________________
Sve sto sam napisao, slucajno je namjerno ...


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 20 Jun 2013, 18:32 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 06 Apr 2003, 12:32
Postovi: 5310
Lokacija: HEAVEN
E ovako, imam jos jedno pitanje, vezano za CASE WHEN...

Naime, recimo da je rijec u preduzecu koje ima tri kontakt osobe u zavisnosti od proizvoda koje prodaje... Kontakt osoba 1 (nosilac) je, recimo direktor... Kontakt osoba 2 (zamjenik), je recimo zamjenik direktora... Kontakt osoba 3 je default osoba, recimo sekretarica...

Obrada koja se popusta trebala bi raditi sljedecu stvar: ako je popunjeno polje kontakt osobe 1, da puni sa tim unosom, ako nije, da provjeri da li je kontakt osoba 2 unesena, ako jeste da puni sa tim, a ako nije nijedna kontakt osoba unesena, onda da stavi defaultnu vrijednost, tj sekretaricu... Kod koji imam ne radi, a ide ovako:

(CASE WHEN <<KONTAKT.OSOBA.1>>IS NOT NULL
THEN <<KONTAKT.OSOBA.1>>
ELSE NVL(<<KONTAKT.OSOBA.2>>, 'KONTAKT OSOBA 3')
END)

E sad, ovo vraca djelimicno dobar rezultat... Za situaciju gdje nema kontakt osobe 2, on puni sa default vrijednoscu (takoreci, preskace prvi uslov, a to je da postoji kontakt osoba 1), ali ako je popunjena i kontakt osoba 1 i 2, onda puni sa kontakt osobom 1... Kontakt osoba 2 se ne pojavljuje...

Kontam da zamjenim sa ovim kodom:

(CASE WHEN <<KONTAKT.OSOBA.1>>IS NOT NULL
THEN <<KONTAKT.OSOBA.1>>
WHEN <<KONTAKT.OSOBA.2>>IS NOT NULL
THEN <<KONTAKT.OSOBA.2>>
ELSE 'KONTAKT OSOBA 3'
END)

Medjutim, nisam siguran da li ce raditi, ali mi je ovaj kod najlogicniji... Problem je u tome sto sam probao samo sa:

(CASE WHEN <<KONTAKT.OSOBA.1>>IS NOT NULL
THEN <<KONTAKT.OSOBA.1>>
ELSE 'KONTAKT OSOBA 3'
END)

i on upisuje samo kontakt osobu 3, na sve unose.. Ne kontam zasto... A ako dodam jos jedan WHEN-THEN uslov, tek onda kontam da nece raditi :D Pa ako neko skonta u cemu grijesim...

_________________
Slika


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 20 Jun 2013, 19:13 
OffLine
Veteran
Veteran

Pridružio se: 01 Jul 2004, 11:47
Postovi: 2597
Komplikujes previse :) Bas takvo komplikovanje sam opisao u jednom od postova na blogu: http://www.baze-podataka.net/2012/10/24 ... -for-null/

Dakle, kada kreiras tabelu i postoji zahtjev da kolona sadrzi neku defaultnu vrijednost (ukoliko se ne proslijedi nista za tu kolonu), onda definisi DEFAULT vrijednost za tu kolonu:

Kod:
CREATE TABLE t1(
blabla number,
kontakt_osoba VARCHAR2(64) NOT NULL DEFAULT 'Sekretarica',
dummy number);


Ukoliko zelis u aplikaciji checkirati te vrijednosti, onda u tvom slucaju koristi COALESCE:
Kod:
INSERT INTO t1(blabla, kontakt_osoba, dummy)
VALUES('test', COALESCE(param1, param2, param3), 111);


Dakle, prvu vrijednost, koja nije NULL unosis u tabelu.


Nisi rekao, da li ti je gorenj rjesenje sa RRRR pomoglo u vezi formata datuma?

_________________
Sve sto sam napisao, slucajno je namjerno ...


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 20 Jun 2013, 20:17 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 06 Apr 2003, 12:32
Postovi: 5310
Lokacija: HEAVEN
Pa nesto su ovi iz IT-a uradili, i valjda sad prolazi dobro, samo sto kad povucemo u Excelu i dalje pise pogresno... Iako kad prodje obrada i sve, ovi iz ITa kazu da je dobro, i da je to do toga kada se povuce u Excel...

Anyway...

Ovo gore je tako podeseno od strane lokalnog providera... Pa gledam da ostavim tako, samo da iskombinujem nesto...

Znaci u principu, COALESCE provjerava redom vrijednosti koje zadam, i upisuje redom, sve dok nije NULL... Tj, ako je NULL prelazi na sljedecu, itd, sve dok ne naidje na neku koja nije NULL...

Kako bi najkrace izgledao taj kod? Princip je sto se procedure u obradi rade preko pravila i kursora... U kursoru je definisan <<kontakt.osoba.1>> do <<kontakt.osoba.3>>, pa bi u kodu trebalo koristiti iste..

Znaci, kod bi trebao biti: COALESCE (<<kontakt.osoba.1>>,<<kontakt.osoba.2>>) result, sto bi provjerilo i stavljalo kontakt osobe 1 i 2, ako nisu nule, e sad jos ne kontam kako da <<kontakt.osoba.3>> stavim kao default.. Takodje, na jednom sajtu sam nasao da pise FROM pa ime tabele, medjutim, to je meni definisano u kursoru, pa valjda to ne trebam... Meni nije potreban ovaj dio Insert into... Posto je meni ovo definicija pravila za polje u tabeli... Znaci, nije princip da je to kod koji se odnosi na cijelu tabelu, pa da je trebam naglasavati gdje da ubacuje, nego samo da popuni tako i tako, jer vec kucam kod za odredjeno polje...

Ako ti je i ovo konfuzno... Olaksanje... Rijec je o banci, i radimo popunjavanje tabela iz maski naseg sistema... I postoje maska koja sadrzi polja licnih bankara i zamjenika, ali ako nije to popunjeno (princip iz prvog posta) ide defaultna vrijednost... Mi definisemo pravilo za dato polje, a ne za tabelu, tako da bi mi pravilo trebalo ici: ako je popunjeno polje licnog bankara, stavi tu vrijednost, ako nije popunjeno, provjeri da li je popunjeno polje zamjenika licnog bankara, ako jeste, stavi tu vrijednost, ako nije popunjeno, stavi defaultnu vrijednost...

Valjda ce sad biti jasnije :)

??

_________________
Slika


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 20 Jun 2013, 21:45 
OffLine
Veteran
Veteran

Pridružio se: 01 Jul 2004, 11:47
Postovi: 2597
Pokusavam da te shvatim, al' nisam siguran da sam te skontao. :)

Zar ti:
Kod:
COALESCE(<<kontakt.osoba.1>>,<<kontakt.osoba.2>>, 'Default vrijednost')

ne rjesava stvar?

Daj kopiraj taj dio kôda sa cursorom il' cim vec, da ne nagadjam sta i kako...

_________________
Sve sto sam napisao, slucajno je namjerno ...


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 21 Jun 2013, 05:10 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 06 Apr 2003, 12:32
Postovi: 5310
Lokacija: HEAVEN
Pa rjesava, ako nista vise ne treba :) Kontao sam da mozda nesto izostavljam :) Zbog toga sam te pitao :)

U principu, kod kursora nemam trenutno, a ne znam bas napamet, ali u je u njemu definisano polje odakle da vuce te kontakt osobe... I to su ove <<>>.. Tako da bi taj kod sto si napisao, bio to sto meni treba... Probacu danas na poslu, pa ti javim poslijepodne :)

_________________
Slika


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 21 Jun 2013, 15:49 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 06 Apr 2003, 12:32
Postovi: 5310
Lokacija: HEAVEN
Kod je super... Ali smo skontali da nam polje <<kontakt.osoba.1>> nije dobra, tj, posto mi ne znamo pravi naziv (nemamo pristup tom pregledu), mi smo stavljali to polje, jer je neko prije nas stavio, i mi smo mislili da je ispravno.. Medjutim, danas smo primjetili da kod jednostavno preskace <<kontakt.osoba.1>> i provjerava osobu 2, i ako je ona popunjena, stavlja tu osobu, ako nije, stavlja default... Jos cemo vidjeti tacno koji je tacan naziv polja... U svakom slucaju hvala...

A kad si vec upucen u Oracle... Mozes li mi preporuciti odakle da pocnem (ako racunamo da vec neke osnovne stvari znam iz programiranja), jednostavno da upoznam malo vise kodove i procedure koje se koriste u Oracle-u...

_________________
Slika


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 21 Jun 2013, 21:38 
OffLine
Veteran
Veteran

Pridružio se: 01 Jul 2004, 11:47
Postovi: 2597
Imas stosta i na ovoj temi - prelistaj malo unazad :)
Osim toga, pisao sam na blogu (http://www.baze-podataka.net ) odakle i kako poceti, te usput i nekoliko recenzija knjiga, koje cete mozda interesovati...

Ako imate problema sa kôdom ili performansama odredjenih upita ili long running batch jobova, eto me u julu dole, pa mogu pogledati, moze li se sta uraditi... Zauzvrat castis cugom i hranom. :D

_________________
Sve sto sam napisao, slucajno je namjerno ...


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 09 Sep 2013, 19:43 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 06 Apr 2003, 12:32
Postovi: 5310
Lokacija: HEAVEN
Ovako...

Da li je moguce uraditi neku vrstu replace-a liste vrijednosti u bazi podataka na osnovu excel file-a? Primjer: rijec je o postanskim brojevima, i u bazi ima lista vrijednosti sa BL unesenom na milion nacina (Banja Luka, banjaluka, BL, B. Luka, Banjaluka itd)... Ja bih napravio excel file koji bi sadrzao sve postojece vrijednosti, i ispravne vrijednosti postanskih brojeva i naziva... E sad mi je potreban nacin da tu novu listu ubacim u bazu podataka, ali da pritom svagdje gdje je bila neka od starih vrijednosti, upise novu vrijednost... Ne treba mi potpuni kod, samo odokativno da li se to moze odraditi, preko koje funkcije i sl...

_________________
Slika


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 09 Sep 2013, 20:34 
OffLine
Veteran
Veteran

Pridružio se: 01 Jul 2004, 11:47
Postovi: 2597
A koja bi to funkcija trebala znati, koje ti sve vrijednosti imas u bazi? :D Nece da moze tako bato...

Moras negdje navesti sve moguce varijante BL, pa kad naletis na njih, da ih prepravis na vrijednost koju zelis...

Npr. mozes koristiti REGEXP_REPLACE(grad, '(BL|B. Luka|Banjaluka|blabla)', 'Banja Luka') ili eventualno da u neku pomocnu lookup tabelu prebacis sve te vrijednosti u jednu kolonu, a u drugu kolonu ispravnu, npr.:

Kod:
CREATE TABLE lookup_gradovi(
originalni_naziv VARCHAR2(64),
ispravni_naziv VARCHAR2(64));

INSERT INTO lookup_gradovi
SELECT distinct grad, NULL -- ili umjesto NULL stavis npr. Banja Luka
FROM tvoja_tablica;

COMMIT;


Problem je sto moras rucno i u jednoj i u drugoj varijanti da definises ispravne nazive grada za svaku pojavu grada u bazi...

Nadam se da sam se te shvatio sta zelis i da ce ti ovo barem malkice pomoci, tj. otvoriti oci kako i sta dalje ... :D

_________________
Sve sto sam napisao, slucajno je namjerno ...


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 09 Sep 2013, 21:45 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 06 Apr 2003, 12:32
Postovi: 5310
Lokacija: HEAVEN
Pa to ti kazem.. Napravio bih excel file sa kolonom stara vrijednost i kolonom nova vrijednost... Mene interesuje da li se taj excel file moze iskoristiti nekako da replaceuju te vrijednosti :)

Ovaj kod mi izgleda ok ako je moguce povuci vrijednosti iz excela... Jer u principu u bazi vec postoji tabela, ja imam excel tabelu, i on treba odraditi matchiranje (lookup) vrijednosti iz postojece tabele u odnosu na moju tabelu i upisati nove vrijednosti...

_________________
Slika


Vrh
 Profil  
 
 Tema posta: Re: Oracle kod nas?
PostPoslato: 10 Sep 2013, 08:32 
OffLine
Veteran
Veteran

Pridružio se: 01 Jul 2004, 11:47
Postovi: 2597
Pa onda exportuj Excel u .CSV formatu, kreiraj externu tabelu u bazi, koja pokazuje na tu datoteku i jednostavno ucitas i obradjujes podatke... Simple as that! :D

_________________
Sve sto sam napisao, slucajno je namjerno ...


Vrh
 Profil  
 
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Odgovori na temu  [ 94 Posta ]  Idi na stranicu Prethodni  1, 2, 3, 4, 5  Sledeća

Sva vremena su u UTC [ DST ]


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 1 gost


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
Powered by phpBB® Forum Software © phpBB Group
Hosting BitLab
Prevod - www.CyberCom.rs