ORACLE ORDBMS adminisztrációs feladatok 6. rész dr. Kovács László 2004.

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Adatbázis alapú rendszerek
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
PL/SQL I. ADATBÁZIS ALAPÚ RENDSZEREK.  PL/SQL = Procedural Language/SQL  utasítást ; zárja le  PL/SQL blokk lezárása: /  kis- és nagybetű egyenértékű.
megismerése, mintaadatbázis létrehozása
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
Triggerek II. ADATBÁZIS ALAPÚ RENDSZEREK.  Az Oracle kifinomult módon támogatja a sorszámozások generálását  Szekvencia: olyan adatbázis-objektum, amely.
Adatbázis alapú rendszerek
Adatbázis rendszerek II.
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Készítette: Sárközi Anikó
VFP programozása report készítése menü készítése dinamikus elemek
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
ORACLE ORDBMS adminisztrációs feladatok 2. rész dr. Kovács László 2004.
6. előadás: PHP-MySQL Barabás Péter
ADATBÁZISOK
ADATBÁZISOK
ADATBÁZISOK
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
Az Input-Output használata Az input-outputot a nyelv előredefiniált csomagokon keresztül valósítja meg. Mindegyik csomag az Ada alapcsomag gyereke.
6. előadás Hatókör, láthatóság, élettartam. Változók leképzése a memóriára. Blokkszerkezetes nyelvek. Kivételkezelés.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
Az SQL nyelv alapjai.
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK / 18.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
SQL – OLAP 5. óra. Personal Express programozása Saját rutinok, függvények készíthetők DEFINE nev PROGRAM vtípus EDIT nev nev ” megjegyzés VARIABLE változó.
Felhasználók és jogosultságok
Készítette: Tóth Ervin
Objektum orientált programozás a gyakorlatban
Készítette: Lipp Marcell
Turbo Pascal Indítás: C:\LANGS\Turbo Pascal Turbo Pascal.
SQL.
2006. október 30.Markó Tamás, PTE TTK1 Az Oracle SQL 9. Triggerek és tárolt eljárások. Kliens oldali programok.
Web fejlesztés V. Illés Zoltán ELTE Informatikai Kar
ORACLE ORDBMS adminisztrációs feladatok 3. rész dr. Kovács László 2004.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
Adatbázis-kezelés Tarcsi Ádám január. 15. MySQL és PHP.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
PL/SQL alapok Adatbázis-kezelés.
Adatbázis rendszerek II
Ma az un. Relációs adatmodelleket használjuk.
5. gyakorlat Fleiner Rita.
1 Mivel foglalkozunk a laborokon? 7. hét: Do-Loop-Until Do-Until-Looptömbök Function 7. hét: Do-Loop-Until és Do-Until-Loop ciklusok. Egy indexes tömbök,
Webprogramozó tanfolyam
A Visual Basic nyelvi elemei
A 2. géptermi beszámoló VBA anyagának összefoglalása
Excel programozás (makró)
Az 5,6,7 laborok VBA anyagának összefoglalása
Oracle Label Security OLS. Szintek Kategóriák.
Adatbázis alapú rendszerek
PL/SQL gyakorlás Kalmár György.
Triggerek gyakorlás.
Excel programozás (makró)
Triggerek Kalmár György.
Adatbázis-kezelés (PL/SQL)
A CLIPS keretrendszer
PL/SQL alapok Adatbázis-kezelés.
Függvénysablonok használata
Előadás másolata:

ORACLE ORDBMS adminisztrációs feladatok 6. rész dr. Kovács László 2004

PL/SQL DECLARE BEGIN EXCEPTION END név típus := kezdőérték név CONSTANT típus := érték név t.m%TYPE név t%ROWTYPE TYPE tip IS TABLE OF tipus TYPE tip IS RECORD(.. ) WHEN.. THEN SQLCODE() SQLERRM() := IF.. THEN.. ELSE.. END IF WHILE.. LOOP.. END LOOP FOR I =.. LOOP … END LOOP EXIT WHEN Blokk felépítés

DECLARE I NUMBER; BEGIN FOR J IN 1..5 LOOP :R := J; END LOOP; EXCEPTION WHEN OTHERS THEN :R := -1; END;. / variable print r PL/SQL DECLARE TYPE TT IS RECORD ( kod NUMBER, nev CHAR(20) ); ember TT; BEGIB ember.kod := 3; ember.nev := 'Peter'; END;

