PLSQL代码功能没有返回值
问题描述:
我使用功能PLSQL代码功能没有返回值
create or replace FUNCTION FSS_REF_GETREFIDBYCODEANDORDER (v_Code In CHAR, v_OrderBy In number)
RETURN number IS v_RefID NUMBER(10);
BEGIN
SELECT REFID
INTO v_RefID
FROM REFERENCE
WHERE Code like (v_Code || '%')
AND
ORDERBY = v_OrderBy
and ROWNUM = 1;
RETURN (v_RefID);
END;
应该返回一个值,因为如果我没有功能单独运行低于其给出的结果为1所需的值1
SELECT REFID
-- INTO v_RefID
FROM REFERENCE
WHERE Code like ('001' || '%')
AND
ORDERBY = 4
and ROWNUM = 1;
给出
任何人都可以帮我解决任何功能错误。因为我是PL/SQL编程的新手。
答
尝试将“v_Code中的CHAR”更改为“v_Code中的VARCHAR2”。 我也建议你添加NO_DATA_FOUND异常处理程序。例如。
CREATE OR REPLACE FUNCTION fss_ref_getrefidbycodeandorder(v_code IN VARCHAR2, v_orderby IN NUMBER) RETURN NUMBER IS
v_refid NUMBER(10);
BEGIN
SELECT refid
INTO v_refid
FROM reference
WHERE code LIKE (v_code || '%')
AND orderby = v_orderby
AND rownum = 1;
RETURN(v_refid);
EXCEPTION
WHEN no_data_found THEN
RETURN NULL;
END;
你是怎么调用这个函数的? –
“它应该返回一个值”它代之以什么?你有错误信息吗? –
我认为这个问题与你使用'char'数据类型而不是'varchar2'有关。然而,没有任何关于你如何调用函数的暗示,或者如果你得到错误信息,这是不可能告诉的。 –