Oralce 写函数的问题
我用toda写的写面这个函数
CREATE OR REPLACE FUNCTION TIEXIN.GetTheTime
(OLDTIME INT)
RETURN VARCHAR2
IS
THEHOUR int;
THEMIN int;
THESEC int;
STRTIME VARCHAR2(20000);
BEGIN
IF OLDTIME < 60 THEN
STRTIME := TO_CHAR(OLDTIME) || ' ' '秒 ' ' ';
ELSE
THEMIN := OLDTIME/60;
THESEC := MOD(60,OLDTIME);
IF THEMIN > = 60 THEN
THEHOUR := THEMIN/60;
THEMIN := MOD(60,THEMIN);
STRTIME := TO_CHAR(THEHOUR) || ' ' '小时 ' ' ' || TO_CHAR(THEMIN) || ' ' '分 ' ' ' || TO_CHAR(THESEC) || ' ' '秒 ' ' ';
ELSE
STRTIME := TO_CHAR(THEMIN) || ' ' '分 ' ' ' || TO_CHAR(THESEC) || ' ' '秒 ' ' ';
END IF;
END IF;
RETURN STRTIME;
END GetTheTime;
他总是报
PLS-00103: 出现符号 " "在需要下列之一时:
begin case
declare end exception exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier
这个错误....请专家指教一下.....谢谢
------解决方案--------------------要写 '的话,需要写4个 '
' ' '都改成 ' ' ' '
看下还有错没?
------解决方案--------------------你这里面有什么非法字符,我COMMENT完了还运行不通过,后来自己按照你的写一遍通过;
注意STRTIME VARCHAR2(20000); 没有20000的长度;
SQL> CREATE OR REPLACE FUNCTION GETTHETIME(OLDTIME IN INT)
2 RETURN VARCHAR2
3 IS
4 THEHOUR int;
5 THEMIN int;
6 THESEC int;
7 STRTIME VARCHAR2(2000);
8 BEGIN
9 IF OLDTIME < 60 THEN
10 STRTIME := TO_CHAR(OLDTIME) || ' ' '秒 ' ' ';
11 ELSE
12 THEMIN := OLDTIME/60;
13 THESEC := MOD(60,OLDTIME);
14 IF THEMIN > = 60 THEN
15 THEHOUR := THEMIN/60;
16 THEMIN := MOD(60,THEMIN);
17 STRTIME := TO_CHAR(THEHOUR) || ' ' '小时 ' ' ' || TO_CHAR(THEMIN)
|| ' ' '分 ' ' ' || TO_CHAR(THESEC) || ' ' '秒 ' ' ';
18 ELSE
19 STRTIME := TO_CHAR(THEMIN) || ' ' '分 ' ' ' || TO_CHAR(THESEC)
|| ' ' '秒 ' ' ';
20 END IF;
21 END IF;
22 return StrTime;
23 END GETTHETIME;
24 /
Function created