我在查找此plsql块的问题时遇到了问题:
1 declare
2 l sys_refcursor;
3 v varchar2(2000);
4 begin
5 v := q'[
6 select * from (
7 select etudiant2.nom, etudiant2.prenom, forme ||''||session_e formesession, note
8 from etudiant2
9 )
10 pivot
11 (sum(null) for formesession in ('TP01', 'TP02', 'TP03', 'TD01', 'TD02'))]';
12 execute immediate v into l;
13* end;
SQL> /
declare
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected - got -
ORA-06512: at line 12
这里有什么问题,我尝试了很多东西......也许' PIVOT'只是不适用于动态sql?
答案 0 :(得分:1)
我不认为PIVOT条款与您获得的错误有关。要使用包含SELECT语句的字符串打开SYS_REFCURSOR,我认为您将要使用
OPEN L FOR V;
而不是
execute immediate v into l;
分享并享受。