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;