DECLARE AA VARCHAR2(100):= 'SELECT ‘aa’ FROM dual';
BEGIN
EXECUTE IMMEDIATE AA;
END;
假设就按上面这个语句,执行结果在哪里能看到。PL/SQL。SQL SERVER 直接在下面就将查询的结果拉出来了 PL/SQL需要设置还是就没有?

解决方案 »

  1.   

    木有   可以将动态sql打印出来 然后运行
      

  2.   

     DECLARE AA VARCHAR2(100):= 'SELECT ''aa'' FROM dual';
             BB VARCHAR2(10);
     BEGIN
     EXECUTE IMMEDIATE AA INTO BB;
      DBMS_OUTPUT.put_line(BB);
     END;
      

  3.   

    set serveroutput on;--打开输出显示
    DECLARE
      AA VARCHAR2(100) := 'SELECT ''a'' FROM dual';
      str varchar2(100);
    BEGIN
      EXECUTE IMMEDIATE AA into str;  --查到的结果赋值给变量str
      dbms_output.put_line(str);--打印str
    END;
    /a
      

  4.   

    DECLARE
    CURSOR CR (ID_IN PLS_INTEGER)IS
        SELECT 
            A.ID AS ID,C.FID AS FID,C.FNAME AS FNAME
        FROM AA A
          JOIN CC C ON A.ID = C.ID
        WHERE A.ID = ID_IN;
    FF CR%ROWTYPE;
    ZF VARCHAR2(1000);
    BEGIN
       OPEN CR(1001);
         LOOP
           FETCH CR INTO FF;
           EXIT WHEN CR%NOTFOUND;
           ZF := ZF||FF.FID||' AS FID'||CR%ROWCOUNT||','||''''||FF.FNAME||''''||' AS FNAME'||CR%ROWCOUNT||',';
         END LOOP;
       CLOSE CR;
       ZF := 'SELECT X.*,'||SUBSTR(ZF,1,LENGTH(ZF)-1)||' FROM AA X';
       DBMS_OUTPUT.put_line(ZF);
       EXECUTE IMMEDIATE ZF;
    END  FF;
    我上面举了个例子。这个是我要实现的。能不能打印的
      

  5.   


    是想实现这个帖子的问题。 我不是11g的 PIVOT用不了吧。
      

  6.   

    只能循环游标,来逐行打印出来DBMS_OUTPUT.put_line(var);