我有6个小函数,想要在一个主函数中调用所有6个函数
在Main函数中想要调用6个函数:
v_CASE_A := FUNCTION_1
v_CASE_B := FUNCTION_2
等等。
示例这是一个小函数_1:
CREATE OR REPLACE FUNCTION u_t (v_number IN NUMBER)
RETURN VARCHAR2
IS
v_length NUMBER;
result VARCHAR2 (100);
v_figure VARCHAR2 (100);
BEGIN
v_length := LENGTH (v_number);
v_figure := TO_CHAR (TO_DATE (v_number, 'J'), 'JSP');
IF v_length IN (1, 2)
THEN
--**result := i want to call v_case_a in this variable from main function;**
END IF;
RETURN RESULT;
END;
示例这是主要功能:
CREATE OR REPLACE FUNCTION number_to_words (v_number IN NUMBER)
RETURN VARCHAR2
IS
v_result VARCHAR2 (500);
v_figure VARCHAR2 (100);
v_case_A VARCHAR2 (100);
BEGIN
v_result := v_case_A;
v_figure := TO_CHAR (TO_DATE (v_number, 'J'), 'JSP');
--**v_case_A := i want to call function_1 in this variable;**
RETURN v_result;
END;
如何在一个主函数PL / SQL中调用多个函数?
答案 0 :(得分:0)
我不确定你想做什么,但听起来像这样:
CREATE OR REPLACE FUNCTION number_to_words (v_number IN NUMBER)
RETURN VARCHAR2
IS
v_result VARCHAR2 (500);
BEGIN
-- classical if-block
IF v_number = 1
THEN
v_result := function1 ();
ELSIF v_number = 2
THEN
v_result := function2 ();
ELSE
v_result := functionDefaultBehaviour ();
END IF;
-- case-block
CASE v_number
WHEN 1 THEN
v_result := function1 ();
WHEN 2 THEN
v_result := function2 ();
ELSE
v_result := functionDefaultBehaviour ();
END CASE;
RETURN v_result;
END;
v_result
设置为function1
,function2
和functionDefaultBehaviour
的返回值,具体取决于参数v_number
。
运行两次 - 使用if-else-block,第二次使用更多美化case语句。