我正在学习 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吗?
答案 0 :(得分:4)
中的“ 2”
由SQL * Developer发出的光标声明: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将开始发出“ CURSOR STATEMENT:3”。