Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

SQL,Više tablica i procedure....

[es] :: Oracle :: SQL,Više tablica i procedure....

[ Pregleda: 3881 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gremlin33
Zabreg

Član broj: 68314
Poruke: 13
*.adsl.net.t-com.hr.



Profil

icon SQL,Više tablica i procedure....05.02.2007. u 20:42 - pre 209 meseci
Pozdrav svima,
daklem problem sam si probao predočiti u excell-u ..crto nešto tamo tabele i ostale điđemiđe i sad naravno to ne mogu vjerno ovdje postati, stoga evo

http://www.freewebs.com/gremlin33/Oracle.htm

imam relativno kratko vrijeme za napraviti to...
a kako ne čačkam po tome ako ne moram
sad mi je to ispao velik problem...

ako neko ima volje malo pogledati i dati mi koji hint..bio bih mu zahvalan
Što me snađe da se ovdje nađe :)
 
Odgovor na temu

dragancesu
subotica

Član broj: 38340
Poruke: 2189
*.eunet.yu.



+73 Profil

icon Re: SQL,Više tablica i procedure....06.02.2007. u 17:14 - pre 209 meseci
Potrudi se pa napravi tabelu koji ce sadrzati sve sto ti treba, sa strukturom otprilike kao

jmbg, iduser, iddokument, polje1, polje2,... polje12

pod pretpostavkom da se tabela tbix ne menja nece biti tesko




Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
 
Odgovor na temu

gremlin33
Zabreg

Član broj: 68314
Poruke: 13
*.adsl.net.t-com.hr.



Profil

icon Re: SQL,Više tablica i procedure....06.02.2007. u 18:26 - pre 209 meseci
aj fala ogu da je neko odgovorio :)
no...
ja tih polja imam oko 1400
tako da mi je malo nezgodno kreirati takvu tabelu,pogotovo sto to moram poslije u Excell staviti i dati na uvid,

međutim jako bi mi pomoglo
kad bi mi rekli kako, kako da
isčitam sve rekorde u tabeli TblPopisTabela i to mechiram s
TblPolja,tblX,TblTipDocumenta
i na osnovu toga kreiram tabelu a potom sve lahko i jednostavno appendam :):)
Što me snađe da se ovdje nađe :)
 
Odgovor na temu

gremlin33
Zabreg

Član broj: 68314
Poruke: 13
195.29.157.*



Profil

icon Re: SQL,Više tablica i procedure....07.02.2007. u 10:29 - pre 209 meseci
napravio sam novi predložak problema
jer ono ni meni nije baš najjasnije...ali bolje od ovog ne znam :(



http://www.freewebs.com/gremlin33/Oracle.mht
Što me snađe da se ovdje nađe :)
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: SQL,Više tablica i procedure....07.02.2007. u 12:29 - pre 209 meseci
I meni se cini da ti nije najjasnije. :)

Evo pokusavam da ti uradim kompletno rjesenje sa svim izrazima (CREATE TABLE; INSERT; SELECT), ali sam zapeo kod dvije stvari:
1. odakle dobijas JMBG?
2. kako zapravo dobijas dokumente za obradu?

Da probam rekonstruisati proces:
1. dobijas podatke o osobi (JMBG) sa popisom dokumenata, koje za tu osobu moras obraditi.
2. dokumenti su razvrstani po Tipu dokumenta
3. svaki tip dokumenta moze da sadrzi neodredjeni broj polja
4. User je osoba koja obradjuje te dokumente?
5. Naziv dokumenta je ustvari naziv tipa dokumenta?

I na kraju moram priznati, da sam ubijedjen, kako je citava ta struktura pogresno dizajnirana. Moze li se postojeca struktura izmijeniti?
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: SQL,Više tablica i procedure....07.02.2007. u 12:48 - pre 209 meseci
evo jednog plsql bloka koji ti u varijabli dynsql pravi sql upit koji ti radi posao:

Code:

declare
  dummy     number;
  dynsql    varchar2(32000);
  union_all varchar2(50);
  separator varchar2(5);
