搜索
首页电脑教程电脑知识解决Oracle中CHAR类型数据中空格问题的方法是什么?

解决Oracle中CHAR类型数据中空格问题的方法是什么?

解决Oracle中CHAR类型数据中空格问题的方法是什么?

可以用脚本把CHAR类型字段全部转换成VARCHAR2类型,同时截掉字符串的空格,如下:

declare

begin

for c in (select *

from user_tab_columns t1

where t1.DATA_TYPE = 'CHAR'

) loop

execute immediate 'alter table ' || c.table_name || ' add g_w_' || c.column_name || ' varchar2(' || c.char_length || ')';

execute immediate 'update ' || c.table_name || ' set g_w_' || c.column_name || ' = ' || c.column_name;

execute immediate 'update ' || c.table_name || ' set ' || c.column_name || ' = null';

execute immediate 'alter table ' || c.table_name || ' modify ' || c.column_name || ' varchar2(' || c.char_length || ')';

execute immediate 'update ' || c.table_name || ' set ' || c.column_name || ' = trim(g_w_' || c.column_name || ')';

execute immediate 'alter table ' || c.table_name || ' drop column g_w_' || c.column_name;

end loop;

end;

如何去除Oracle库表结构中的类空格字符

1.首先是去除空格在进行比较(比如,把姓名中的所有空格去除):

Update table_name set xm=replace(xm , ' ') ;

如果要查找哪些记录含有' ',可用相关的语句查找。

然后可进行比较。

2.但是我们可能会发现,有些姓名中间或末尾还有类似空格的字符没被去掉,但它们显然已经不是一般的空格了,那么怀疑是Tab健作怪。于是参照网上说的去掉TAB键的办法来处理,用chr(9)来替代空格键(TAB键的ASCII值为9)。先取一条带有类空格字符的记录来做实验:

SELECT replace(xm, chr(9) ) from table_name where;

用这个办法会去掉一些真正的Tab键空格,然后采取批量更新的办法。

3.但我遇到的情况没有这么幸运,没能去掉类空格键。怎么办呢?我决定尝试先取得这个类空格键的ASCII码值,然后再用chr(ASCII码值)的方法来处理。

①.取得含类空格键整个字符串的长度 length(),从而确定出类空格键在字符串中的起始位置、类空格键的长度。

②.出类空格键的ASCII码值:ascii(substr(xm,n,m)); n为类空格键的起始位置;m为长度。

③.SELECT replace(xm, chr(第②步得的ASCII码值) ) from table_name where;

问题得以解决。但我发现,上述第②步得的ASCII码值为41377,这应该是一个汉字的ASCII码值,看起来又像空格,于是我怀疑,会不会是中文状态下的空格键、TAB键?尝试之后发现不是。我又怀疑,是不是全角、半角的区别?因为我们一般输入字符,是在半角下输入的。我按照第一步“1.首先是去除空格在进行比较……”尝试,输入全角下的空格,进行查找,结果惊喜出现,原来所有未剔除掉的类空格,是全角状态下输入的空格,并接证实了全角下输入的空格,其ASCII码值为41377。

以上是解决Oracle中CHAR类型数据中空格问题的方法是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:Excel办公网。如有侵权,请联系admin@php.cn删除
修复'先锋的这种构建不合规”错误 -  Minitool修复'先锋的这种构建不合规”错误 - MinitoolApr 15, 2025 am 12:50 AM

在尝试在Windows 11上启动Valorts时,您可能会遇到“ Vanguard的这种构建不合规”问题。为什么出现错误消息?如何摆脱错误消息?来自PHP.CN的这篇文章提供了详细信息。

如何在Windows 10/11上下载RTX 4050驱动程序?如何在Windows 10/11上下载RTX 4050驱动程序?Apr 15, 2025 am 12:49 AM

NVIDIA GEFORCE RTX 40系列GPU对您来说可能不是新事物。与其他顶级图形卡相比,您中的许多人可能会以可接受的价格更加关注中端主流RTX 4050。阅读PHP.CN网站的本指南以获取D

KB2267602无法安装:这是解决方法!KB2267602无法安装:这是解决方法!Apr 15, 2025 am 12:48 AM

KB2267602是Windows Defender的保护或定义更新,旨在修复Windows中的漏洞和威胁。一些用户报告说他们无法安装KB2267602。这篇来自PHP.CN的帖子介绍了如何修复“ KB2267602 FAI

在Windows 11中重新安装预安装软件的两种方法在Windows 11中重新安装预安装软件的两种方法Apr 15, 2025 am 12:47 AM

如果需要这样做,您知道如何重新安装Windows 11中的预安装软件吗?在这篇文章中,我们将介绍两种简单的方法。此外,如果要在Windows计算机上恢复文件,则可以尝试使用PHP.CN电源数据恢复。

修复:桌面和文件文件夹不会自动刷新修复:桌面和文件文件夹不会自动刷新Apr 15, 2025 am 12:46 AM

进行一些更改时,Windows桌面或文件资源管理器或文件夹将自动刷新本身。但是,一些Windows 11/10用户报告说,他们遇到了“桌面和文件文件夹不会自动刷新”问题。这篇文章f

修复:此Windows安装程序软件包有问题修复:此Windows安装程序软件包有问题Apr 15, 2025 am 12:45 AM

当您尝试在Windows 11/10上安装程序时,您可能无法安装它并接收错误消息 - 此Windows Installer软件包存在问题。 PHP.CN的这篇文章可帮助您修复它。

防病毒扫描可以加密文件吗?安全与隐私防病毒扫描可以加密文件吗?安全与隐私Apr 15, 2025 am 12:44 AM

当您在设备上运行防病毒软件时,您可能希望它扫描所有文件和文件夹以获取病毒。但是,出现一个问题:防病毒扫描可以加密文件吗?该询问深入研究了安全与隐私领域。 php.cn So

在Windows PC上免费下载或更新HDMI视频驱动程序在Windows PC上免费下载或更新HDMI视频驱动程序Apr 15, 2025 am 12:43 AM

如何在Windows上下载HDMI视频驱动程序?如何将HDMI驱动程序更新为最新版本。您可以在这里找到方法。此外,您可以尝试使用PHP.CN电源数据恢复,以便在必要时丢失和删除的文件。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具