Hirdetés

2024. június 9., vasárnap

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Oracle topic

Hozzászólások

(#851) sutszi


sutszi
veterán

Össze kell dobnom pár teszt user-t. Van egy "minta" user. Gyakorlatilag ezt kéne sokszorosítanom.

Mi az egyszerű workaround erre? (Neten találtam mindenfélét...de nem kilométer hosszú script-ek vannak, azt meg nem futtatom vakon)

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

(#852) bpx válasza sutszi (#851) üzenetére


bpx
őstag

Nincs egyszerű workaround. A script bonyolultsága is attól függ, hogy mennyi mindennel van összedrótozva a user.

Ez a minimum:

SELECT DBMS_METADATA.GET_DDL('USER', '...') FROM DUAL;
SELECT DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT','...') FROM DUAL;
SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','...') FROM DUAL;
SELECT DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT','...') FROM DUAL;
SELECT DBMS_METADATA.GET_GRANTED_DDL('TABLESPACE_QUOTA', '...') FROM DUAL;

[ Szerkesztve ]

(#853) sutszi válasza bpx (#852) üzenetére


sutszi
veterán

Köszi. Akkor hát ez van...

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

(#854) Ablakos


Ablakos
őstag

Van egy xmltype típusú oszlopot tartalmazó táblám. Hogyan tudom megfogni azt a rekordo(ka)t, amelyik nem érvényes xml típusú. Az xmlserialize elhasal valamelyiken.

(#855) adalbert1


adalbert1
veterán

12c OCP-n volt már valaki? Mennyire volt nehéz, elsőre sikerült átmennetek? Konkrétan 1Z0-067-re mennék, korábbi verziós OCA-ról upgrade vizsga.

(#856) bpx válasza adalbert1 (#855) üzenetére


bpx
őstag

2 kolléga is volt. Én az 1Z0-060-on voltam. Mindenki átment elsőre. Ezek azért nem vészesek.

(#857) adalbert1 válasza bpx (#856) üzenetére


adalbert1
veterán

11 OCP vizsgával kapcsolatban tapasztaltam azt, hogy pár ismerősöm az első próbálkozásnál elhasalt, talán leginkább azért, mert sok olyan dologgal is találkoztak, amivel a mindennapi munka során nem - de azért ez megnyugtató, hogy tanulással meglehet a dolog.
Szerintetek hosszú távon mennyire marad piacképes az Oracle tudás? Érdemes más RDBMS-t is megtanulni mellette, vagy inkább egyéb skilleket fejleszteni (linux-unix, vagy scriptelés, programozás)?

(#858) bpx válasza adalbert1 (#857) üzenetére


bpx
őstag

Az OCA + OCP sajnos sokszor a magolásról szól, és nem a gyakorlatban hasznosítható tudásról. Nálunk is voltak olyanok, akik 3-4 éve ezzel foglalkoznak, aztán még a DBA1 vizsgán is megbuktak. Olyan dolgokat is kérdeznek, amelyeket amúgy semmi értelme megtanulni, mert kétévente egyszer van rá szükség, akkor is fél perc alatt megkeresem a doksiban. Pl. ilyen, hogy DBMS_X.Y procedúra hívásakor mi az egyik paraméter default értéke, ha nem töltöm ki. Nyilván a kérdés nem így hangzott el, de erre ment ki. Vagy olyat, amelyeket senki nem használ. Ilyenek, hogy Oracle Secure Backup, kit érdekel, mi köze van egyáltalán az általános adatbázis adminisztrációhoz, a vizsgán kívül nem is találkoztam vele sehol, még neten blogokban sem, nemhogy valós ügyfeleknél. Ráadásul kint vannak a neten a dumpok, bennük a kérdések + válaszok, ezért sem érzem az igazinak ezeket a vizsgákat.

Mondjuk 10 évig még piacképes, egy csomó rendszer még akkorra sem fog kikopni, most is vannak bőven új fejlesztések, rendszerek. De a 20-ban már nem lennék biztos, de ez csak a saját véleményem. Vagy ugye nagyon jónak kell lenni, és nem lemorzsólodni az átlaggal. Minél többet foglalkozom vele és találom meg a hiányosságokat, hibákat, hanyag megoldásokat, annál inkább kiábrándulok belőle. Na meg az Oracle megítélése is egyre negatívabb én úgy érzem (licencelés, support). Sokszor úgy érzem, hogy az itt összegyűlt tapasztalatokat inkább valami nyílt forrású projektben kellene kamatoztatni, ötleteket megvalósítani, mert itt esélytelen, hogy valaha normálisan meg lesz csinálva, ezen a szinten már csak a pénzről szól az egész. Érdemes mást is tanulni mellette, én MSSQL-t kezdtem el, meg PostgreSQL-t, ebből szerintem inkább az utóbbi érdekes, mert rengeteg helyen használnak valami nagy drága adatbáziskezelőt, miközben ez is elég lenne.

Az egyéb skillek meg, hogy linux-unix, scriptelés - ez alap lenne egy DBA-nak. Ismerek olyan DBA-kat, akik semmi mást nem csinálnak, csak előre legyártott scripteket futtatnak (legyen az SQL vagy bash, perl, batch, stb.), meg forgatókönyvek mentén csinálnak végig üzemeltetési feladatokat, aztán ha a script nem fut le, vagy valamelyik lépésnél hiba jön, akkor pánik és nem tudják megoldani. Nem tudják mit csinálnak, de nekik van jogosultságuk megcsinálni, ők tudnak gombot nyomni, ennek így nincs sok értelme. A fordított iránynak van, hogy tudom mit csinálok, és tudom scriptekkel automatizálni, vagy tudom a más scriptjét jól használni. A linux-unix nyilván nem olyan szinten kell, mint egy olyan profinak, akinek az az elsődleges feladata, de azért egy multipath, udev konfig vagy strace/truss futtatása és output értelmezése azért ne jelentsen már gondot. Végül a programozás, na az is egy jó téma. Én úgy vettem észre, hogy rengeteg fejlesztő nem ismeri az adatbázisokat olyan szinten, ahogy kellene ahhoz, hogy hatékony kódot tudjon írni hozzá.(A "kedvencem" mondjuk az, amikor van valami ORM, aztán el is hiszik, hogy hát az majd megold mindent, és "öröm" nézni mit generált...) Ez nem feltétlenül gond, hiszen nem ez az elsődleges feladata, de akkor legalább kérjen segítséget valakitől, aki ismeri. És itt jön képbe a DBA, aki ismeri az adatbázisokat, és ha rálát a fejlesztésre is, akkor sokkal jobban együtt tud működni. Láttam olyan döntéseket, ami miatt a rendszer lassú volt vagy használhatatlan. Ha a tervezésnél lett volna egy DBA tudással rendelkező ember, azonnal megvétózta volna, és sokkal hatékonyabban működött volna minden.

(#859) adalbert1 válasza bpx (#858) üzenetére


adalbert1
veterán

Ez egy szépen összeszedett, hosszú hozzászólás, köszönet érte.

Igen, OCA-nál én is éreztem, hogy kicsit elrugaszkodott a való élettől, ezek szerint az OCP sem változott... Arra kíváncsi lennék, hogy mondjuk az OCM milyen lehet, ha jól tudom ott azért gyakorlati problémát kell megoldani - persze attól a szinttől elég messze érzem magam, illetve elég kevés ember tette le azt a vizsgát, kérdés, hogy vajon azért-e, mert ők se látják túl sok értelmét már annak a certnek, vagy csak nem akartak olyan mélyen foglalkozni a témával, vagy csak ennyi pénzt nem akartak certre költeni.

A licencelés és support témával teljesen egyetértek, scriptelés illetve linux/unix témában pedig úgy gondolom, hogy ha van külön OS team, akkor az hátráltató tényező lehet az ember fejlődését tekintve, illetve scriptelésnél ugyanez, ha van már egy kifejlesztett scriptgyűjtemény, és kevés önálló munkát kell beletenni, max. értelmezni őket ha valami hiba van, akkor szintén nehéz fejlődni.

Fejlesztés terén pedig érdemes lehet mondjuk application dba irányba elmenni, vagy csak fejlesztőnek? Elvégre, ha oracle db ki is kopik, szoftvereket akkor is fognak fejleszteni (nagyon leegyszerűsítve a gondolatmenetet). Illetve sokszor azt látni, hogy egyértelműen előnyt jelentő dolgokat nem használnak (pl. bind variables), vagy már az adatszerkezet sincs jól átgondolva.

Illetve, ami kicsit a hosszú távú oracle dba-ság ellen szól számomra, az az, hogy az oracle minden verzióba pár új advisort fejleszt, így kicsit leegyszerűsítve, verzióról-verzióra egyre inkább csak advisorokat klikkelés a munka, egyre kevesebb gondolkodással, tanulási lehetőséggel (persze ez magával vonja azt is, hogy így egy dba több db-vel tud foglalkozni).

(#860) bpx válasza adalbert1 (#859) üzenetére


bpx
őstag

Az OCM az egy 2 napos gyakorlati vizsga, ki vannak írva a témakörök, azokon megy végig. A vizsgán nem kell semmi nagyon bonyolultat csinálni, egyszerű feladatok vannak, azokból sok, de kevés idő van rá, ráadásul offline doksi van csak, ami nem kereshető, tehát elég jól kell ismerni, hogy mi hol van benne. Nincs idő a hibákra, meg arra sem, hogy valamit még nem csináltam korábban, akkor gyorsan megtanulom a doksiból. Az OCM nem arról szól, hogy valaki mélyen ért az Oracle adatbázisokhoz, hanem egy átlag DBA-tól elvárható dolgokat jól tudja használni a gyakorlatban is. Októberben voltam vizsgázni, előtte nehezebbre számítottam a hallottak alapján. Én ennek a vizsgának látom leginkább értelmét, itt tényleg tudni kell a gyakorlatot, az összes többi elméleti vizsgával ellentétben. Az ára, na az igen, az elég magas, leginkább a 3 kötelező tanfolyam miatt. Maga a végső vizsga, a repülőjeggyel meg szállással együtt is olcsóbb volt, mint mondjuk egy 5 napos tantermi DBA tanfolyam.

Jó lehet az "apps dba", meg a fejlesztés is szerintem. Én talán az utóbbit választanám, nincs túl jó véleményem az egész Oracle Fusion Middleware káoszról meg az összevásárolt mindenféle termékekről. Az egy fejlesztőnél óriási előny, hogy ismeri is az adatbázist, a használható technológiákat, képes hatékony SQL-t írni. A legtöbb munkám erről szól, hogy SQL-eket vagy PL/SQL kódokat kell rendbe szedni, hangolni, hogy hatékonyan, vagy legalább elfogadható sebességgel fusson, kevesebb infrastruktúrális kérdés vagy probléma van.

Az Advisorokban én nem hiszek, azoktól nem tartanék. Ezek még most is ott tartanak, hogy "Futtattuk a * Advisort, megcsináltuk a javaslatokat, de nem lett jobb semmivel, rá tudsz nézni?". Akkor már inkább az automatizálás meg a cloud őrület. Azok miatt lehet szükség egyre kevesebb dba-ra szerintem.

(#861) lakisoft válasza bpx (#860) üzenetére


lakisoft
veterán

és meglett a cert?

(#862) bpx válasza lakisoft (#861) üzenetére


bpx
őstag

Igen, 11g.
Teljes 12c vizsga még nincs, csak upgrade, amivel korábbi verziójú certet lehet upgrade-elni, az meg nekem nem volt. Viszont amikor jelentkeztem (tavaly augusztus), akkor még a 12c vizsga sem volt sehol. Az upgrade vizsgára még szeretnék a következő hónapokban elmenni.

[ Szerkesztve ]

(#863) sutszi válasza bpx (#862) üzenetére


sutszi
veterán

Azért jó látni, hogy van élő ember OCM-el. :)

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

(#864) lakisoft válasza bpx (#862) üzenetére


lakisoft
veterán

Grat. :R

(#865) adalbert1 válasza bpx (#860) üzenetére


adalbert1
veterán

Gratulálok, nem gondoltam, hogy a ph!-ra ír egy ilyen végzettségű ember :)
Egy olyan kérdésem lenne még, hogy így utólag visszagondolva a karrier utadra, te hogy érzed, mi volt az, amiből a legtöbbet tanultál, amitől a legjobban tudtál fejlődni? A munkádon kívül egy nap még mennyit foglalkoztál a témával?

Talán még a mindennapi üzemeltetésnek a performance tuning a leginkább érdekes része - de ahogy látom, kb. ez jár a legnagyobb kihívásokkal is.
Ti milyen anyagokat javasolnátok? Tanfolyamon voltam, az egész jó volt, de 1 hét alatt leginkább csak a felszínt karcolgattuk, illetve, ami kifejezetten nem tetszik az oracle tanfolyamaiban, az a gyakorlati rész, kb. csak végigcsinálja az ember a megoldást (úgy, hogy a tempó miatt sokszor nincs ideje eleget elgondolkozni rajta), sokkal hasznosabb lenne egy olyan megközelítés, hogy önállóan kell feladatokat megoldani - viszont akkor kb. 1 hónapos lehetne a tanfolyam :)
A legjobb valami hasonló rendszer lenne, ti tudtok esetleg a tanfolyamhoz hasonló előre elkészített scriptekről/scenáriókról, amin lehetne otthon gyakorolni, jobban belemélyedni? Vagy akkor jár az ember a legjobban, ha magának írja meg a különböző load generáló scripteket/scenáriókat (talán ebből lehetne a legtöbbet tanulni, de ez a legidőigényesebb is)?

(#866) bpx válasza adalbert1 (#865) üzenetére


bpx
őstag

Abból tanultam a legtöbbet, hogy az itthoni gépemen virtuális gépekben feltelepítettem és kipróbáltam egy csomó mindent, ezt a mai napig így csinálom.
Erre az is kiváló ösztönző erő volt, hogy 24/7 telefonos supportot is nyújtunk az ügyfeleknek, és 5 éve, amikor kezdtem, előtte azt sem tudtam mi az az Oracle adatbázis, de 2-3 hónap után már megkaptam a telefont úgy, hogy hajnali 2-kor is hívhatnak azzal, hogy összeborult a cluster, én meg féltem, hogy hozzá sem tudok szólni.
Ezen kívül a fórumokon mások kérdéseire válaszolok, pl. régebben a hivatalos Oracle fórumon, most már inkább stackexchange-en. Ezeken a helyeken sok olyan problémával találkozni, amelyeket még akkor is meg lehet válaszolni, ha nem tudja az ember rögtön a választ, de ha rákeresek a neten vagy kipróbálom a saját játszós környezetben, akkor már igen, és közben is tanultam valamit. Sokszor volt olyan, hogy munka közben jött valami probléma vagy kérdés, amivel már korábban így találkoztam.
Blogokból is lehet még tanulni, van a világon több ezer Oracle témájú blog, ezek többsége szerintem teljesen felesleges, mert csak a dokumentációt vagy egymást ismétlik, de van néhány jó, amit érdemes követni meg olvasni.
Végül vannak mindenféle könyvek, ezekből is van néhány, ami tényleg jó, a többi az inkább alap szintű.
Ezeket napközben munkahelyről sokszor szoktam csinálni, mert ott rengetegszer nincs elég kihívás meg feladat, de szoktam vele itthon este, meg hétvégén is foglalkozni, ez teljesen változó, hogy mikor mennyit.

A performance tuningot csinálni kell, arra nincs igazán jó tanfolyam szerintem. Az tanfolyamok mindenből csak az alapokat mutatják meg. Ha nem lehet csinálni, akkor meg blogok, könyvek. Az legalább ingyen van vagy sokkal olcsóbb, és ott szoktak valós esetekről is írni. Egy igazán jó tananyagot összerakni óriási munka lenne szerintem.

(#867) Ablakos


Ablakos
őstag

ora-22804 hibával kapcsolatban van valakinek tapasztalata?
A tényállás: synonymán keresztül távoli adatbázis táblájába megy az insert egy combos selectből. A fenti hibaüzenet keletkezik azonnal. A tábla oszlopai varchar2, date, number típusuak. Minden selectált tábla lokális.

A select eredménye (kb.40perc) munkatáblába kirakva és azt insertálva hibamentesen működik minden.

Mit láthat az oracle ebben a scriptben (amit én nem veszek észre), hogy azonnal kivételt generál?

[ Szerkesztve ]

(#868) sutszi válasza Ablakos (#867) üzenetére


sutszi
veterán

Ilyen távoli DB-s mókát még nem csináltam, mostanában kellet userek között synomym-os objektummegosztást csinálnom. Szóval ott GRANT is kellett a tulajdonos user részéről, hogy az aki a synonym-et létrehozza, hozzá is tudjon férni. Gondolom távoli DB-nél is kell GRANT?!

[ Szerkesztve ]

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

(#869) bpx válasza Ablakos (#867) üzenetére


bpx
őstag

Mutasd a scriptet meg a táblákat, mert a hibaüzenet azért elég egyértelmű.

(#870) Ablakos válasza bpx (#869) üzenetére


Ablakos
őstag

Sajnos már nincs metalinkes hozzáférésem, nem tudok ott fórumozni. Nem tudom mi a baja a selectemmel. Privibe tettem a scriptet, nem akarom a világba kürtölni.

(#871) Ablakos válasza sutszi (#868) üzenetére


Ablakos
őstag

Biztosan nincs grant és egyéb ilyen nyűgje, mert egy locális tábla tartalma simán átmegy a távoli táblába. Csak az én selectemre pikkel. :((

(#872) bpx válasza Ablakos (#870) üzenetére


bpx
őstag

Ok, leegyszerűsítettem, hogy csak a lényeg legyen benne, a table function a baja.

drop type t_tab;
drop type t_row;

create type t_row as object (id number, description varchar2(50));
create type t_tab is table of t_row;

create or replace function f1 (p_rows in number) return t_tab as
l_tab t_tab := t_tab();
begin
for i in 1 .. p_rows loop
l_tab.extend;
l_tab(l_tab.last) := t_row(i, 'Description for ' || i);
end loop;

return l_tab;
end;
/

select * from table(f1(3));

ID DESCRIPTION
---------- --------------------------------------------------
1 Description for 1
2 Description for 2
3 Description for 3

create database link qaz connect to bp identified by bp using 'qaz';

desc t1@qaz

Name Null? Type
----- -------- -------
ID NUMBER

Van tehát egy T1 táblám egy távoli adatbázisban. Na most hiába próbálsz akármit insertelni, a table function miatt rögtön hibát dob (a szinonímát kihagytam, mert az most nem lényeg), tehát pl. 1 darab 1-es számot szeretnék insertelni, már az sem megy:

SQL> insert into t1@qaz select 1 from dual where 1 in (select id from table(f1(1)));
insert into t1@qaz select 1 from dual where 1 in (select id from table(f1(1)))
*
ERROR at line 1:
ORA-22804: remote operations not permitted on object tables or user-defined type columns

Látszik, a beszúrt érték egy sima szám lenne, de az utasításban van egy table function, az adatbázis ezt ellenőrzi és rögtön hibát dob rá. Kerülő megoldás lehet a temp táblás módszer, amit írtál, vagy simán egy soronkénti insert PL/SQL-ből, de ha sok sort gyűjt össze a lekérdezésed, akkor azt nem kellene soronként csinálni (a távoli objektumokra nem megy a bulk insert).

SQL>
begin
for c in (select 1 as id from dual where 1 in (select id from table(f1(1))))
loop
insert into t1@qaz values (c.id);
end loop;
commit;
end;
8 /

PL/SQL procedure successfully completed.

SQL> select * from t1@qaz;

ID
----------
1

[ Szerkesztve ]

(#873) Ablakos válasza bpx (#872) üzenetére


Ablakos
őstag

Soros feldolgozást semmiképp nem akarok. Munkatábla és insert lesz az út. Nagyon köszönöm a segítséget! :R

(#874) Gyb001


Gyb001
senior tag

Sziasztok.
Több napja nem tudok rájönni hogy mi lehet a probléma. (Oracle apex)
Egy egyszerű eljárást akarok csinálni ami adatokat visz föl egy táblába, de sehogy nem jövök rá hogy mi a probléma

Create table Vasarlo (
Vid char(3) primary key,
Nev varchar(30) not null,
Asztal varchar(30) not null,
Nemzet char(3)
);

create or replace procedure VasarloFelvisz (VID in char, NEV in char, ASZTAL in char, NEMZET in char) is
BEGIN
INSERT INTO KATEGORIA VALUES (VID, NEV, ASZTAL, NEMZET);
END;

begin
VasarloFelvisz(1, 'Frank Watkins', 42, 'hu');
end;

ORA-06550: line 2, column 1:
PLS-00905: object GYB.VASARLOFELVISZ is invalid
ORA-06550: line 2, column 1:
PL/SQL: Statement ignored

[ Szerkesztve ]

A bus station is where a bus stops. A train station is where a train stops. On my desk, I have a work station

(#875) bpx válasza Gyb001 (#874) üzenetére


bpx
őstag

Ha a tábla neve Vasarlo, akkor miért a KATEGORIA táblába megy az insert?

(#876) rum-cajsz válasza Gyb001 (#874) üzenetére


rum-cajsz
őstag

Zeratul kolléga már valószínűleg megfejtette, én még annyit tennék hozzá, hogy a hibaüzenet elég beszédes esetedben, konkrétan azt mondja, hogy a program amit futtatni akarsz hibás (invalid). Tehát a programot csak akkor tudod használni, ha hibátlanul befordult az adatbázisba. (VALID)
A programok állapotát megnézheted pl. a dba_objects rendszernézetben.

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

(#877) Gyb001 válasza bpx (#875) üzenetére


Gyb001
senior tag

Bakker :W Ezt hogy nem vettem észre :W

Azóta még megírtam többféle képen, Tudnátok segíteni hogy ezekben mi a probléma?
Tudom hogy az argumentumokkal van baja, de mi a gond?

CREATE OR REPLACE PROCEDURE VasarloFelvisz(rekord IN Vasarlo%ROWTYPE) IS
BEGIN
insert into Vasarlo values (rekord.Vid, rekord.Nev, rekord.Asztal, rekord.Nemzet);
END;

begin
VasarloFelvisz(1, 'Frank Watkins', 42, 'hu');
end;

ORA-06550: line 2, column 1:
PLS-00306: wrong number or types of arguments in call to 'VASARLOFELVISZ'
ORA-06550: line 2, column 1:
PL/SQL: Statement ignored

CREATE OR REPLACE PROCEDURE VasarloFelvisz(rekord IN Vasarlo%ROWTYPE) IS
CURSOR c IS SELECT vid FROM Vasarlo;
idv Vasarlo.vid%TYPE;
wrongID EXCEPTION;
talalt NUMBER := 0;
BEGIN
OPEN c;
LOOP
FETCH c INTO idv;
EXIT WHEN c%NOTFOUND;
IF rekord.vid = idv THEN
talalt := 1;
END IF;
END LOOP;
IF talalt = 1 THEN
INSERT INTO Vasarlo VALUES(rekord.VID, rekord.NEV, rekord.ASZTAL, rekord.NEMZET);
ELSE
RAISE wrongID;
END IF;
CLOSE c;
EXCEPTION WHEN wrongID THEN
dbms_output.put_line('Nincs ilyen azonosító');
END;

ORA-06550: line 2, column 1:
PLS-00306: wrong number or types of arguments in call to 'VASARLOFELVISZ'
ORA-06550: line 2, column 1:
PL/SQL: Statement ignored

Köszönöm. :)

A bus station is where a bus stops. A train station is where a train stops. On my desk, I have a work station

(#878) kemcso válasza Gyb001 (#877) üzenetére


kemcso
Ármester

A VasarloFelvisz egy Vasarlo%ROWTYPE-ot vár de te nem azzal hívod hanem a régi paraméterekkel.

(#879) bpx válasza Gyb001 (#877) üzenetére


bpx
őstag

Ha rekordot akarsz átadni a procedúrának, azt pl. így kell csinálni:

declare
l_vasarlo vasarlo%rowtype;
begin
l_vasarlo.vid := 1;
l_vasarlo.nev := 'Frank Watkins';
l_vasarlo.asztal := 42;
l_vasarlo.nemzet := 'hu';
VasarloFelvisz(l_vasarlo);
end;
/

(#880) Gyb001 válasza bpx (#879) üzenetére


Gyb001
senior tag

Rendben. Nagyon köszönöm a gyors segítséget. :R

A bus station is where a bus stops. A train station is where a train stops. On my desk, I have a work station

(#881) papasoft80


papasoft80
tag

Sziasztok!

CentOS 6.5 alatt használok virtuálisan egy 11.2-es Oracle-t. A külső kapcsolatok mennek rendesen egyedi porton. Az Enterprise Manager web-es felületére viszont nem tudok bejelentkezni(unable to connect). Amikor indítom a dbconsole-t (emctl start dbconsol) akkor sokáig várakozik, majd leáll azzal, hogy "failed".
Az adatbázis elindul rendesen és be is tudok jelentkezni, dolgozni is tudok benne.
A probléma lehet, hogy összefügg azzal, hogy néhány napja volt sajnos egy helyelfogyás. Azonban emlékeimben úgy él, hogy valamit régebben is trükközni kellett, hogy be tudjak lépni az ":5500/em"-be, de sajnos nem emlékszem már, hogy mi volt az. Több éve telepítettem a szervert és ritkán szoktam erre a felületre belépni.
A log-okat és a futó folyamatokat nézve úgy látom, mintha valami JAVA vagy hálózati hiba lenne, esetleg mindkettő, vagy a JAVA a hálózati hiba miatt döglik meg. A log-okban nem sikerül semmihez sem kapcsolódni a dbconsole-nak(Connection refused (error = 111)). Egy "JAVA <defunct>" pedig fut a háttérben változó CPU terheléssel 5-60%-ig amint megpróbálom elindítani a dbconsole-t, az adatbázis közben nem fut.
Van esetleg ötletetek, hogy mit tudok tenni?

Előre is köszönöm az időtöket!

(#882) bpx válasza papasoft80 (#881) üzenetére


bpx
őstag

Ennek általában az szokott a vége lenni, hogy miután végignézem a logokat és semmi nem derült ki belőlük, inkább újrakonfigurálom az egészet 2 paranccsal 20 perc alatt:

emca -deconfig dbcontrol db -repos drop
emca -config dbcontrol db -repos create

A history + ha volt valami custom EM konfig, az el fog veszni, mert a repositoryt eldobja + létrehozza üresen, de ha nagyon fontos, akkor persze neki lehet állni nyomozni.

[ Szerkesztve ]

(#883) papasoft80 válasza bpx (#882) üzenetére


papasoft80
tag

Köszönöm a gyors választ!
Titkon én is valami ilyet szerettem volna(újra létrehozni a konfigokat), de az az igazság, hogy nem igazán van időm mélyebben belemászni és attól féltek/féltem, hogy a jelenleginél is rosszabb állapotot okozok és nincs kedvem az egészet újrarakni.
Ha azt mondod, hogy ezeket lefuttathatom nyugodtan, akkor rendben, de azért esetleg megadnád, hogy melyik könyvtárakat mentem le, hogy kedvezőtlen esetben vissza tudjam állítani a jelenlegi félig rossz helyzetet?

(#884) bpx


bpx
őstag

A repository az adatbázison belül van, a SYSMAN séma.

A fájlrendszerben ide tartozó részek:

$ORACLE_HOME/$HOSTNAME_$ORACLE_SID
$ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_$HOSTNAME_$ORACLE_SID

(#885) peterszky


peterszky
őstag

Arra van lehetőség, hogy egy ütemezett jobnál beleírjak a log tábla (dba_scheduler_job_log nézet) additional_info mezőjébe?

What else you gonna do on a Saturday?

(#886) Gyb001


Gyb001
senior tag

Sziasztok.
Vajon ezek a triggerek miért akadályozzák meg az insert, update, delete műveleteket?

100 szor átnéztem de nem tudod rájönni.
JDBC(java)-vel kapcsolódok egy apex szerverhez.
Ha a triggerek nincsenek létrehozva akkor tudok törölni, beszúrni, módosítani. De ha létrehozom a triggerekt akkor ilyen hibakódot kapok. (ezt egy egyszerű delete okozta, ami triggerek nélkül jól működik. DELETE FROM Vasarlo where Vid =5)

a triggerekben használt napló tábla létezik, de mindig üres.

[ Szerkesztve ]

A bus station is where a bus stops. A train station is where a train stops. On my desk, I have a work station

(#887) bpx válasza Gyb001 (#886) üzenetére


bpx
őstag

Azért, mert a trigger invalid, és amikor futna, akkor megpróbálja automatikusan újrafordítani, de nem sikerül neki.

Ha belépsz a trigger tulajdonosaként, akkor a USER_ERRORS nézetben látszik, hogy miért invalid, vagy megfelelően magas jogosultságú más userként ALL_ERRORS vagy DBA_ERRORS nézetekben.

(#888) Gyb001 válasza bpx (#887) üzenetére


Gyb001
senior tag

:R
Köszönöm. Van egy hibakód, ebből már ki tudok indulni.
PLS-00103

[ Szerkesztve ]

A bus station is where a bus stops. A train station is where a train stops. On my desk, I have a work station

(#889) peterszky


peterszky
őstag

Bújtam a doksit, de vagy átcsúszott rajta a szemem, vagy csak simán béna voltam és rossz helyen kerestem, de nem találtam meg a választ a kérdésemre, hátha tudja valaki itt.

Ha beállítom a password verify function használatát egy adatbázisban (a DEFAULT profilra), akkor azok a jelszavak is lejárnak, amelyek egyébként olyan profilhoz tartoznak, ahol a PASSWORD_LIFE_TIME beállítása UNLIMITED?

What else you gonna do on a Saturday?

(#890) bpx válasza peterszky (#889) üzenetére


bpx
őstag

Miért járnának le? A 2 dolog másra való. A password verify function a jelszó komplexitásának ellenőrzésére van, nincs köze a lejárathoz.

(#891) peterszky válasza bpx (#890) üzenetére


peterszky
őstag

Ez tiszta, csak arra gondoltam, hogy ilyenkor elképzelhető, hogy a user jelszava alapesetben nem elég erős, ezért ha életbe lép a komplexitás megkövetelése, ezt ellenőrzés helyett kikényszeríti egy új jelszó bekérésével. De akkor nem, köszönöm!

What else you gonna do on a Saturday?

(#892) adalbert1


adalbert1
veterán

Szerintetek van jobb megoldás egy procedurán belül a varchar2 típusú bemeneti paraméterét nagybetűssé konvertálni, mint hogy az elején egy konstanst csinálok belőle, és utána azzal dolgozok tovább?
Jelenleg így nézne ki:
konstans1 := UPPER (paraméter)
?

(#893) Ablakos válasza adalbert1 (#892) üzenetére


Ablakos
őstag

Esetleg egy constant kulcsszó az értékadásod elé. A parameter listában nem megengedett az értékadás.

(#894) adalbert1 válasza Ablakos (#893) üzenetére


adalbert1
veterán

Igen, azt kifelejtettem (a procedúrába beleírtam korábban :B ) - ez nem a paraméter listában történne, hanem a deklarációs részénél a procedúrának, de akkor ezek szerint egyszerűbb módja szerintetek sincs, hogy nagybetűssé legyen konvertálva a bemeneti paraméter.

(#895) Ursache válasza adalbert1 (#894) üzenetére


Ursache
senior tag

miert gondolod hogy nem ez a legjobb, legegyszerubb?

https://www.youtube.com/watch?v=eIri9YLHpOg

(#896) adalbert1 válasza Ursache (#895) üzenetére


adalbert1
veterán

Igazából mivel üzemeltetéssel foglalkozom, így ritkán írok/javítgatok procedúrákat (meg úgy általában PL/SQL kódot), ez volt az oka a bizonytalanságnak. :)

Más kérdés: Orace DBA pozícióra jelentkezésnél szakmai interjún szerintetek nagyjából mire lehet számítani? Volt valamelyikőtök mostanában interjún, vagy szokott interjúztatni? Én legutóbb 4 éve voltam, és akkor 2nd level pozícióra, ahol kb. nulla tudást vártak el, szóval tapasztalatom szinte semmi nincs, ötleteim azért vannak: OCA és OCP kérdések, Data Guard vagy/és RAC kérdések, backup és recovery kérdések, stb? A kérdés, hogy milyen mélységben mennek bele, arra kíváncsiak vajon, hogy mit tudsz, vagy hogy mit nem (mondjuk mennyire kérdeznek rá egy olyan feature-re, amit kb. soha senki sehol nem használ, tehát jó eséllyel sok mindent nem jegyeztél meg róla, vagy hogy mondjuk valamelyik dbms package-be tartozó procedúráknak milyen paraméterei vannak -ezt meg jó eséllyel úgyis megnézed a leírásban-, stb)?

(#897) Beggar


Beggar
csendes tag

Sziasztok!
Érdeklődni szeretnék, hogy tudnátok ajánlani Apex fejlesztéshez szakirodalmat? Régóta foglalkozom webfejlesztéssel (PHP, Javascript, MySQL), de szeretnék Apex téren is tudást szerezni. Tudom, a MySQL nem Oracle, így abban is el kellene mélyülni, melyben természetesen el fogok, amennyit az Apex megkövetel. Bámilyen segítséget, ajánlást szívesen fogadok és köszönök előre minden segítséget!

(#898) adalbert1


adalbert1
veterán

Azt hiszem, hogy rá kellene feküdnöm a RAC tanulásra, ahogy nézegetem az álláshirdetéseket, a legtöbb helyen kérik :) . A tervem a hivatalos leírás elolvasása, és virtualbox-ban egy RAC buildelése (mi sajnos elég kevés RAC-ot üzemeltetünk, és azokat se mi buildeltük).

(#899) bpx válasza adalbert1 (#898) üzenetére


bpx
őstag

Nyugodtam, de egy ilyenből azért egyszerűbb: [link]

Szerda óta elérhető az on-premise 12.2 is OTN és E-delivery-ről.

Az ügyfelek nagy részénél szerintem egyébként tök felesleges a RAC.

[ Szerkesztve ]

(#900) RedHarlow


RedHarlow
aktív tag

Sziasztok, pár hete ismerkedem oracle 12c-vel és meg szeretném kérdezni, hogy nincs-e esetleg valami magyar anyagotok a paraméterekhez illetve alap dolgokhoz esetleg? Vagy valami kezdőknek szóló anyag?

[ Szerkesztve ]

Útvonal

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