begin
  for dokumenti in (select distinct t.iddocumenta, t.naziv_documenta
                      from tbltipdokumenta t, tblpopisdokumenata d
                     where d.naziv_documenta = t.naziv_documenta) loop
    dynsql := dynsql || union_all || 'select jmbg, ime, ' || dokumenti.naziv_documenta ||
              ' naziv_documenta';
  
    union_all := ' union all ';
    separator := ' ';
    for polja in (select distinct p.idpolja, p.nazivpolja
                    from tblpolja p, tbltipdokumenta t, tblx x, tblpopisdokumenata d
                   where d.naziv_documenta = t.naziv_documenta
                     and x.iddocumenta = t.iddocumenta
                     and x.idpolja = p.idpolja) loop
      begin
        select 1
          into dummy
          from tblx
         where iddocumenta = dokumenti.iddocumenta
           and idpolja = polja.idpolja;
      
        dynsql := dynsql || separator || polja.naziv_polja;
      exception
        when no_data_found then
          dynsql := dynsql || separator || 'null ' || polja.naziv_polja;
      end;
      separator := ', ' end loop;
      dynsql    := dynsql || ' from ' || dokumenti.naziv_documenta ||
                   ' d, tbluseri u where d.iduser=u.iduser ';
    end loop;
    dbms_output.put_line(dynsql);
  end;
 
Odgovor na temu

gremlin33
Zabreg

Član broj: 68314
Poruke: 13
195.29.157.*



Profil

icon Re: SQL,Više tablica i procedure....07.02.2007. u 13:37 - pre 209 meseci
haaaa :):)

1. odakle dobijas JMBG?
jmbg je zapravo unique nummber nečega(npr transakcije) i taj broj se ne ponavlja...niti u jednom drugom dokumentu
(JMBG sam stavio...radi lakšeg poimanja svega)

2. kako zapravo dobijas dokumente za obradu?
tijekom dana i noći se izvršavaju nekakvi poslovi što znači

npr. naiđe dokument1 u sustav, njega dohvati user i obradi ga..(korigira) i arhivira, nakon arhiviranja dokument dobiva svoj (JMBG) i upucava se u bazu...
ako taj posao ne postoji..onda se kreira tabela dokument1 i dodaje se record o dotičnom arhiviranom dokumentu..njegov JMBG,user i polja koja je user korigirao. ako već postoji onda se samo Append-a

1. dobijas podatke o osobi (JMBG) sa popisom dokumenata, koje za tu osobu moras obraditi.

ja zapravo moram obraditi transakcije koje je određeni korisnik odradio po poljima za odreženi tipDokumenta
znači od svih tipova dokumenata ja moram u jednoj tabeli imati sve podatke
famozni "JMBG", ko je radio i koja polja je odradio

svaki tip dokumenta moze da sadrzi neodredjeni broj polja
NE
on ima određen broj polja koji varira od tipa do tipa dokumenta
ALI
zato tipova doikumenata ima oko 1000 s tendencijom da se poveća...

4. User je osoba koja obradjuje te dokumente?
Jes vala :)
5. Naziv dokumenta je ustvari naziv tipa dokumenta?
slažem se s tobom :)


Nažalost ja sam ovu Bazu naslijedio,,,pala mi je u krilo..i niko me ništa nije pitao,
ta baza je vlasništvo neke druge firme i ne smijem mrdati po strukturi/dizajnu (ionako ne bi ni znao)

zato se ja sad tako nalazim ko u nebranom grožđu







Što me snađe da se ovdje nađe :)
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: SQL,Više tablica i procedure....07.02.2007. u 15:11 - pre 209 meseci
Da li ti je jasan moj kod? Vidim da se dopisuješ sa Dejanom, a ovo što sam ti ja postovao nisi komentarisao...
 
Odgovor na temu

gremlin33
Zabreg

Član broj: 68314
Poruke: 13
195.29.157.*



Profil

icon Re: SQL,Više tablica i procedure....07.02.2007. u 15:25 - pre 209 meseci
Citat:
djoka_l: Da li ti je jasan moj kod? Vidim da se dopisuješ sa Dejanom, a ovo što sam ti ja postovao nisi komentarisao...


Djoka_I

neizmjerno ti hvala na kodu:)),,nisam ti nista odgovorio jer sam odgovor pisao dejanu 2 sata onako u prekidima,i kad sam ga postao odletio sam dalje...
evo me tu sad,,,
i s ponosom ti moram reći da od tvog koda mi nije jasno skoro sve... :(
isprintao sam ga i sad ću otići kući malo pročavat...do jutra ako treba..


u svakom slučaj HVALA...


i ako može ...nemoj me sad pitati

da zašto sam se toga uhvatio...nisam se uhvatio..uhvatilo me nažalost:(
Što me snađe da se ovdje nađe :)
 
Odgovor na temu

dragancesu
subotica

Član broj: 38340
Poruke: 2189
*.eunet.yu.



+73 Profil

icon Re: SQL,Više tablica i procedure....07.02.2007. u 17:37 - pre 209 meseci
Citat:
zato tipova doikumenata ima oko 1000 s tendencijom da se poveća...


Leba ti kazi nam koja je to aplikacija?

Robno koje moze da bude komplikovano moze da se svede na desetak ulaza i desetak izlaza. Ovo tvoje deluje ko da je radio neki cobol-as sa ciljem da smanji zauzece na disku. Potrazite pomoc od nekog oracle strucnjaka, ovako imam osecaj uskoro nece valjati...




Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
 
Odgovor na temu

gremlin33
Zabreg

Član broj: 68314
Poruke: 13
*.adsl.net.t-com.hr.



Profil

icon Re: SQL,Više tablica i procedure....07.02.2007. u 17:42 - pre 209 meseci
a to je aplikacija za arhiviranje dokumenata...
svih vrsta...
na mjesečnom nivou se arhivira ..
jbtga sta ja znam par milijuna dokumenata

inace sve suuuper radi...
samo ja trebam taj izvjestaj napraviti...

mogu ja to ponaosob po svakom dokumentu..ali...

Što me snađe da se ovdje nađe :)
 
Odgovor na temu

gremlin33
Zabreg

Član broj: 68314
Poruke: 13
*.adsl.net.t-com.hr.



Profil

icon Re: SQL,Više tablica i procedure....07.02.2007. u 17:43 - pre 209 meseci
i ne mogu trazit pomoc od "strucnjaka"..
iskren da budem ..da mogu,,,
ne bih vas maltretirao tu, jel :)
Što me snađe da se ovdje nađe :)
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: SQL,Više tablica i procedure....08.02.2007. u 12:57 - pre 209 meseci
evo da malo objasnim šta radi kod:

Ideja je da se kreira upit oblika:

select jmbg, ime, polje1, polje2, null polje 11
from document1
union all
select jmbg, ime, polje1, null polje2, polje11
from document2

ovde se pretpostavlja da document1 ima polja polje1 i polje2, a document2 polja polje1 i polje 11. Upit sadrži sva polja (1,2 i 11) iz oba dokumeta, s tim da ako dokument nema polje, umesto njega stoji vrednost null (pa alias)

Prva for petlja (for dokumenti in ...)
treba da nađe sve dokumente (tabele) na osnovu kojih treba da napravi select.

Drugi upit pronalazi sva polja koje poseduje svi dokumenti iz prvog upita.

U telu druge petlje proverava se da li dotično polje postoji za datu tabelu, pa ako postoji stavlja se njegovo ime u select listu, a ako ne postoji stavlja se null i alias koji je isti kao ime polja.

Na kraju procesa se formira dinamički sql u varijabli dynsql koji se u mom primeru ispisuje, ali ga ti možeš iskoristiti da kreiraš kurzor i proslediš nekom programu koji to može da baci u excel.
 
Odgovor na temu

gremlin33
Zabreg

Član broj: 68314
Poruke: 13
*.adsl.net.t-com.hr.



Profil

icon Re: SQL,Više tablica i procedure....08.02.2007. u 20:29 - pre 209 meseci
djoka_I

nisam nikako uspio danas na poslu otvoriti forum, tako da sad tek vidim tvoj trud i post,,
u subotu ću dobiti nekakav testni server s Oraclom pa ću sve ovo tvoje isprobati....
ja sam uspio prevesti (samom sebi ) jedan dio tvoga koda al si ti se potrudio i SVE preveo,

suma summarum...

i ako ja ne uspijem u svom naumu,,
tebi kapa do poda...čak ne tolko što si kod napisao, već kolko si si dao truda i vlastitog vremena da meni pomogneš :)
HVALa...


ak naiđeš u ZG ručak na moj račun..pa sad kolko možeš pojest :)

p.s.
Dejan-u isto tako hvala na želji,
da ne zaboravim dragancesu-a

:):):)
Što me snađe da se ovdje nađe :)
 
Odgovor na temu

[es] :: Oracle :: SQL,Više tablica i procedure....

[ Pregleda: 3881 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.