学习oracle函数,编译有错误,请大侠们指点下 oraclefunction 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 函数需要有返回值的,你只有在if条件下才有返回值,如果不满足if条件就没有返回,这里会有错误的 CREATE OR REPLACE FUNCTION F_YTBSF(YYRYJF1 NUMBER, YYYWBZ2 NUMBER, YYZXGZJF3 NUMBER, YYQYFCJF4 NUMBER, YYJBJSZJ5 NUMBER, SJGY6 NUMBER, QTYT7 NUMBER) RETURN VARCHAR2 IS YTBSF VARCHAR2(32); M1 VARCHAR2(2); M2 VARCHAR2(2); M3 VARCHAR2(2); M4 VARCHAR2(2); M5 VARCHAR2(2); M6 VARCHAR2(2); M7 VARCHAR2(2);BEGIN IF YYRYJF1 <> 0 THEN M1 := '1,'; ELSE M1 := ''; END IF; IF YYYWBZ2 <> 0 THEN M2 := '2,'; ELSE M1 := ''; END IF; IF YYZXGZJF3 <> 0 THEN M3 := '3,'; ELSE M1 := ''; END IF; IF YYQYFCJF4 <> 0 THEN M4 := '4,'; ELSE M1 := ''; END IF; IF YYJBJSZJ5 <> 0 THEN M5 := '5,'; ELSE M1 := ''; END IF; IF SJGY6 <> 0 THEN M6 := '6,'; ELSE M1 := ''; END IF; IF QTYT7 <> 0 THEN M7 := '7,'; ELSE M1 := ''; END IF; YTBSF := M1 || M2 || M3 || M4 || M5 || M6 || M7; IF MOD(LENgth(YTBSF), 2) = 0 THEN RETURN(substr(YTBSF, LENgth(YTBSF) - 1)); ELSE RETURN(YTBSF); END IF; END F_YTBSF; IF YYRYJF1<>0 then M1:= '1,'; else M1:='' end IF ;IF条件里面的语句最后都有;else里面的语句没有;你觉得合适么? 问题很多啊。oracle中len对应的函数是lengthoracle截取字符串是substr还没有,你的每一句m1:=‘’后面都少一个; 执行job是报ORA-00932错误 oracle导出多个表的部分数据? 大家帮忙看看这个存储过程改的对不对 (急)请教高手,update表非常慢的问题. 哪位大牛能指导一下,能不能边进行数据库查询边对返回结果进行处理.比较急,在线等。谢过各位了! 求一oracle更新语句!!!急啊,在线等 windows 2000 advance server 安装ORACLE9i(9.2.0.1.0) 在创建数据库时出现ORA-02231错误 高分求:oracle 10g 高分求购Rapid SQL 7.2.0正式版或注册码 求查询处理 本人不才,问个弱智问题 java 连接数据库慢问题
YYYWBZ2 NUMBER,
YYZXGZJF3 NUMBER,
YYQYFCJF4 NUMBER,
YYJBJSZJ5 NUMBER,
SJGY6 NUMBER,
QTYT7 NUMBER) RETURN VARCHAR2 IS
YTBSF VARCHAR2(32);
M1 VARCHAR2(2);
M2 VARCHAR2(2);
M3 VARCHAR2(2);
M4 VARCHAR2(2);
M5 VARCHAR2(2);
M6 VARCHAR2(2);
M7 VARCHAR2(2);
BEGIN
IF YYRYJF1 <> 0 THEN
M1 := '1,';
ELSE
M1 := ''; END IF;
IF YYYWBZ2 <> 0 THEN
M2 := '2,';
ELSE
M1 := ''; END IF;
IF YYZXGZJF3 <> 0 THEN
M3 := '3,';
ELSE
M1 := ''; END IF;
IF YYQYFCJF4 <> 0 THEN
M4 := '4,';
ELSE
M1 := ''; END IF;
IF YYJBJSZJ5 <> 0 THEN
M5 := '5,';
ELSE
M1 := ''; END IF;
IF SJGY6 <> 0 THEN
M6 := '6,';
ELSE
M1 := ''; END IF;
IF QTYT7 <> 0 THEN
M7 := '7,';
ELSE
M1 := ''; END IF;
YTBSF := M1 || M2 || M3 || M4 || M5 || M6 || M7;
IF MOD(LENgth(YTBSF), 2) = 0 THEN
RETURN(substr(YTBSF, LENgth(YTBSF) - 1));
ELSE
RETURN(YTBSF);
END IF;
END F_YTBSF;
else里面的语句没有;
你觉得合适么?
oracle中len对应的函数是length
oracle截取字符串是substr
还没有,你的每一句m1:=‘’后面都少一个;