ALTER  Function Gets_sh(@htbh as varchar(30))
Returns Varchar(1000)
As
Begin
    Declare @S Varchar(1000)
   
    Set @S=''
    Select @S=@S+','+ sh  from  ht_m ,ht_z Where ht_m.htbh=ht_z.htbh and ht_z.htbh=@htbh 
    Return (Stuff(@S,1,1,''))
End
把sql2000改为oracle,怎么写?

解决方案 »

  1.   

    帮忙顶一下,让了解的人来解答.btw:他妈的,我还是CSDN论坛首页的常驻专家门诊(JAVA板块)呢,居然在JAVA板块既不能发新贴,也不能回复。
    btw:郁闷,加的好友太多了,现在加好友都是非法请求了。连好友页面也打不开。连私信页面也打不开。
    btw:CSDN当时没有测试过加好友很多的情况的吗?郁闷。现在一点加好友就出错。
      

  2.   


    CREATE OR REPLACE FUNCTION GETS_SH(P_HTBH VARCHAR2) 
    RETURN VARCHAR2 IS
     V_S VARCHAR2(1000) := '';
    BEGIN
     SELECT V_S || ',' || SH
       INTO V_S
       FROM HT_M, HT_Z
      WHERE HT_M.HTBH = HT_Z.HTBH
        AND HT_Z.HTBH = P_HTBH;
     V_S := REPLACE(V_S, ',', '');
     RETURN(V_S);END;
      

  3.   


    CREATE OR REPLACE FUNCTION GETS_SH(P_HTBH VARCHAR2)
     RETURN VARCHAR2 IS
     V_S VARCHAR2(1000) := '';
    BEGIN
     FOR A IN (SELECT SH
                 FROM HT_M, HT_Z
                WHERE HT_M.HTBH = HT_Z.HTBH
                  AND HT_Z.HTBH = P_HTBH) LOOP
     
      V_S := V_S || ',' || A.SH;
     END LOOP;
     V_S := REPLACE(V_S, ',', '');
     RETURN(V_S);END;