首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

函数没返回值

2011-12-18 
函数没有返回值SQL codeCREATE OR REPLACEFUNCTION TIMEIDIN(TIMEID NUMBER)RETURN VARCHAR2ISSTRTIMEID V

函数没有返回值

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; 

热点排行