最近维护一个旧项目,用的数据库是oracle的,里面有个数据库函数,但是注释都是乱码了,尝试解决了 都没翻译过来,希望大家帮我看看,个人对数据库函数一知半解的,求解惑
```sql
CREATE OR REPLACE FUNCTION SPLIT_QUERY_NICKNAME(piv_str_a varchar2,
p_sep varchar2 := ',')
RETURN varchar2 IS --????????????
l_idx number := 0; --????????????
init_index number := 0; -- ??????????
str varchar2(500); -- ????????????????
piv_str varchar2(500) := piv_str_a; -- ??piv_str2??????piv_str
nick_name_str VARCHAR2(200); --????????????
res VARCHAR(200); -- ????????
BEGIN
IF instr(piv_str, p_sep, 1) = 0 THEN -- ????????????????????????????????????????????????????????????
SELECT NICK_NAME
INTO nick_name_str
from SYS_USER su
where su.user_name = piv_str;
IF nick_name_str is not NULL THEN
res := nick_name_str;
else
nick_name_str := to_char('????????????');
res := nick_name_str;
end if;
ELSE
--????????????????????????
BEGIN
LOOP
l_idx := instr(piv_str, p_sep); --??????????????????????
IF l_idx > 0 THEN
str := substr(piv_str, 1, l_idx - 1);--????????1??????????????????????????
SELECT NICK_NAME
INTO nick_name_str
from SYS_USER su
where su.user_name = str;
if init_index = 0 then --??????????????????????????????/????????????????????????
res := nick_name_str;
init_index := 1;
else
res := concat(res, concat('/', nick_name_str)); -- ????????????????
end if;
piv_str := substr(piv_str, l_idx + 1); -- ??????????????????????????????????????
if instr(piv_str, p_sep) = 0 then -- ??????????????????????????????????????????????????????????????????????????
SELECT NICK_NAME
INTO nick_name_str
from SYS_USER su
where su.user_name = piv_str;
res := concat(res, concat('/', nick_name_str)); --??????????????????
end if;
else
exit;
END IF;
END LOOP;
end;
end if;
RETURN res; --????????
END SPLIT_QUERY_NICKNAME;
###### 目前已知当前函数是传个code进去翻译成对应得汉字返回来