Keresés

Részletes keresés

dorog.zultan Creative Commons License 2014.10.06 0 0 5079

PL/SQL dev. "SQL Window"-ban nem kell bekapcsolni a "serveroutput" -ot.

A "Command Window"-ban igen, ott le is fut.

Előzmény: F1DO (5077)
halaloszto Creative Commons License 2014.10.06 0 0 5078

biztos lehet abban is, csak maskeppen kell bekapcsolni az outputot. nem hasznaltam kb soha, sajnos ebben nem tudok segiteni. a helpjeben ha rakeresel a dbms_output-ra, tuti megtalalod.


Vajk

Előzmény: F1DO (5077)
F1DO Creative Commons License 2014.10.06 0 0 5077

OK.

 

Toad-al lefut simán. Érdekes ilyenbe még nem futottam bele, hogy egy script az egyik Editorban lefut, a másikban nem..

 

Köszi mégegyszer.

Előzmény: halaloszto (5075)
F1DO Creative Commons License 2014.10.06 0 0 5076

Pl sql developert használok és az első sorra a hibaüzenet:

ORA-00922: Nem megengedett vagy hiányzó opció  

 

Az az érdekes hogy ezután rögtön dob egy másik hibaablakat is, miszerint 4. sor 93. oszlop: identifier 'D' must be declared és 4. sor 7. oszlop: statement ignored - azonban ha kihagyom az első sort, akkor ez nem jelenik meg, hanem a már említett módon lefut úgy hogy 'se kép, se hang'..

Előzmény: halaloszto (5075)
halaloszto Creative Commons License 2014.10.06 0 0 5075

mibol futtatod?

 

a dbms_output az egy utility amivel tudsz plsql-bol kimenetet irni. a set serveroutput on az a szokasos oracle toolokban annak bekapcsolasa hogy a kliens ki is irja a dolgot. sqlplusban vagy sqldeveloperben mukszik tutira, nem szokott kelleni hozza speci jogosultsag. milyen hibauzenetet ad?

 

Vajk

Előzmény: F1DO (5074)
F1DO Creative Commons License 2014.10.06 0 0 5074

Köszönöm szépen a segítséget, ezzel együtt, a

- set serveroutput on    

sor nem fut le - itt lesz egy jogosulatlanság hozzá..

Ezt a sort kivéve pedig lefut a többi rész, (declare - end) ám nem jelenik meg a képernyőn az eredmény, csak annyi, hogy Done .... sec alatt lefutott.

 

Ezzel lehet valamit kezdeni?

Előzmény: halaloszto (5073)
halaloszto Creative Commons License 2014.10.06 0 0 5073

Kifaragtam neked:

 

set serveroutput on
declare
d date;
begin
  for s in (select table_name from user_tables where rownum<6) loop
    begin
      execute immediate 'select scn_to_timestamp(max(ora_rowscn)) from '||s.table_name into d;
      dbms_output.put_line(s.table_name||' '||to_char(d));
    exception
      when others then dbms_output.put_line(s.table_name||' no luck: '||sqlcode);
    end;
  end loop;
end;
/

 

-- jo lassu a nagy tablakra

-- van benne egy rownum<6 hogy csak az elso 5 tablat mutassa

-- ha regi az scn, nem tudjuk megmondani a pontos datumot

 

Vajk

 

Előzmény: F1DO (5071)
F1DO Creative Commons License 2014.10.06 0 0 5072

Valószínűbb, hogy jogosultsági korlátozás miatt nem tudom ezt futtatni... 

Előzmény: halaloszto (5070)
F1DO Creative Commons License 2014.10.06 0 0 5071

Próbálkozom vele, ám nem megengedett változónév a 7. sornál hibaüzenet, szerintem a max(ora_rowscn) -el lesz valami gond..

 

 

Ez pedig saját kútfőből egy eleve rossz próbálkozás? - jelenleg elszáll azzal, hogy a max függvény csak sql statementnél használható.

 

declare
    cursor mutato is
       select table_name from user_tables;
begin
    for mutato_record in mutato
      loop
          scn_to_timestamp(max(ora_rowscn));
      end loop;
end;

Előzmény: halaloszto (5070)
halaloszto Creative Commons License 2014.10.06 0 0 5070

pszeudokod:

 

set serveroutput on

declare 

 d date;

begin

  for s in (select table_name from dba_tables) loop

    execute immediate 'select max(trallalala) into :1 from '||s.table_name into d;

    dbms_output.put_line(s.table_name||' '||to_char(d));

  end loop;

end;

/

 

Vajk

Előzmény: F1DO (5069)
F1DO Creative Commons License 2014.10.06 0 0 5069

