sql >> Databasteknik >  >> RDS >> Oracle

Vad är skillnaden mellan explicita och implicita markörer i Oracle?

En implicit markör är en som skapas "automatiskt" åt dig av Oracle när du kör en fråga. Det är enklare att koda, men lider av

  • ineffektivitet (ANSI-standarden anger att den måste hämta två gånger för att kontrollera om det finns mer än en post)
  • sårbarhet för datafel (om du någonsin får två rader leder det till ett TOO_MANY_ROWS undantag)

Exempel

SELECT col INTO var FROM table WHERE something;

En explicit markör är en du skapar själv. Det krävs mer kod, men ger mer kontroll – till exempel kan du bara öppna-hämta-stäng om du bara vill ha den första posten och inte bryr dig om det finns andra.

Exempel

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


  1. Oracle DateTime i Where-klausul?

  2. python lägger till E till strängen

  3. LPAD() Funktion i Oracle

  4. Hur man använder regexp i sqlite