关于oralce中字段提取中文部分的代码

张大同AA 2020-04-05 12:29:28
下面附上代码
有一点我想知道那个ASCII 值大于45216是什么意思?

CREATE OR REPLACE FUNCTION getCustText (custName VARCHAR2)
RETURN VARCHAR2
IS
Result VARCHAR2 (100); --返回的结果字符串
tmp_custName VARCHAR2 (100); --临时变量
count_str NUMBER; --字符串中字符的个数
i NUMBER := 1; --循环变量
str_ascii NUMBER; --当前等待判断字符的ascii码
current_char VARCHAR2 (10); --当前等待判断的字符
BEGIN
SELECT LENGTH (custName) INTO count_str FROM DUAL; --取出待处理字符串的长度

WHILE i < count_str
LOOP ---根据待处理字符串长度(counts)?,逐个字符判断处理
current_char := SUBSTR (custName, i, 1);

SELECT ASCII (current_char) INTO str_ascii FROM DUAL;

IF str_ascii > 45216
THEN
tmp_custName := tmp_custName || current_char;
END IF;

i := i + 1;
END LOOP;

Result := tmp_custName;
RETURN (Result);
END getCustText;
...全文
124 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2020-04-05
  • 打赏
  • 举报
回复
45216 应该是汉字“阿” 或是 “啊” ,也就是头一个汉字的编码。
lhdz_bj 2020-04-05
  • 打赏
  • 举报
回复
中文的ASCII码值的范围是45217~63486。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