sql - Oracle 程序所有输入变量都设置为大写
问题描述
我有一个场景,我需要在处理之前将 Oracle SP 的所有输入参数转换为大写:-
procedure Name (
v_Param1 in number,
v_Param2 IN varchar2,
v_Para3 IN VARCHAr2,
v_Param4 IN VARCHAr2,
v_MID IN VARCHAr2)
输入可以是小写、大写或驼峰式,但我需要将其与大写表中的记录匹配,这是递归调用中数据库端的一项昂贵操作。有没有办法可以立即转换这些值,以便将输入参数转换为大写。
解决方案
您可以声明和设置新变量:
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;
但是,我不知道字符串的大小写如何导致递归调用。
推荐阅读
- java - 参数“imagePath”在这里未初始化
- c++ - 使用 n_copy 将前 n 个元素从一个向量复制到另一个向量的模板函数导致编译错误
- php - 如何确保仅使用 php 和/或基本 javascript 仅记录一位管理员
- c - 使用 void 指针作为参数传递函数会发出警告
- python - pythoncom.PumpMessages() 给出警告“pythoncom 中没有引用 PumpMessages()”
- java - 如何从工作簿之一中读取不唯一的命名范围
- azure-devops - 禁用组织名称屏蔽 azure devops
- android - 渲染问题,我该如何解决?
- sql - 如何屏蔽 Redshift 中的列?
- php - 如何修复大型数据库从连接表中查找第二个最后修改结果的“超时”错误?