Oracle
 sql >> база данни >  >> RDS >> Oracle

Тип таблица в Oracle PL SQL Пример

Типовете таблици PL SQL всъщност са колекции, като масив. С помощта на PL SQL колекциите можете ефективно да обработвате групови данни. В тази публикация ще ви науча на много основни и най-често използвани команди за PL SQL колекции тип таблици. По-долу е типът на таблицата в примера за Oracle PL SQL.

Първо трябва да го декларирате в секцията за деклариране на PL SQL блока. Ето синтаксиса с пример:

Тип таблица в пример за Oracle PL SQL

1. Декларирайте PL SQL типове таблици

Type any_table_type is table of emp%rowtype index by binary_integer;
emp_rec any_table_type;

Горните команди ще декларират типа таблица any_table_type на emp тип ред на таблицата и след това ще инициализират с emp_rec. След деклариране можете ръчно да му присвоите стойностите. По-долу е примерът:

2. Присвояване на стойности на PL SQL типове таблици

set serveroutput on;
declare
Type any_table_type is table of emp%rowtype 
    index by binary_integer;
emp_rec any_table_type;
begin
emp_rec(1).ename := 'abc'; /* assigning values */
emp_rec(2).ename := 'xyz';
dbms_output.put_line(emp_rec(1).ename); /* accessing values */
dbms_output.put_line(emp_rec(2).ename);
end;

Тъй като PL SQL таблиците са като масиви, така че стойностите трябва да бъдат присвоени, като се даде номер на елемента на масива, както е показано по-горе. Сега по-долу е примерът за това как да изтриете от PL SQL колекции тип таблици.

3. Изтриване на елементи от PL SQL типове таблици

set serveroutput on;
declare
Type any_table_type is table of emp%rowtype index by binary_integer;
emp_rec any_table_type;
begin
emp_rec(1).ename := 'abc';
emp_rec(2).ename := 'xyz';
emp_rec.delete(1); /* will delete first element */
for i in emp_rec.first .. emp_rec.last loop /* loop through the array */
dbms_output.put_line(emp_rec(i).ename);
end loop;
end;

Горният пример ще изтрие първия елемент и ще отпечата само втория. Когато изпълните горния блок, изходът ще бъде:

xyz
PL/SQL процедурата е завършена успешно.

За да изтриете всички елементи от PL SQL тип таблица, по-долу е примерът:

emp_rec.delete;

4. Попълване на PL SQL типове таблици с помощта на групово събиране

По-долу е даден типът на таблицата в oracle PL SQL пример за извличане на данните от таблицата emp и след това тя ще попълни типа PL SQL таблица с помощта на Bulk Collect и след това ще актуализира таблицата emp с помощта на FORALL. Ето примера:

set serveroutput on;

DECLARE
   CURSOR c
   IS
      SELECT * FROM emp;

   TYPE any_table_type IS TABLE OF emp%ROWTYPE
                             INDEX BY BINARY_INTEGER;

   emp_rec   any_table_type;
BEGIN
   OPEN c;

   FETCH c
   BULK COLLECT INTO emp_rec;

   CLOSE c;

   FORALL i IN emp_rec.FIRST .. emp_rec.LAST
      UPDATE emp
         SET comm = emp_rec (i).sal * 10 / 100
       WHERE empno = emp_rec (i).empno;

   COMMIT;
END;

Можете също да проверите моя инструмент за PL SQL процедури, за да генерирате скрипта за вашата разработка.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при отпечатване на променлива REFCURSOR като OUT параметър в процедурата в Oracle 11g

  2. Проблем с променливите за свързване на Oracle, които не използват правилно индекса

  3. PL/SQL:Грешка PLS-00306:грешен номер или типове аргументи при извикване към задействани за таблица с числа

  4. Най-добрият начин да изпълнявате периодично заявки на Oracle

  5. как да използвам ограничението за проверка в oracle