Основы (асослар)
Download 0.95 Mb.
|
PL-SQL Маъруза матни
- Bu sahifa navigatsiya:
- Ўзгарувчи ва ўзгармасларни эълон қилиш
- %ROWTYPE ишлатиш
- Хамроҳ номларни ишлатиш
Ўзгарувчи ва ўзгармасларни эълон қилишСизнинг дастурингиз қийматларни ўзгарувчилар ва ўзгармасларда сақлайди. Сиз ўзгарувчи ва ўзгармасларни PL/SQL блоки, қисмдастур ва пакетларнинг эълон қилиш қисимида эълон қилишингиз мумкин. birthday DATE; emp_count SMALLINT := 0; pi REAL := 3.14159; radius REAL := 1; area REAL := pi * radius**2; birthday DATE; birthday DATE := NULL; credit_limit CONSTANT REAL := 5000.00; blood_type CHAR := 'O'; blood_type CHAR DEFAULT 'O'; hours_worked INTEGER DEFAULT 40; employee_count INTEGER := 0; acct_id INTEGER(4) NOT NULL := 9999; credit REAL(7,2); debit credit%TYPE; balance NUMBER(7,2); minimum_balance balance%TYPE := 10.00; my_dname scott.dept.dname%TYPE; %ROWTYPE ишлатиш%ROWTYPE атрибути жадвал қатори кўринишидаги ёзув турини эълон қилишга имкон беради: DECLARE
CURSOR c1 IS SELECT deptno, dname, loc FROM dept; dept_rec c1%ROWTYPE; ............................................................ emp_rec.ename := 'JOHNSON'; emp_rec.sal := emp_rec.sal * 1.15; .............................................................. CREATE PACKAGE emp_actions AS CURSOR c1 RETURN emp%ROWTYPE; -- declare cursor specification ... END emp_actions; CREATE PACKAGE BODY emp_actions AS CURSOR c1 RETURN emp%ROWTYPE IS -- define cursor body SELECT * FROM emp WHERE sal > 3000; ... END emp_actions; Езувни ҳамма майдончаларини бирданига 2 хил вариантда тўлдириш мумкин. I вариант: DECLARE dept-rec1 dept % ROWTYPE: dept-rec2 dept % ROWTYPE; CURSOR C1 IS SELECT deptno, dname, loc FROM dept; dept-rec3 C1 % ROWTYPE; dept-rec4 C1 % ROWTYPE; BEGIN ... dept-rec 1: = dept-rec 2; dept-rec 4: = dept-rec 3; END dept-rec 2: = dept-rec 3; нотўғри! II вариант: А) DECLARE dept-rec dept % ROWTYPE ... BEGIN SELECT deptno, dname , loc INTO dept-rec FROM dept WHERE deptno =30; ... Б) INSERT INTO dept VALVES (dept-rec1 ); -- нотўғри Хамроҳ номларни ишлатишИфодалар қатнашган курсор қаторларига мурожаат қилиш қилиш учун , уларни олдин албатта содда ҳамроҳ номлаш зарур: DECLARE CURSOR my_cursor IS SELECT sal + NVL (comm,0) wages, ename FROM emp: my-rec my_cursor % ROWTYPE; BEGIN OPEN my_cursor; LOOP FETCH my_cursor INTO my-rec EXIT WHEN my_cursor % NOT FOUND; IF my_rec.wages > 2000 THEN. INSERT INTO temp VALVES (NULL, my_rec.wages, my-rec.ename); END IF; END LOOP: CLOSE my_cursor; END Download 0.95 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling