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

Jaka jest różnica między jawnymi i niejawnymi kursorami w Oracle?

Niejawny kursor to taki, który jest tworzony „automatycznie” dla Ciebie przez Oracle podczas wykonywania zapytania. Jest prostszy w kodowaniu, ale cierpi na

  • nieefektywność (norma ANSI określa, że ​​musi być pobierana dwukrotnie, aby sprawdzić, czy istnieje więcej niż jeden rekord)
  • podatność na błędy danych (jeśli kiedykolwiek otrzymasz dwa wiersze, pojawia się wyjątek TOO_MANY_ROWS)

Przykład

SELECT col INTO var FROM table WHERE something;

Kursor jawny to taki, który sam tworzysz. Zajmuje więcej kodu, ale daje większą kontrolę — na przykład możesz po prostu otworzyć-pobrać-zamknąć, jeśli chcesz tylko pierwszego rekordu i nie obchodzi cię, czy są inne.

Przykład

DECLARE   
  CURSOR cur IS SELECT col FROM table WHERE something; 
BEGIN
  OPEN cur;
  FETCH cur INTO var;
  CLOSE cur;
END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Blok wstrzykiwania SQL Oracle z DBMS_ASSERT

  2. Dobra praktyka otwierania/zamykania połączeń w aplikacji asp.net?

  3. Polecenie Oracle CREATE TABLE w PL/SQL z 10 przykładami

  4. Domyślne zachowanie automatycznego zatwierdzania połączenia JDBC

  5. Funkcja dzielenia w Oracle na wartości oddzielone przecinkami z automatyczną sekwencją