CREATE FUNCTION PP1(P NUMBER) RETURN CHAR AS TYPE FT IS TABLE OF CHAR(10); FTABLA FT := FT(' ',' ',' ',' ',' ',' '); BEGIN FTABLA(3) := 'ALMA'; FTABLA(5) := 'SZILVA'; FTABLA(6) := 'EPER'; RETURN FTABLA(P); END;. / variable r number; execute :r := pp1(1); print r PL/SQL

Adatbázis adatok kezelése SELECT.. INTO valt FROM.. DECLARE CURSOR cnev(..) IS SELECT.. OPEN cnev(..) FETCH cnev INTO … CLOSE cnev FOR valt IN cnev LOOP … END LOOP UPDATE.. SET …WHERE … DELETE FROM … WHERE …

CREATE FUNCTION P (D NUMBER) RETURN NUMBER IS CURSOR E_cursor IS SELECT fizetes, jutalom FROM dolg WHERE kod = D; ossz_fiz NUMBER(11, 2) := 0; db NUMBER(10) := 1; BEGIN FOR dolgozo IN E_cursor LOOP dolgozo.jutalom := NVL(dolgozo.jutalom, 0); ossz_fiz := ossz_fiz + dolgozo.fizetes + dolgozo.jutalom; db := db + 1; END LOOP; RETURN ossz_fiz/db; EXCEPTION WHEN OTHERS THEN RETURN –1; END P;

PL/SQL Hibakezelés WHEN kod THEN WHEN OTHERS THEN DECLARE hh EXCEPTION RAISE hh WHEN hh THEN NO_DATA_FOUND VALUE_ERROR STORAGE_ERROR PROGRAM_ERROR ZERO_DIVIDE minta hibára

PL/SQL Beéptett függvények matematikai függvények ABSPOWER CEILROUND COSSIGN COSHSIN EXPSINH FLOORSQRT LNTAN LOGTRUNC MOD karakter kezelő függvények ASCIICHR CONCATINITCAP INSTRLENGTH LOWERLPAD LTRIMREPLACE RPADRTRIM SUBSTRTRANSLATE UPPER konverziós függvények CONVERT TO_CHAR TO_DATETO_NUMBER NVLDECODE dátum függvények SYSDATEROUND ADD_MONTH

minta

Csomag (package) Logikailag összetartozó tárolt eljárások, függvények és változók együttese Egységként töltődik be a memóriába Egyidejűleg többen is használhatják A csomagok LRU stratégiával tárolódnak Package szerkezete: - definiciós rész (interface megadása) - törzs rész (elemek részletes leírása) Private elemek: olyan eleme, mely csak a törzs részben szerepel, a definíciós részben nem Public elemek: szerepel a definíciós, interface részben Package létrehozása: 1. definíciós rész megadása 2. törzs megadása

Kezelő parancsok: CREATE PACKAGE csnev AS PL-SQL definíciók END csnev CREATE PACKAGE BODY csnev AS PL/SQL törzs END csnev DROP PACKAGE csnev hivatkozás csomag.tag csomag.tag(..)

CREATE PACKAGE BODY proba AS FUNCTION f1 (a IN CHAR) RETURN NUMBER AS BEGIN RETURN a + 1; END; PROCEDURE p1 (a IN NUMBER, b OUT NUMBER) BEGIN …. END; END proba; CREATE PACKAGE proba AS FUNCTION f1 (a IN CHAR) RETURN NUMBER; PROCEDURE p1 (a IN NUMBER, b OUT NUMBER) END proba;

Fontosabb beépített csomagok - DBMS_ALERTesemények, riasztások kezelése - DBMS_DDLDDL funkciók meghívása - DBMS_DEBUGdebug kezelő - DBMS_IOTláncolt rekordok lekérdezése - DBMS_JOBmunkaköteg kezelő rutinok - DBMS_LOBLOB kezelő rutinok - DBMS_LOCKzárolás kezelés - DBMS_LOGMNRnapló kelezés - DBMS_OLAPOLAP funkció kezelés - DBMS_OUTPUTüzenet bufferelés, kiírás - DBMS_PIPEpipe kezelő - DBMS_RANDOMvéletlen szám generátor

