带有pivot子句的动态sql中的错误

时间:2014-05-17 00:10:57

标签: oracle plsql sys-refcursor

我在查找此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?

1 个答案:

答案 0 :(得分:1)

我不认为PIVOT条款与您获得的错误有关。要使用包含SELECT语句的字符串打开SYS_REFCURSOR,我认为您将要使用

OPEN L FOR V;

而不是

execute immediate v into l;

分享并享受。