为什么我在输出中得到游标语句?

时间:2019-03-08 13:25:47

标签: oracle plsql cursor

我正在学习 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

当数据库中有两个以上的元组时,为什么会得到 CURSOR STATEMENT:2 ?我知道游标的行为就像PL / SQL中的指针一样,但是它不应该返回3而不是2吗?

1 个答案:

答案 0 :(得分:4)

中的“ 2”
  

光标声明:2

由SQL * Developer发出的

告诉您光标位于查询输出的第二列。 这并不意味着光标的结果包含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将开始发出“ CURSOR STATEMENT:3”。