读书人

函数没返回值

发布时间: 2011-12-18 22:54:38 作者: rapoo

函数没有返回值

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; 

读书人网 >oracle

热点推荐