CREATE OR REPLACE FUNCTION GetOfficeNameListByIDList(officeIDList VARCHAR2(200))
 VARCHAR2(200))改为VARCHAR2
SELECT officeNameList := officeNameList || F_OrganiseName || ',' FROM TS_Organise WHERE F_ID := CONVERT(INT, ID);

解决方案 »

  1.   

    编译的时候没报错!不过在
    select GetOfficeNameListByIDList('2,34,1,65,32') from dual
    时候说我的函数无效
      

  2.   

    SELECT officeNameList := officeNameList || F_OrganiseName || ',' FROM TS_Organise WHERE F_ID := CONVERT(INT, ID);
    改成:SELECT officeNameList = officeNameList || F_OrganiseName || ',' FROM TS_Organise WHERE F_ID = CONVERT(INT, ID);
      

  3.   

    用pl/sql dev单步调度一下吧!
      

  4.   

    officeIDList := LTRIM(officeIDList, ',');
    officeIDList := RTRIM(officeIDList, ',');出错.因为你传的是'2,34,1,65,32'.
    你应该养成好的错误处理习惯.
      

  5.   

    TO beyondrobey() :
    officeIDList := LTRIM(officeIDList, ',');
    officeIDList := RTRIM(officeIDList, ',');
    我这两句是为了适应有时候可能会传入是',2,34,1,65,32,'两边或一边有逗号的情况.
      

  6.   

    具体环境是什么?
    目的是什么?
    看不太懂
    我用的是Oracle 9好像没有函数left