MSSQL:
declare @NameList varchar(2000)
set @NameList=''select @NameList=@NameList+StudentName+',' from T_Students where StudentID <10Oracle下面怎么实现上面的变量赋值啊?因为oracle的参数没有带@以区别 我想上面的那种写法oracle肯定不对的

解决方案 »

  1.   

    declare NameList varchar(2000) 
    NameList:=''; select StudentName||',' into NameList from T_Students where StudentID <10 
    不过这只适合一条数据的赋值,多条数据要用游标来处理
      

  2.   

    呵呵 难道ORACLE为了实现那种常用语句要写好多行的游标代码去实现?
      

  3.   

    declare
           NameList varchar2(2000);
    begin
         NameList:= '';
         select NameList from T_Students where StudentID <10;
    end;
      

  4.   


    DECLARE
    DECLARE
      NAMELIST VARCHAR2(2000);
      CURSOR CURSOR_1 IS
        SELECT STUDENTNAME
          FROM T_STUDENTS
         WHERE STUDENTID < 10;BEGIN
      NAMELIST := '';
      FOR V_NAME IN CURSOR_1
      LOOP
        NAMELIST := NAMELIST || V_NAME.STUDENTNAME||',';
      END LOOP;
      DBMS_OUTPUT.PUT_LINE(NAMELIST);
    END;