Фойдаланувчи томонидан аниқланган турлар
PL/SQL блоки, қисмдастур ва пакетларнинг эълон қилиш қисмида сизх ўзингизни туростиларингизни аниқлашингиз мумкин. Намуналар келтирамиз:
DECLARE
SUBTYPE BirthDate IS DATE NOT NULL; -- based on DATE type
SUBTYPE Counter IS NATURAL; -- based on NATURAL subtype
TYPE NameList IS TABLE OF VARCHAR2(10);
SUBTYPE DutyRoster IS NameList; -- based on TABLE type
TYPE TimeRec IS RECORD (minutes INTEGER, hours INTEGER);
SUBTYPE FinishTime IS TimeRec; -- based on RECORD type
SUBTYPE ID_Num IS emp.empno%TYPE; -- based on column type
CURSOR c1 IS SELECT * FROM dept;
SUBTYPE DeptFile IS c1%ROWTYPE; -- based on cursor rowtype
Аммо, тур ўлчовини кўрсатиш мумкин эмас. Масалан қуйидаги эълонлар нотўғри бўлади:
DECLARE
SUBTYPE Accumulator IS NUMBER(7,2); -- illegal; must be NUMBER
SUBTYPE Delimiter IS CHAR(1); -- illegal; must be CHAR
Фойдаланувчи томонидан аниқланган турлар одатдагидек ишлатилади:
DECLARE
SUBTYPE Counter IS NATURAL;
rows Counter;
DECLARE
SUBTYPE Accumulator IS NUMBER;
total Accumulator(7,2);
DECLARE
temp NUMBER(1,0);
SUBTYPE Scale IS temp%TYPE;
x_axis Scale; -- magnitude range is -9 .. 9
y_axis Scale;
BEGIN
x_axis := 10; -- raises VALUE_ERROR
Берилганлар турларини ўзгартириш
Баъзан қийматларни бир турдан бошқа турга айлантиришга тўғри келади. Бу ишни ошкор ёки ошкормас тарзда амалга ошириш мумкин. Ошкор усулда ички қурилган функциялардан фойдаланиш мумкин
Ошкормас тарзда ўзгаритириш жадвали.
Do'stlaringiz bilan baham: |