Oracle - tekstowa funkcja agregujaca?
PawelS - 13-11-2006 00:14
Oracle - tekstowa funkcja agregujaca?
Hej,
pracuje na oracle 8.0 . czy istnieje jakis w miare prosty sposób zeby za pomoca kwerki z wierszy:
pole ------ AAA ABA ACC AWE FSD 0CVC NBVV
otrzymac 1 wierszyk: AAAABAACCAWEFSD0CVCNBVV
?
pozdrawiam, Pawel
Michał Kuratczyk - 13-11-2006 00:14
PawelS wrote: > pracuje na oracle 8.0 . czy istnieje jakis w miare prosty sposób > zeby za pomoca kwerki z wierszy: > > pole > ------ > AAA > ABA > ACC > AWE > FSD > 0CVC > NBVV > > otrzymac 1 wierszyk: > AAAABAACCAWEFSD0CVCNBVV http://asktom.oracle.com/pls/ask/f?p...:2196162600402
PS A może by tak upgrade bazy do jakiejś wersji z tego tysiąclecia? :-> -- Michał Kuratczyk
Marcin 'goral' Goralski - 13-11-2006 00:14
Michał Kuratczyk wrote:
> PS A może by tak upgrade bazy do jakiejś wersji z tego tysiąclecia? :->
Mysle, ze ironia nie trafiona. Po pierwsze, czesto to nie personel IT decyduje co, gdzie i kiedy upgrejdowac. Po drugie, upgrade moze nie miec sensu przy nakladach na testowanie danego systemu opartego o konkretna wersje BD po migracji, plus koniecznosc budowy systemu referencyjnego, procedur typu emergency itd itp.
Dla przykladu - w mojej firmie na produkcji chodzi 8i, oraz wejdzie 9i, moze w 2007. Oprocz typowych systemow, z polki, typu ERP mamy tez wlasne, pisane na zamowienie - sam fakt, ze gdzie moze nastapic niezgodnosc, wyklucza w _mojej_ firmie mozliwosc upgrejdu, dopoki dostawca nie zagwarantuje, ze nie bedzie problemu z upgradem. A i tak musi byc rownolegly system referencyjny.
marcin
PawelS - 13-11-2006 00:14
Michał Kuratczyk napisał(a):
(..)
niestety to jest raczej nie możliwe.. ;( ;(
Michał Kuratczyk - 13-11-2006 00:14
PawelS wrote: > niestety to jest raczej nie możliwe.. ;( ;( Ale co jest niemożliwe - zastosowanie podanego rozwiązania (jeśli tak, to czemu), czy odnosisz się do mojej uwagi na boku?
-- Michał Kuratczyk
Michał Kuratczyk - 13-11-2006 00:14
Marcin 'goral' Goralski wrote: >> PS A może by tak upgrade bazy do jakiejś wersji z tego tysiąclecia? :-> > Mysle, ze ironia nie trafiona. Uwaga odnosiła się przede wszystkim do tego, że w nowszych wersjach rozwiązanie tego problemu (jak i wielu innych) byłoby łatwiejsze. Co nie zmienia faktu, że podałem odnośnik do rozwiązania, które powinno działać na tej starej bazie.
> Po pierwsze, czesto to nie personel IT decyduje co, gdzie i kiedy > upgrejdowac. Po drugie, upgrade moze nie miec sensu przy nakladach na > testowanie danego systemu opartego o konkretna wersje BD po migracji, plus > koniecznosc budowy systemu referencyjnego, procedur typu emergency itd Ja sobie zdaję sprawę, że tego typu upgradów nie robi się przez samo "rpm -U". :-) Ale nie zmienia to faktu, że ja bym stawał na głowie, żeby doprowadzić do (odpowiednio wcześniej przygotowanej) aktualizacji. I to im ważniejszy system - tym bardziej. Do wersji 8.0 nie ma już supportu (ewentualnie szczątkowy za dodatkową kasę), mogą być problemy z bezpieczeństwem, itd. Uwaga była na boku i nie ma raczej co nad nią dyskutować.
-- Michał Kuratczyk
PawelS - 13-11-2006 00:14
Michał Kuratczyk napisał(a): > PawelS wrote: (..)
niemożliwa jest upgrade oracle'a . jestem użytkownikiem hurtowni danych a nie DBA'em :-)
PawelS - 13-11-2006 00:14
Michał Kuratczyk napisał(a):
> http://asktom.oracle.com/pls/ask/f?p...:2196162600402 (..)
co do tego linku to udało mi się uruchomić część sql'a (na 8.0) ale
member function ODCIAggregateIterate(self IN OUT string_agg_type, value IN varchar2 ) return number is begin self.total := self.total || ',' || value; return ODCIConst.Success; end;
nie chce wogóle działać :(
pozdr, p.
Michał Kuratczyk - 13-11-2006 00:14
PawelS wrote: > co do tego linku to udało mi się uruchomić część sql'a (na 8.0) > ale > > member function ODCIAggregateIterate(self IN OUT string_agg_type, > value IN varchar2 ) > return number > is > begin > self.total := self.total || ',' || value; > return ODCIConst.Success; > end; > > nie chce wogóle działać :( Dyć stoi, że to jest dla 9i. Dla 8i jest wskazanie tu: http://asktom.oracle.com/pls/ask/f?p...D:229614022562 Nie wiem czy na 8.0 pójdzie, ale myślę, że powinno.
-- Michał Kuratczyk
PawelS - 13-11-2006 00:15
Michał Kuratczyk napisał(a): > PawelS wrote: > > co do tego linku to udało mi się uruchomić część sql'a (na 8.0) > > ale (..)
pomogła ta funkcyjka.. dzięki wielkie :-) create or replace function transpose( p_key_name in varchar2, p_key_val in varchar2, p_other_col_name in varchar2, p_tname in varchar2 ) return varchar2 as type rc is ref cursor; l_str varchar2(4000); l_sep varchar2(1); l_val varchar2(4000);
l_cur rc; begin
open l_cur for 'select '||p_other_col_name||' from '|| p_tname || ' where ' || p_key_name || ' = :x ' using p_key_val;
loop fetch l_cur into l_val; exit when l_cur%notfound; l_str := l_str || l_sep || l_val; l_sep := '-'; end loop; close l_cur;
return l_str; end;
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
Oracle 19g +Insert +Insert +Insert...
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?=
=?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?=
[oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?=
[oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?=
MSSQL Express czy Oracle Express
=?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?=
=?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
zanotowane.pldoc.pisz.plpdf.pisz.pllisinski.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|