Hirdetés

2024. június 10., hétfő

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Oracle topic

Hozzászólások

(#951) Ablakos


Ablakos
őstag

Kipróbálni nincs lehetőségem, ezért megkérdezem.
Egy táblának egyik oszlopán található foreign key constraint van, amit lekapcsolok. Szúrok egy olyan rekordot ebbe a táblába, ami engedélyezett constrainttel nem menne. Ezutén ezen a táblán visszakapcsolom a constraint-et novalidate kapcsolóval.
Ez azt jelenti, hogy most inkonzisztens a tábla?

(#952) bpx válasza Ablakos (#951) üzenetére


bpx
őstag

Én nem tudok olyan hivatalos terminológiáról, ami azt mondaná, hogy a tábla ilyenkor inkonzisztens. A constraint az, ami nem engedné azt az adatot, így a constraint az, ami nem teljes értékű. Ilyen esetben csak az új adatoknál kényszerít a constraint, ezért az adatbázis nem használhat olyan optimalizációt, amit egy engedélyezett, validált constrainttel használhat.

Tehát ha pl. a gyerek táblában nézed egy EXISTS-tel, hogy ki az, akinek van szülője, ez nyilván hülyeség, mert mindenkinek van definíció szerint. Egy ENABLED VALIDATED constrainttel az adatbázis meg sem nézi a szülő táblát. Ha viszont neked ENABLED NOT VALIDATED constrainted van, akkor hiába van szülő-gyerek viszony, bizony minden egyes gyerekhez meg kell nézni a szülő táblában, hogy létezik-e.

(#953) Ablakos


Ablakos
őstag

Egy kurzorral feldolgozott halmazon szeretnék függvénnyel elvégezni műveletet loop - end loop között.
Amely egy exception ágat is tartalmaz, ha valamiért hibára fut a függvény. Az exceptionben az első hiba pontot (ha keletkezik) elkapom, kiiratom, teszek vele, amit akarok.

Az a kérdésem, hogy lehetséges-e ilyenkor folytatni a kurzoros feldolgozást?
Vagyis ne álljon meg az exception után a feldolgozás, hanem az összes előforduló hibát egyszerre adja vissza, amikor a teljes halmazon végig ment a loop?

(#954) rum-cajsz válasza Ablakos (#953) üzenetére


rum-cajsz
őstag

persze, ha a loop-on belül indítasz egy új begin end alrészt, ott belül elkapod a hibát és ott eldöntheted vele, hogy mi történjen. Ha ki akarsz lépni a kurzorból, arról is külön kell gondoskodnod, pl. az exit paranccsal.

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#955) Ablakos válasza rum-cajsz (#954) üzenetére


Ablakos
őstag

Hogy konkrét legyek megpróbálom fejből idekaparni
Tehát továbbra sem folytatódik a cursor. :( Az első hibánál megvan az exception és kiírja a hibát okozó id-t.

declare
tmp blob;
id number;
begin
for x in (
SELECT --+ parallel(r)
r.id id ,
r.xml xml
FROM a.a_table r
)
loop
id := x.id;
begin
select
utl_compress.lz_compress(xmlserialize(document x.xml_value AS BLOB indent size = 2),9) xml_value
into tmp
from dual;
exception
when others Then
dbms_output.put_line(v_id);
end;
end loop;
exception
when others Then
dbms_output.put_line('ERR='||sqlerrm);
end;

(#956) bpx válasza Ablakos (#955) üzenetére


bpx
őstag

Ennél konkrétabb kell. A módszer működik:

set serveroutput on
begin
for c in (select level - 2 as i from dual connect by level <= 3) loop
begin
dbms_output.put_line('i = ' || c.i || ', 1/i = ' || 1/c.i);
exception when others then dbms_output.put_line('i = ' || c.i || ', 1/i error: ' || sqlerrm);
end;
end loop;
end;
/

i = -1, 1/i = -1
i = 0, 1/i error: ORA-01476: divisor is equal to zero
i = 1, 1/i = 1


PL/SQL procedure successfully completed.

(#957) Ablakos


Ablakos
őstag

Hogy lehet Oracle linux 8.1 -re egy 18-as XE-t telepíteni? Azt sugallják, hogy letölt, telepít, használ. Fel sem megy. Függőség hibák még a preinstallra is.

(#958) bpx válasza Ablakos (#957) üzenetére


bpx
őstag

Egyik jelenleg elérhető DB verzió sem támogatott OL8-on. Használj OL7-et.

(#959) Ablakos


Ablakos
őstag

7.7 re valóban felment erőlködés nélkül.
Az a kérdésem, hogy az oracle felhasználónak milyen passwordot állít be a telepítő (a fájl rendszeren). Az adatbázisban kérdezte, sys stb. beállítottam. Szeretnék be ssh-zni oracle névben. Nem akartam felülcsapni rootként, nehogy valami félre menjen.

(#960) bpx válasza Ablakos (#959) üzenetére


bpx
őstag

Semmilyet (passwd --status oracle). Arra állítod, amire akarod.

[ Szerkesztve ]

(#961) sutszi


sutszi
veterán

Meglévő Oracle APEX alkalmazás adatbázisához hozzá lehet férni kívülről, pl webes Java Spring alkalmazásból?

Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage

(#962) bpx válasza sutszi (#961) üzenetére


bpx
őstag

Persze, ugyanolyan adatbázis, mint bármelyik másik, az APEX csak egy extra komponens benne.

(#963) sutszi válasza bpx (#962) üzenetére


sutszi
veterán

Közben keresgéltem kicsit... Nem sok infóm van a meglévő rendszerről. De elvileg most pár ezer usernek kellene hozzáférnie a rendszerhez... Riport jellegű funkciók miatt. APEX user alapú licensz miatt durva szám lenne. Ezért merült fel, hogy a meglévő APEX-es rendszer mellett lenne egy kvázi webes felület ahol a mezei user be tud lépni, aztán tudja követni a történéseket... Erre kellene a kapcsolat.
Láttam mellékszálként hogy van valami REST-es DB hozzáférési lehetőség is? Hallottál erről esetleg?

Eredeti kérdésre visszatérve, ilyenkor az APEX-ből megnézem a DB connection részleteit és kb JDBC vagy valamilyen ORM-e keresztül tudok kapcsolódni?

Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage

(#964) bpx válasza sutszi (#963) üzenetére


bpx
őstag

Az APEX az adatbázison belül képes webes alkalmazás oldalait előállítani és ugye ez azért nagyon jó, mert ott van az adatbázison belül közvetlenül az adat mellett és akkor ettől majd milyen szuper lesz... nem. Ha rajtam múlna, sehol nem használnék APEX-et. Szerintem az APEX lesz az új Oracle Forms/Reports pár év múlva: olyan marginális részesedésű fejlesztési stack, ami össze van gyógyítva az adatbázissal, de már legalább 10 éve el kellett volna felejteni, csak az APEX-et most még nyomatja az Oracle, mert a sajátja.

3 módon tud működni az APEX:
- Az adatbázis egyben a webszerver is, tehát a böngészőbe igazából az adatbázis szerver címe kerül. Ez az agyrém kategória, játszós development környezetbe talán elmegy. Ezt hívják hangzatosan "Embedded PL/SQL Gateway"-nek.
- A webszerver tényleg webszerver, ami egy OHS (Oracle HTTP Server, igazából Apache átnevezve), mod_plsql plugint futtatva, és akkor ott vannak a OHS konfigjában az adatbázishoz a hozzáférési infók. Ez már kihalóban van, a következő módszer van helyette.
- ORDS (Oracle REST Data Services), ami JDBC-n keresztül beszélget az adatbázissal és úgy szolgáltat neked weboldalt. Ez igazából 1 darab .jar alkalmazás, amit lehet standalone futtatni vagy alkalmazásszerveren: Tomcat, Weblogic. Itt pedig nyilván ott lesznek az adatbázishoz a kapcsolati infók.

Itt most neked kell kideríteni, hogy a 3-ból melyik van, és akkor onnan meg fogod tudni az adatbázis címét, mert ha jól értem, ez a kérdés. Ha ez megvan, az adatbázisba utána azzal lépsz be és azt csinálsz, amit akarsz. A webes felület lehet egy újabb APEX alkalmazás, vagy valami akármilyen saját fejlesztés más technológiával is.

(#965) sutszi válasza bpx (#964) üzenetére


sutszi
veterán

Köszi a részletes leírást... Mikor én utoljára APEX-el találkoztam(akkor is érintőlegesen) kb akkor váltott HTMLDB-ről APEX-re... :D Utána szerencsére nem kellett foglalkozni vele, de azóta is látom, hogy annyira nem lett erős piaci jelenléte...

Van egy ilyen meglévő alkalmazása valakinek...sokat nem tudok róla. Annyi, hogy APEX. És hát szeretnék nem Oracle technológiával kibővíteni a meglévő DB adatokra építve a funkcionalitást. Megjegyzem az Oracle árakat tekintve nem is csodálom...
Ezért volt első körben fontos, hogy a DB-hez lehet-e kapcsolódni külön az APEX-től függetlnül...mert ha nem akkor nem is megyünk tovább...

Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage

(#966) peterszky válasza bpx (#964) üzenetére


peterszky
őstag

"Szerintem az APEX lesz az új Oracle Forms/Reports pár év múlva: olyan marginális részesedésű fejlesztési stack, ami össze van gyógyítva az adatbázissal, de már legalább 10 éve el kellett volna felejteni"

A Reports el is lesz felejtve, mert a következő Forms & Reports verzióból már kukázni fogják. Egyébként szerintem a Formsot valószínűleg még a fejlesztők egy része is szívesen elfelejtené, de én pl. nem igazán látom, hogy egy direktben erre épülő rendszert mire lehetne viszonylag normálisan "átmigrálni", hiszen a szoros kapcsolat az Oracle adatbázissal és a PL/SQL nyelv használata olyan előnynek tűnik még mindig, amit az egyéb komoly hátrányok nem gyűrnek le egyelőre (pl. a teljesen rugalmatlan méretezés, árazás, stb...).

What else you gonna do on a Saturday?

(#967) Foley101


Foley101
tag

Sziasztok!

Fedora Linux 32-re szeretném feltenni a 19c Oracle adatbázist.
Az alábbi leírást követem: [link]
Itt azt írják, hogy a függőségi csomag közül van 6 db, ami még nem elérhető Fedora 32 alatt (valóban én sem találtam)
Az alábbi link szerint a 18c-hez ezek még nem kellenek Fedora 31 alá: [link]

Esetleg tudja valaki, hogy ezek a csomagok mennyire kellenek majd a 19c-hez, okoz-e gondot a hiányuk? Vagy inkább tegyem fel a 18c-t Fedora 31 alá?

Előre is köszönöm a segítséget? :R

(#968) bpx válasza Foley101 (#967) üzenetére


bpx
őstag

VirtualBox, abba Oracle Linux, és oda 19c. Nem kell bohóckodni a nem támogatott rendszerrel meg a host OS-t szennyezni ilyenekkel.

(#969) Foley101 válasza bpx (#968) üzenetére


Foley101
tag

Ebből az első és a harmadik már megvan, Orace linuxal még nem volt dolgom. Oda egyszerűbb feltenni a 19c-t?

(#970) bpx válasza Foley101 (#969) üzenetére


bpx
őstag

Oracle Linux 7 minimal install GUI nélkül.root ssh login, majd:

yum install oracle-database-preinstall-19c

Dependenciaként beránt minden szükséges csomagot a repo-ból + a scriptlet létrehozza az oracle usert groupokkal, beállítja a szükséges kernel paramétereket és limiteket.

Ezen a ponton indulhat is a DB telepítés oracle userrel.

(#971) Foley101


Foley101
tag

Köszi, ez valóban egyszerűbb!

Ha jól értem, a 8-as Orace Linux alá - amatőröknek - még nem érdemes próbálkozniuk, mert nem kiforrott a téma?

[ Szerkesztve ]

(#972) bpx válasza Foley101 (#971) üzenetére


bpx
őstag

Az Oracle Linux 8-at azért nem javasoltam egyelőre, mert csak a 19.7-es verzió támogatott rajta. Az alap 19c telepítő az igazából 19.3 verzió, tehát még a 19.7-es RU-t is telepíteni kell hozzá, amit viszont csak fizetett supporttal rendelkező vagy partner accounttal lehet letölteni. De még ha ezt meg is csinálod, akkor is hibát fog dobni a telepítés közben és panaszkodni fog arra, hogy nem támogatott OS, a grafikus telepítő itt le is hal és nem enged tovább. Ez sajnos ilyen, még új dolog, majd valamelyik következő patchben javítva lesz. Magamnak saját homelab környezetben nyilván megcsináltam, mert a munkám miatt az a dolgom, hogy ilyeneket kipróbáljak és tudjak, de aki most ismerkedik ezzel, annak az OL7-t ajánlom, ott tényleg csak 1 package-re yum install, és az alap 19c telepítővel patch nélkül next-next-OK és megy.

(#973) Foley101 válasza bpx (#972) üzenetére


Foley101
tag

Köszönöm, sokat segítettél!

(#974) Ablakos


Ablakos
őstag

User1 sémában milyen lehetőségem van a user2.table analizálására?

(#975) bpx válasza Ablakos (#974) üzenetére


bpx
őstag

DBMS_STATS.GATHER_TABLE_STATS

"To invoke this procedure you must be owner of the table, or you need the ANALYZE ANY privilege."

Vagy marad a wrapper procedure + execute grantolva user1-nek rá.

(#976) rumos XIII


rumos XIII
aktív tag

Ismertek valamilyen könyvet, vagy oldalt, ahol összevan szedve, hogy hogyan lehetne a az alapoktól tanulni egy oracle DBA-nak?
Olyanra gondolok, ami tematikusan építi fel, nem össze vissza.

(#977) Rowon


Rowon
veterán

Sziasztok,

Feltettem a legújabb Oracle Linuxot WM-re, viszont úgy látom, hogy ULN regisztráció nélkül nem lehet rá csomagokat letölteni. Jól látom, vagy valamit benéztem?

Az emberiség két legnagyobb találmánya az írás és a mikrohullámú sütő.

(#978) bpx válasza Rowon (#977) üzenetére


bpx
őstag

Publikus, ingyenes a repository [link]. Alapból ez van beállítva és ezt próbálja használni, nem is értem az ULN hogyan jött.
Az ULN a supporthoz jár + vannak benne olyan feature repo-k, amelyek a publikusban nincsenek, pl. Ksplice, vagy pl. termékspecifikus repo-k (Exadata).

(#979) Rowon válasza bpx (#978) üzenetére


Rowon
veterán

Na igen. Többek között a telepítés közben is volt pár user error részemről. Egy minimal GUI szervert telepítettem a workstation helyett. A repókra mindjárt ránézek.

Köszi!

Az emberiség két legnagyobb találmánya az írás és a mikrohullámú sütő.

(#981) Rowon válasza bpx (#978) üzenetére


Rowon
veterán

Az EPEL repót tudtam csak hozzáadni, valamit szerintem elcseszek rendesen. De éppenséggel az is elég, mert sok hasznos dolog van rajta. Azon kívül nekem hót üres volt a Gnome Software, csak egy pár Gnome csomagot láttam.

Az emberiség két legnagyobb találmánya az írás és a mikrohullámú sütő.

(#982) bpx válasza Rowon (#981) üzenetére


bpx
őstag

Ott vannak a .repo fájlok az /etc/yum.repos.d alatt, ezek automatikusan jönnek a megfelelő oraclelinux-release-* csomaggal (el8, el9), amin meglepődnék, ha nem települt volna, de ha mégsem, akkor ugye pótolható.

Azt, hogy a GUI mit mutat, nem tudom, soha nem használom ilyenre, telepítve sincs.

(#984) Rowon válasza bpx (#982) üzenetére


Rowon
veterán

Nagy valószínűséggel ez lehetett a gond nálam is, hogy én a guit figyeltem.

Az emberiség két legnagyobb találmánya az írás és a mikrohullámú sütő.

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Oracle topic
Copyright © 2000-2024 PROHARDVER Informatikai Kft.