declare AALEVEL_ number;
 begin
 select DOP_STRUCTURE_LEVEL into AALEVEL_ from X_CPWLXHQD where PART_NO='H093402'; 
 end;
这是一个PL/SQL的赋值语句,但不知如何查询赋值的结果,在SQL中可以用select AALEVEL_实现,但在PL/SQL中如何用代码查询它的赋值结果.

解决方案 »

  1.   

    -- 加入下面代码:
    DBMS_OUTPUT.PUT_LINE('AALEVEL_: '||AALEVEL_);
      

  2.   

    SQL> SET SERVEROUTPUT ON
    SQL> DECLARE
      2    V_DATE DATE;
      3  BEGIN
      4    SELECT SYSDATE INTO V_DATE FROM DUAL;
      5    DBMS_OUTPUT.PUT_LINE('V_DATE: '||V_DATE);
      6  END;
      7  /V_DATE: 21-10月 -08PL/SQL procedure successfully completed
      

  3.   

    还是不行
    SET SERVEROUTPUT ON    
     declare AALEVEL_ number;
     begin
     select DOP_STRUCTURE_LEVEL into AALEVEL_ from X_CPWLXHQD where PART_NO='H093402';
     DBMS_OUTPUT.PUT_LINE('AALEVEL_:'||AALEVEL_);  
     end;  
    这样改过之后运行,结果出现这个提示:
    ORA-00922:missing or invalid option
      

  4.   

    我不是在DOS,不是在SQL PLUS下运行,而是在PL/SQL的SQL窗口运行
      

  5.   

    那你在SQL窗口中的Output TAB看数据结果就可以了。或者开一个Command窗口,先跑SET SERVEROUTPUT ON,在跑那个PL\SQL代码段就好了。 
      

  6.   

    LZ 在PL/SQL developer的SQL窗口运行 ,运行后那直接看输出结果就行(在你执行sql语句旁边的窗口)declare AALEVEL_ number; 
    begin 
    select DOP_STRUCTURE_LEVEL into AALEVEL_ from X_CPWLXHQD where PART_NO='H093402'; 
    DBMS_OUTPUT.PUT_LINE('AALEVEL_:'||AALEVEL_);  
    end;  
    -----
    --引用(这个楼上的是在命令窗口中执行的)
    -----
    SQL codeSQL> SET SERVEROUTPUT ON
    SQL> DECLARE
      2    V_DATE DATE;
      3  BEGIN
      4    SELECT SYSDATE INTO V_DATE FROM DUAL;
      5    DBMS_OUTPUT.PUT_LINE('V_DATE: '||V_DATE);
      6  END;
      7  /V_DATE: 21-10月 -08PL/SQL procedure successfully completed
    -----------
    LZ要多看看工具哈
      

  7.   

    这个问题我也遇到了,在PL/SQL developer的SQL窗口运行报错,提示ORA-00922:missing or invalid option set serveroutput on ;
    DECLARE
       v1 zcenterprises.etpname%TYPE;
      
    BEGIN
       QueryEmp(1546, v1);
       DBMS_OUTPUT.PUT_LINE('姓名:'||v1);
       
       QueryEmp(1549, v1);
       DBMS_OUTPUT.PUT_LINE('姓名:'||v1);
     
       QueryEmp(1561, v1);
       DBMS_OUTPUT.PUT_LINE('姓名:'||v1);
       
    END;
    然后我在PL/SQL developer开了个command窗口运行
    SQL> set serveroutput on
    SQL> declare
      2  v1 zcenterprises.etpname%TYPE;
      3  begin
      4  QueryEmp(1546,v1);
      5  DBMS_OUTPUT.put_line('姓名:'||v1);
      6  end;
      7  /
    编码为1546的员工已经查到!
    姓名:新良PL/SQL procedure successfully completed
    所以说set serveroutput on应该是不能在sql窗口运行