我有一种情况,需要在处理之前将Oracle SP的所有输入参数转换为大写:-
procedure Name (
v_Param1 in number,
v_Param2 IN varchar2,
v_Para3 IN VARCHAr2,
v_Param4 IN VARCHAr2,
v_MID IN VARCHAr2)
输入可以是小写,大写或驼峰式输入,但我需要将其与大写表中的记录匹配,这在递归调用中是数据库端的一项昂贵操作。 有没有一种方法可以立即转换这些值,以便将输入参数转换为大写。
答案 0 :(得分:1)
您可以声明并设置新变量:
procedure Name ( v_Param1 in number, v_Param2 IN varchar2, v_Para3 IN VARCHAr2, v_Param4 IN VARCHAr2, v_MID IN VARCHAr2
)
as
v_param2_upper varchar2(4000);
v_param3_upper varchar2(4000);
v_param4_upper varchar2(4000);
v_param5_upper varchar2(4000);
begin
v_param2_upper := upper(v_param2);
v_param3_upper := upper(v_param3);
v_param4_upper := upper(v_param4);
v_param5_upper := upper(v_param5);
. . .
end;
但是,我不知道字符串的大小写将如何导致递归调用。
答案 1 :(得分:0)
通过直接在变量上使用上/下函数,您可以实现以下目的:-
procedure Name (
v_Param1 in number,
v_Param2 IN varchar2,
v_Para3 IN VARCHAr2,
v_Param4 IN VARCHAr2,
v_MID IN VARCHAr2)
as BEGIN
v_Param2 := upper(v_Param2);
v_Para3 := upper(v_Para3);
v_Param4 := upper(v_Param4);
v_MID := upper(v_MID);
......
END;