当前位置: 代码迷 >> Oracle管理 >> 函数没返回值
  详细解决方案

函数没返回值

热度:415   发布时间:2016-04-24 06:20:40.0
函数没有返回值
SQL code
CREATE OR REPLACEFUNCTION TIMEIDIN(TIMEID NUMBER)RETURN VARCHAR2ISSTRTIMEID VARCHAR2(48);BEGINFOR I IN 0..13 LOOPIF I<>12THEN STRTIMEID:=TIMEID*12+1||',';RETURN STRTIMEID;ELSE STRTIMEID:=TIMEID*12+1;RETURN STRTIMEID;END IF;END LOOP;END TIMEIDIN;

通过这个函数我想传入一个数字类型的值得到一个字符串
如传进去一个 1 返回 1,2,3,4,5,6,7,8,9,10,11,12

但是我写的这个函数没有返回值 请问写的有问题吗 才学ORACLE的 有很多不了解 请教

------解决方案--------------------
CREATE OR REPLACE FUNCTION TIMEIDIN(TIMEID NUMBER) RETURN VARCHAR2 IS
STRTIMEID VARCHAR2(48);
BEGIN
FOR I IN 1.. 13 LOOP
IF I <> 12 THEN
 
STRTIMEID := STRTIMEID || i||',';

ELSE
STRTIMEID := STRTIMEID || i;
RETURN STRTIMEID;
END IF;
END LOOP;
RETURN STRTIMEID;
END TIMEIDIN;





------解决方案--------------------
SQL code
CREATE OR REPLACE FUNCTION TIMEIDIN(TIMEID NUMBER) RETURN VARCHAR2 IS  STRTIMEID VARCHAR2(48);  num number;BEGIN  FOR I IN  1.. 13 LOOP    IF I <> 12 THEN     num:=(TIMEID-1)*12+i;      STRTIMEID := STRTIMEID ||num ||',';       ELSE     num:=(TIMEID-1)*12+i;     STRTIMEID := STRTIMEID || num;          RETURN STRTIMEID;    END IF;  END LOOP;    RETURN STRTIMEID;END TIMEIDIN;
  相关解决方案