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

Jak zapisać wynik selekcji w zmiennej w procedurze Oracle?

Masz kilka opcji. Możesz zmienić to zapytanie w kursor:

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;

Możesz też utworzyć TABLE zmienna:

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;

Nie próbowałem tych próbek w Oracle, więc mogą wystąpić błędy kompilatora...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę stworzyć stół z wyrocznią, ale z małymi postaciami?

  2. Zapisana procedura usuwania rekordów w Oracle DBMS

  3. Wstawianie rekordów rodzica/dziecka w transakcji

  4. Instalacja ROracle ::Nie można załadować błędu obiektu współdzielonego

  5. Jak połączyć się w java jako SYS z Oracle?