0

我无法找出这个 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?

4

1 回答 1

1

我认为 PIVOT 子句与您遇到的错误没有任何关系。要使用包含 SELECT 语句的字符串打开 SYS_REFCURSOR,我想你会想要使用

OPEN L FOR V;

代替

execute immediate v into l;

分享和享受。

于 2014-05-17T01:51:33.247 回答