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

Как да съхраня резултата от избора в променлива в процедурата на Oracle

Имате няколко възможности. Можете да превърнете тази заявка в курсор:

DECLARE
     CURSOR v_employeeRecords IS
          SELECT * FROM Employee WHERE Salary > 10;
     v_employeeRecord  employee%ROWTYPE;
BEGIN
     FOR v_employeeRecord IN v_employeeRecords LOOP
          /* Do something with v_employeeRecord */
     END LOOP;
END;

Или можете да създадете TABLE променлива:

DECLARE
     v_employeeRecord  employee%ROWTYPE;
     v_employeeRecords IS TABLE OF employee%ROWTYPE;
     i BINARY_INTEGER;
BEGIN
 SELECT * BULK COLLECT INTO v_employeeRecords
      FROM Employee WHERE Salary > 10;

 i := v_employeeRecords.FIRST;
 WHILE v_employeeRecords.EXISTS(i) LOOP
     v_employeeRecord := v_employeeRecords(i);
     /* Do something with v_employeeRecord */
     i := v_employeeRecords.NEXT(i);
 END;
END;

Не съм пробвал тези примери в Oracle, така че може да получите грешки на компилатора...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кои кодове имат съответствие в db

  2. Как да изпълним процедура вътре в пакет в Oracle

  3. EM SQL Monitor Impact

  4. Как да изброите всички изгледи в базата данни на Oracle

  5. Изходът на скрипта на SQL Developer съкращава ширината на sys_refcursor