CREATE OR REPLACE FUNCTION GetUnitRate (TYPE IN VARCHAR2,GoodsNo IN VARCHAR2 , Unit IN VARCHAR2) RETURN FLOAT begin ... end GetUnitRate ;
lz你错的地方实在是太多了 CREATE OR REPLACE FUNCTION ff_ll02 (TYPE IN VARCHAR2,GoodsNo IN VARCHAR2 , Unit IN VARCHAR2) RETURN FLOAT AS v_no INT; v_unitno INT; BEGIN SELECT 1 INTO v_no FROM dual; SELECT 1 INTO v_unitno FROM dual; IF v_NO=0 THEN RETURN 0 ; END IF; IF v_unitno=0 THEN RETURN 0 ; END IF; IF TYPE='1' THEN RETURN v_NO/v_unitno ; END IF; RETURN v_unitno/v_NO ; END ;
如果v_no 和v_unitno都必须是指定长度的varchar2类型,该怎么弄?
v_no varchar2(20); v_unitno varchar2(20);
我下班了 v_no 和v_unitno 怎么会是字符串(看上面的语法怎么都不像是字符串类型)
我是从sql server 上转到oracle 下 可以在: CREATE FUNCTION GetUnitRate (Type in varchar2(1),GoodsNo in varchar2(20) , Unit in varchar2(4)) 定义
(TYPE IN VARCHAR2,GoodsNo IN VARCHAR2 , Unit IN VARCHAR2)
RETURN FLOAT
begin
...
end GetUnitRate ;
CREATE OR REPLACE FUNCTION ff_ll02
(TYPE IN VARCHAR2,GoodsNo IN VARCHAR2 , Unit IN VARCHAR2)
RETURN FLOAT
AS
v_no INT;
v_unitno INT;
BEGIN SELECT 1 INTO v_no FROM dual;
SELECT 1 INTO v_unitno FROM dual;
IF v_NO=0 THEN
RETURN 0 ;
END IF;
IF v_unitno=0 THEN
RETURN 0 ;
END IF;
IF TYPE='1' THEN
RETURN v_NO/v_unitno ;
END IF;
RETURN v_unitno/v_NO ;
END ;
v_unitno varchar2(20);
v_no 和v_unitno 怎么会是字符串(看上面的语法怎么都不像是字符串类型)
可以在:
CREATE FUNCTION GetUnitRate (Type in varchar2(1),GoodsNo in varchar2(20) , Unit in varchar2(4))
定义
v_unitno varchar2(20);