网站首页 > 文章中心 > 其它

oracle怎么去除中文字符

作者:小编 更新时间:2023-08-25 07:43:23 浏览量:398人看过

ORACLE中怎样用正则表达式过滤中文字符

从表里提取汉字, 需要考虑字符集, 不同的字符集汉字的编码有所不同

那么也就是汉字是双字节的,且简体汉字的编码范围是

oracle怎么去除中文字符-图1

换算成10进制就是

我们先看一下asciistr函数的定义

但是这并不表示以 "\" 开始的字符就是汉字了

举例如下

SQL select * from test;

NAME

--------------------

,啊OO10哈

土嘎嘎的粉丝们大家好aa

大家好aa/

★ABC

oracle怎么去除中文字符-图2

然后用asciistr函数转换一下试试

SQL select name,asciistr(name) from test;

NAME ASCIISTR(NAME)

-------------------- ----------------------

我们看到最后一条记录的实心五角星也是 "\"开头的

此时我们就不能用asciistr(字段)是否存在 "\" 来判断是否含有汉字了.

[PHP]

as

v_comma pls_integer;

v_code_q pls_integer;

v_code_w pls_integer;

begin

if p_name is not null then

for i in 1..length(p_name) loop

v_comma := instrb(v_code,',');

v_code_q := to_number(substrb(v_code,1,v_comma-1));

v_chinese := v_chinese||substr(p_name,i,1);

end if;

v_code := ltrim(v_code,',');

end loop;

return v_chinese;

else

return '';

end;

/

.

[/PHP]

好,现在来执行一些语句

① 列出有汉字的记录

SQL select name from test where length(get_chinese(name))0;

SQL select get_chinese(name) from test where length(get_chinese(name))0;

GET_CHINESE(NAME)

---------------------------------------------------------------------------

啊哈

土嘎嘎的粉丝们大家好

大家好

大海

============

改写这个函数,可以提取非汉字或者汉字

该函数有两个参数,第一个表示要提取的字符串,第二个是1,表示提取汉字,是非1,表示提取非汉字

create or replace function get_chinese

(

v_comma pls_integer;

v_code_q pls_integer;

v_code_w pls_integer;

v_non_chinese := v_non_chinese||substr(p_name,i,1);

if p_chinese = '1' then

return v_non_chinese;

SQL select * from a;

我们啊、

他(艾呀)是★们

他的\啊@

SQL select get_chinese(name,1) from a;

GET_CHINESE(NAME,1)

-----------------------------------------

我们啊

他艾呀是们

他的啊

SQL select get_chinese(name,0) from a;

GET_CHINESE(NAME,0)

()★

\@

SQL

如何解决Oracle数据库中文乱码问题

第一段:pl/sql developer 中文字段显示乱码

原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的.

第二段:查看和修改oracle数据库字符集:

select userenv('language') from dual;

查询结果:

--修改oracle数据库字符集:(在SQL Plus中)

sql conn / as sysdba;

sql shutdown immediate;

database closed.

database dismounted.

oracle instance shut down.

sql startup mount;

oracle instance started.

database mounted.

sql alter system enable restricted session;

system altered.

sql alter system set job_queue_processes=0;

如何利用oracle正则表达式去除字段中含有的汉字

我尝试着写了一个,如果都是只在前后有中文,那么这个应该可以.你试试,我这里可没有环境去测试.

SELECT regexp_substr(changpai, '[[:alnum:]]+') FROM huishou.dx_new_car;

以上就是土嘎嘎小编为大家整理的oracle怎么去除中文字符相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章