Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czym są rekordy PLSQL w Oracle

Rekordy Oracle PLSQL

  • Rekordy PLSQL są złożonymi typami danych. Jest to grupa powiązanych elementów danych w postaci pól, z których każde ma własną nazwę i typ danych.
  • Rekordy PL/SQL mają strukturę podobną do wiersza w tabeli bazy danych. Każdy skalarny typ danych w rekordzie zawiera wartość.
  • Rekord składa się z komponentów dowolnego typu skalarnego, rekordu PL/SQL lub typu tabeli PL/SQL.
  • Można nimi manipulować jak pojedynczą jednostką. Rekordy mogą mieć tyle pól, ile potrzeba.

Jak zadeklarować rekordy Oracle PLSQL

( A)Rekord PLSQL zdefiniowany przez użytkownika

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) Nie ma predefiniowanych typów danych dla Record, tak jak dla skalarnego typu danych. Musisz więc najpierw utworzyć, a następnie przypisać

(2) Każde pole w rekordzie ma niepowtarzalną nazwę i określony typ danych

(3) %TYP służy do deklarowania zmiennej tego samego typu, co kolumna określonej tabeli.

(4) używamy TYPU . . . Instrukcja RECORD do tworzenia własnego typu rekordu ma miejsce, gdy pole rekordu musi być typu specyficznego dla PL/SQL, na przykład BOOLEAN. Jeśli użyjesz %ROWTYPE, typy danych wszystkich pól będą ograniczone do typów SQL

(5) Rekordy są same w sobie typami danych specyficznymi dla PL/SQL, więc kolejną miłą cechą typów rekordów zdefiniowanych przez użytkownika jest to, że możesz zdefiniować typ rekordu jako pole w innym typ rekordu

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) Możemy również zdefiniować zapisz jako typ wiersza tabeli

DECLARE sales_data_rec apps.sales_data%ROWTYPE;

1) To pozwala nam zadeklarować rekord na podstawie zbioru kolumny w tabeli lub widoku

2) Używamy prefiksu %ROWTYPE z tabelą bazy danych, aby ją zadeklarować

3) Pola w rekordzie pobierają swoją nazwę i typ danych z kolumny tabeli

C) Możemy również użyć %ROWTYPE do zadeklarowania rekordu, który ma taką samą strukturę jak instrukcja SELECT w kursorze.

Jest to szczególnie przydatne przy pobieraniu podzbioru kolumn z tabeli lub kolumn z wielu tabel.

DECLARE 
 CURSOR emp_cur
 IS
 SELECT lastname, age,firstname FROM employees;
 l_employee   emp_cur%ROWTYPE;

Za każdym razem, gdy pobierasz dane z kursora do zmiennych PL/SQL, powinieneś zadeklarować rekord oparty na tym kursorze z %ROWTYPE i pobrać go do tego rekordu. W ten sposób, kiedy i jeśli zmieni się lista SELECT kursora, liczba i typ pól w rekordzie zmieni się odpowiednio i wszystko pozostanie zsynchronizowane.

Jak przekazywać wartości do rekordów Oracle PLSQL

Składnia Użycie
rec_name.col_name :=wartość; Aby bezpośrednio przypisać wartość do określonej kolumny rekordu.
rec_name.column_name :=wartość; Aby bezpośrednio przypisać wartość do określonej kolumny rekordu, jeśli rekord jest zadeklarowany przy użyciu %ROWTYPE.
SELECT kolumna1, kolumna2 INTO rec_name.col_name1, rec_name.col_name2 FROM table_name [klauzula WHERE]; Aby przypisać wartości do każdego pola rekordu z tabeli bazy danych.
SELECT * INTO nazwa_rekordu FROM nazwa_tabeli [klauzula WHERE]; Aby przypisać wartość do wszystkich pól w rekordzie z tabeli bazy danych.
nazwa_zmiennej:=nazwa_rekordu.nazwa_kolumny; Aby uzyskać wartość z kolumny rekordów i przypisać ją do zmiennej.

Musisz przeczytać te inne posty o PLSQL

Struktura i typy bloków Oracle PLSQL
Pytania do rozmowy kwalifikacyjnej Oracle PLSQL
Szybkie samouczki Oracle sql i plsql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle/SQL:Dlaczego zapytanie SELECT * FROM rekordy WHERE rownum>=5 AND rownum <=10 - zwraca zero wierszy

  2. Błąd połączenia z lokalnym hostem Java Oracle (ORA-12505)

  3. Boże Narodzenie przychodzi wcześnie (Oracle 12.2)

  4. Dodaj dzień do sygnatury czasowej

  5. Instalowanie formularzy i raportów Oracle 11g w wersji 2