Почему я получаю оператор курсора в выводе? - PullRequest
2 голосов
/ 08 марта 2019

Я изучаю PL / SQL , и я запустил этот запрос в командной строке SQL

SELECT DNAME, CURSOR(SELECT SALARY, COMMISSSION_PCT 
                     FROM  EMP e 
                     WHERE e.did=101) 
from dept d 
order by dname;

DNAME                                                                           
--------------------------------------------------------------------------------
CURSOR(SELECTSALARY,                                                            
--------------------                                                            
AI                                                                              
CURSOR STATEMENT : 2                                                            

CURSOR STATEMENT : 2

    SALARY COMMISSSION_PCT                                                      
---------- ---------------                                                      
     12000              .3                                                      
     19000              .5                                                      
     10000              .4                                                      


Nano_tech                                                                       
CURSOR STATEMENT : 2                                                            

CURSOR STATEMENT : 2

Почему я получаю ЗАЯВЛЕНИЕ КУРСОРА: 2 в то время как у меня более 2 кортежей в базе данных? Я знаю, что курсор действует как указатель в PL / SQL, но не должен ли он возвращать 3, а не 2?

1 Ответ

4 голосов
/ 08 марта 2019

"2" в

ЗАЯВЛЕНИЕ КУРСОРА: 2

, выдаваемое SQL * Разработчик сообщает вам, что курсор находится во 2-м столбце вывода вашего запроса, Это не означает, что результаты курсора содержат 2 строки.

Замените ваш запрос следующим:

SELECT DNAME, 'XXX' DUMMY, CURSOR(SELECT SALARY, COMMISSSION_PCT 
                           FROM  EMP e 
                           WHERE e.did=101) 
from dept d 
order by dname;

И SQL * Developer будетначать излучать "ЗАЯВЛЕНИЕ КУРСОРА: 3".

...