Sok táblánál kellene ez az adat, így a unionozásnál hátha lenne szebb megoldás..

 

Esetleg valamilyen ciklussal/cursorral végig lehetne lépkedni a táblákon (mondjuk egy adott user/schema alá tartozókon) és táblánként kiíratni ezt a frissítési adatot?

 

síma select-el lehívva ugyan megkapható a teljes táblanév, (pl user||'.'||táblanévŰ) ám azt nem eszi meg a rowscn-el együtt..

givons2 Creative Commons License 2014.10.04 0 0 5068

select to_char (scn_to_timestamp(max(ora_rowscn)), 'YYYY.MM.DD HH24:MI:SS') AS Utolso_TABLANEV1
from TABLANEV1

union

select to_char (scn_to_timestamp(max(ora_rowscn)), 'YYYY.MM.DD HH24:MI:SS') AS Utolso_TABLANEV2
from TABLANEV2

union

select to_char (scn_to_timestamp(max(ora_rowscn)), 'YYYY.MM.DD HH24:MI:SS') AS Utolso_TABLANEV3
from TABLANEV3;

 

A dolog azon alapul, hogy minden block header-ben ott van utolsó módosításának az SCN-je.

 

 

Még azt is meg lehet(ett volna) csinálni, hogy a táblákat rowdependencies enabled attribútummal hozod létre és akkor még azt is tudod, hogy melyik sor lett utoljára piszkálva.

 

és a harmadik:

 

audit insert, update, delete, select on TABLANEV1;

audit insert, update, delete, select on TABLANEV2;

audit insert, update, delete, select on TABLANEV3;

 

ebből még azt is, hogy ki és mit módosított.

(persze az overhead-del kalkulálni kell)

 

 

 

Előzmény: F1DO (5065)
dorog.zultan Creative Commons License 2014.10.03 0 0 5067
Előzmény: F1DO (5064)
halaloszto Creative Commons License 2014.10.03 0 0 5066

1. a select tablabol olvas

2. hogy melyik tablabol, az nem tud parameter lenni

 

szerintem van esely ra hogy talalsz olyan nezetet, ami megmondja a tabla scn-jet. ha megsem, akkor meg ossze kell unionozt a cuccot

 

select bbbb from tab1 union all select bbb from tab2 union all...

 

aztan irhatsz egy select-et, ami a dba_tables alapjan generalja a fenti sql-t.

 

Vajk

Előzmény: F1DO (5065)
F1DO Creative Commons License 2014.10.03 0 0 5065

Most már csak arra kellene rájönni, hogy egy listát hogy lehetne kiíratni - 

 

táblanév 1, utolsó módosítási dátum

táblanév 2, utolsó módosítási dátum

táblanév 3, utolsó módosítási dátum

 

- módon..

 

A táblanevek listázása tetszőleges név kezdőbetűkkel megvan:

SELECT table_name
from all_tables
where table_name like 'táblanév előtag%';

 

de ez nem illeszthető az előző query from részébe, mert nem ismeri annak a ora_rowscn tagját hibaüzenettel nem fut le...

F1DO Creative Commons License 2014.10.03 0 0 5064

Ha minden igaz ez az:

 

select to_char (scn_to_timestamp(max(ora_rowscn)), 'YYYY.MM.DD HH24:MI:SS') AS Utolso_modositas
from TABLANEV;

F1DO Creative Commons License 2014.10.03 0 0 5063

Sziasztok,

 

Arra van valami parancs, amivel lekérdezhető lenne egymenetben több tábla utolsó frissítési dátuma?

Törölt nick Creative Commons License 2014.09.27 0 0 5062

Amikor csak a kerdest olvastam, a LIStAGG fuggveny jutott eszembe

Előzmény: F1DO (5058)
F1DO Creative Commons License 2014.08.21 0 0 5061

a túl sok adat pedig bekavart a pivot adat rendezésébe - osztályozásába...

Előzmény: F1DO (5060)
F1DO Creative Commons License 2014.08.21 0 0 5060

Ahh... pivot-al végül könnyedén meglett a megoldás, amit előzőleg azzal hibáztam el, hogy túl sok adatot hívtam le a pivot select részében... Tanulópénz..

Előzmény: halaloszto (5059)
halaloszto Creative Commons License 2014.08.19 0 0 5059

Vannak oldschool workaroundok. Meg van a pivot, asszem 10-tol

Előzmény: F1DO (5058)
F1DO Creative Commons License 2014.08.19 0 0 5058

Sziasztok.

 

A régi jó öreg kérdés:

Miként lehet függőleges oszlopból vízszintes sort csinálni?