DBMS_RESOURCE_MANAGERerőforrás, QEP kezelő DBMS_ROWIDROWID kezelő - DBMS_SESSIONbejelentkezések kezelése - DBMS_SNAPSHOTsnapshot kezelő - DBMS_SPACEsegment kezelő - DBMS_SQLdinamikus SQL - DBMS_TRACEPL/SQL trace kezelő - DBMS_UTILITYsegéd rutinok - UTL_FILEállomány kezelő rutinok - UTL_HTTPhttp hívások kezelése - UTL_SMTPlevél küldés kezelése - UTL_TCPalap TCP szolgáltatások köre Fontosabb beépített csomagok

JOB kezelő csomag DBMS_JOB SUBMIT Procedureúj munkaköteg létrehozása REMOVE Proceduremunkaköteg megszüntetése CHANGE Proceduremunkaköteg paraméterek változtatása NEXT_DATE Procedurekövetkező futtatási időpont beállítása INTERVAL Procedurefuttatások közötti időpont beállítása BROKEN Proceduremunkaköteg letiltása RUN Proceduremunkaköteg futtatása BEGIN DBMS_JOB.SUBMIT(:jobno, ‘PP1(2);' SYSDATE, 'SYSDATE + 1'); commit; END;

Üzenet kiírás DBMS_OUTPUT(PLSQL: SET SERVEROUTPUT ON) ENABLE üzenet kiírás engedélyezés DISABLE üzenet kiírás letiltás PUT_LINE sor kiírása a bufferbe NEW_LINE sor lezására GET_LINE sorok kiolvasása a bufferből sql>SET SERVEROUTPUT ON sql>EXECUTE PP(‘OPEL’); CREATE PROCEDURE PP(X IN CHAR) AS V NUMBER; BEGIN SELECT MAX(AR) INTO V FROM AUTOK WERE TIPUS=X DBMS_OUTPUT.PUT_LINE(‘MAX = ' || TO_CHAR(V)); END;

Állománykezelés megadott könyvtárban kell elhelyezni az állományt init.ora : UTL_FILE_DIR UTL_FILE FOPEN file megnyitása IS_OPEN nyitott-e a file? FCLOSE file lezására FCLOSE_ALL minden file zására GET_LINE egy sor olvasása PUT egy sor kiírása NEW_LINE sorvégjel kiírása PUT_LINE sor kiírás sorvéggel FFLUSH buffer ürítése kiírással FOPENállomány nyitása

minta

Dinamikus SQL DBMS_SQL OPEN_CURSOR új kurzor nyitása SQL parancshoz PARSE az SQL parancs értelmezése BIND_VARIABLE változó kötése (input) DEFINE_ARRAY fogadó tömb definiálása (output) EXECUTE kurzor futtatása FETCH_ROWS sor beolvasása a kurzorból COLUMN_VALUE beolvasott rekord egy mező értékének lekérdezése CLOSE_CURSOR kurzor lezárás LAST_ROW_COUNT beolvasott sorok száma

CREATE OR REPLACE PROCEDURE demo(salary IN NUMBER) AS cursor_name INTEGER; rows_processed INTEGER; BEGIN cursor_name := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(cursor_name, 'DELETE FROM emp WHERE sal > :x', dbms_sql.native); DBMS_SQL.BIND_VARIABLE(cursor_name, ':x', salary); rows_processed := DBMS_SQL.EXECUTE(cursor_name); DBMS_SQL.CLOSE_CURSOR(cursor_name); EXCEPTION WHEN OTHERS THEN DBMS_SQL.CLOSE_CURSOR(cursor_name); END;

begin c := dbms_sql.open_cursor; dbms_sql.parse(c, 'select n from t order by 1', dbms_sql); dbms_sql.define_array(c, 1, n_tab, 10, indx); d := dbms_sql.execute(c); loop d := dbms_sql.fetch_rows(c); dbms_sql.column_value(c, 1, n_tab); exit when d != 10; end loop; dbms_sql.close_cursor(c); exception when others then if dbms_sql.is_open(c) then dbms_sql.close_cursor(c); end if; end;