set serveroutput ondeclare str nvarchar(2000)    
begin
str:='';
select  str||','||rtrim(a.pydm)  into str  
from sys_dic03 a where sjjmc='AJHS27' ---and xh between 24 and 35
order by xh;
dbms_output.put_line( right(str,length(str)-1));
end;

解决方案 »

  1.   

    ERROR 位于第 2 行:
    ORA-06550: 第 2 行, 第 1 列:
    PLS-00103: 出现符号 "BEGIN"在需要下列之一时:
    :=;notnulldefault
    character
    符号 ";" 被替换为 "BEGIN" 后继续。
      

  2.   

    其实我就是想提出这个表 sys_dic03里,这个列pydm的字段。
    也就是得到这样一个结果
    DW,YPBH,YPLX,JCYJ,FXRQ,H2,N,CH4,CO,CO2,C2H4,C2H6,C3H8,C3H6
      

  3.   

    declare str nvarchar(2000)  改成
    declare str varchar2(2000) ;select  str||','||rtrim(a.pydm)  into str  
    from sys_dic03 a where sjjmc='AJHS27' 
    记录返回不能大于一条.dbms_output.put_line( right(str,length(str)-1));用substr  oracle不认right.(好像没有)