- 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;