sql >> Databáze >  >> RDS >> Oracle

Co jsou záznamy PLSQL v Oracle

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


  1. Proč druhý dotaz T-SQL běží mnohem rychleji než první, když je volán službou Reporting Services 2005 ve webové aplikaci

  2. Pořiďte si svůj vlastní cloud dostupný pro DigitalOcean

  3. Proč MySQL hlásí chybu syntaxe na FULL OUTER JOIN?

  4. #1273 - Neznámé řazení:'utf8mb4_unicode_ci' cPanel