sql >> Database teknologi >  >> RDS >> Oracle

Hvad er forskellen mellem eksplicitte og implicitte markører i Oracle?

En implicit markør er en, der oprettes "automatisk" til dig af Oracle, når du udfører en forespørgsel. Det er lettere at kode, men lider af

  • ineffektivitet (ANSI-standarden specificerer, at den skal hentes to gange for at kontrollere, om der er mere end én post)
  • sårbarhed over for datafejl (hvis du nogensinde får to rækker, rejser det en TOO_MANY_ROWS undtagelse)

Eksempel

SELECT col INTO var FROM table WHERE something;

En eksplicit markør er en, du selv opretter. Det kræver mere kode, men giver mere kontrol – for eksempel kan du bare åbne-hent-lukke, hvis du kun vil have den første post og er ligeglad med, om der er andre.

Eksempel

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


  1. Oracle 11g - Unpivot

  2. CASE .. WHEN udtryk i Oracle SQL

  3. sql grupper efter kun rækker, der er i rækkefølge

  4. Hvordan bruger jeg Expression Builder i Access 2016?