Konkrétan a képen látható megjelenítést szeretném elérni.

 

givons2 Creative Commons License 2014.08.08 0 0 5057

Haverszki,

 

Nemi ismersz minket. Az itteniek Győrig elgurigatnának  egy húszért 1 forintot.

:)

Előzmény: NevemTeve (5055)
sugabor Creative Commons License 2014.08.06 0 0 5056

Sziasztok!

1-2 napja foglalkozom az Oracle termékeivel.
Van egy Oracle 11.2.0.3-as db-nk. A kérdésem pedig az, hogy .NET, illetve C# fejlesztés esetén elég-e ODAC telepítése (ami tartalmaz instant klienst) vagy pedig szükséges klienst is telepítenem?

A válaszokat előre is köszönöm!

NevemTeve Creative Commons License 2014.07.29 0 0 5055

(Off: Esetleg iskola/egyetem/tudományos intézet? Azokról esetleg el tudom képzelni, hogy a megtakarítás jegyében elfogadnak kisebb-nagyobb üzemszüneteket, átállási gondokat, funkcionalitás-csökkenést.)

Előzmény: tnsnames.ora (5053)
tnsnames.ora Creative Commons License 2014.07.29 0 0 5054

Igen view-kra gondoltam aztán végül én is, mert hogy akkor azokat szépen lehetne grantolni adatszótárlekérdezés alapján.

Talenddel szépen le lehet capture-ölni a view-kat, az egyetlen megoldandó feladat )ekkora méreteknél), hogy jó sorrendben kell ezt megtenni a beágyazott view előbb jöjjön létre a PostgreSQL-oldalon.

És igen: nem lesz gyors. ;)

Olyan trükkök persze már előjöttek, hogy userenv-lekérdezéssel rákérdez a LANG(nyelvre), hogy ennek megfelelő nyelven jöjjön a select-resultset,ilyenből van nem is kevés. :)

Előzmény: halaloszto (5051)
tnsnames.ora Creative Commons License 2014.07.29 0 0 5053

Én ezen kevésbé csodálkoztam, sokkal inkább azon, hogy az Oracle oldalon hogy bírt ekkora gigantikus méretű kupleráj lenni.

Nekem azt senki ne mondja nekem, hogy nem férne rá egy alapos konszolidáció erre az adatbázisra, csak ugye ki csinálná meg és pláne ki fizetné ki.

Előzmény: NevemTeve (5052)
NevemTeve Creative Commons License 2014.07.29 0 0 5052

(Off: Ez komoly? Volt olyan felelős vezető, aki erre rábólintott? Normálisan egy céges rendszerben egy-egy Oracle alverzióváltást is hosszas 'merjük-ne-merjük' rinyálások előznek meg, mert mindenki tudja, hogy mennyi akna lehet elásva abban is... Na de ez... Még jó, hogy nem sqlite-ra...)

Előzmény: tnsnames.ora (5050)
halaloszto Creative Commons License 2014.07.29 0 0 5051

Legalabb meg sok sema is?

Nem hasznaltam meg pgrest sosem, tenyleg nincs benne szinonima? Akkor helyettuk view-kat kell csinálni?

 

Mivel plsql-ben vagyok otthon, valoszinuleg nekiallnek plsql-ben irni egy generatort, ami olvassa az adatszotart meg a dbms_ddl-t, es fossa ki a pgres ddl-t. Aztan apro lepesenkent tesztelni. Nyilvan elotte jo lenne atlatni hogy van esely arra hogy az egesz mukodjon. Gbyte DDL az durva, mindenkeppen baromi sokaig fog futni.

 

Aki hasznal tervezoeszkozoket, vajon tud olyat aminek lenne eselye lecapture-olni az oracle db-t, es siman legeneralni a pgres ddl-t?

 

Vajk

 

 

Előzmény: tnsnames.ora (5050)
tnsnames.ora Creative Commons License 2014.07.29 0 0 5050

Sziasztok skacok,

 

Topik: Oracle szinonimák migrálása PostgreSQL alá (ahol nincs is ilyen ugye)

Az adatbázis brutál nagy: többszáz user, soktízezer (egymásba is ágyazott, private és public szinonimákra is hivatkozó) VIEW-t tartalmaz (csak a VIEW-definiciók text-állománya GB-os nagyságrendű)

Nehezítés: VIEW és ctid(PostgreSQL-specifikus ORACLE ROWID) együttes menedzselése.

Amit lehet géppel kéne csinálni, nem kézzel, értelemszerűen.

 

Ki hogy fogna hozzá? Én ott tartok, hogy egyelőre kaparom össze magamat a romokból, miután letaglózott a kérdés. ;)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!