Záznamy Oracle PLSQL
- PLSQL záznamy jsou složené datové typy. Jde o skupinu souvisejících datových položek jako pole, z nichž každé má svůj vlastní název a datový typ.
- Záznamy PL/SQL mají podobnou strukturu jako řádek v databázové tabulce. Každý skalární datový typ v záznamu obsahuje hodnotu.
- Záznam se skládá z komponent libovolného skalárního typu, záznamu PL/SQL nebo typu tabulky PL/SQL.
- Lze s nimi manipulovat jako s jednou jednotkou. Záznamy mohou mít libovolný počet polí.
Jak deklarovat záznamy Oracle PLSQL
( A)Záznam PLSQL definovaný uživatelem
DECLARE TYPE employee_record_type IS RECORD (emp_id NUMBER(10) NOT NULL, dept_no dept.deptno%TYPE, nаme varchar2(20), hire_dаte DATE := SYSDATE Last_name varchar2(20) ); employee_record employee_record_type;
(1) Pro záznam nejsou žádné předdefinované datové typy jako pro skalární datový typ. Musíte tedy nejprve vytvořit a poté přiřadit
(2) Každé pole v záznamu má jedinečný název a specifický datový typ
(3) %TYPE se používá k deklaraci proměnné, která je stejného typu jako sloupec zadané tabulky.
(4) používáme TYPE . . . Příkaz RECORD k vytvoření vlastního typu záznamu je, když pole vašeho záznamu musí být typu specifického pro PL/SQL, jako je BOOLEAN. Pokud použijete %ROWTYPE, datové typy všech polí budou omezeny na typy SQL
(5) Záznamy jsou samy o sobě datové typy specifické pro PL/SQL, takže další příjemnou vlastností uživatelsky definovaných typů záznamů je, že můžete definovat typ záznamu jako pole v jiném typ záznamu
DECLARE TYPE emp_phone IS RECORD ( Stdcode PLS_INTEGER, phn_number PLS_INTEGER, extension PLS_INTEGER ); TYPE contact_phone IS RECORD ( day_phone# emp_phone, eve_phone# emp_phone, cell_phone# emp_phone ); sales_rep contact_phone;
B) Můžeme také definovat záznam jako typ řádku tabulky
DECLARE sales_data_rec apps.sales_data%ROWTYPE; |
1) To nám umožňuje deklarovat záznam na základě kolekce sloupce v tabulce nebo pohledu
2) K deklaraci databázové tabulky používáme prefix %ROWTYPE
3) Pole v záznamu převezmou svůj název a datový typ ze sloupce tabulky
C) Pro deklaraci záznamu, který má stejnou strukturu jako příkaz SELECT v kurzoru, můžeme také použít %ROWTYPE.
To je zvláště užitečné pro načítání buď podmnožiny sloupců z tabulky nebo sloupců z více tabulek.
DECLARE CURSOR emp_cur IS SELECT lastname, age,firstname FROM employees; l_employee emp_cur%ROWTYPE;
Kdykoli načítáte data z kurzoru do proměnných PL/SQL, měli byste deklarovat záznam založený na tomto kurzoru pomocí %ROWTYPE a načíst jej do tohoto záznamu. Tímto způsobem, když a pokud se změní seznam SELECT kurzoru, počet a typ polí v záznamu se odpovídajícím způsobem změní a vše zůstane synchronizováno.
Jak předávat hodnoty záznamům Oracle PLSQL
Syntaxe | Použití |
rec_name.col_name :=value; | Přímé přiřazení hodnoty konkrétnímu sloupci záznamu. |
rec_name.column_name :=value; | Přímo přiřadit hodnotu konkrétnímu sloupci záznamu, pokud je záznam deklarován pomocí %ROWTYPE. |
SELECT sloupec1, sloupec2 INTO rec_name.col_name1, rec_name.col_name2 FROM table_name [klauzule WHERE]; | Přiřazení hodnot každému poli záznamu z databázové tabulky. |
SELECT * INTO název_záznamu FROM název_tabulky [klauzule WHERE]; | Přiřazení hodnoty všem polím v záznamu z databázové tabulky. |
název_proměnné :=název_záznamu.název_souboru; | Získání hodnoty ze sloupce záznamu a její přiřazení k proměnné. |
Musíte si přečíst tyto další příspěvky PLSQL
Struktura a typy bloků Oracle PLSQL
Otázky k rozhovoru pro Oracle plsql
Rychlé výukové programy pro Oracle sql a plsql