PL/SQL 从电话号码中删除不需要的字符

     2023-03-28     249

关键词:

【中文标题】PL/SQL 从电话号码中删除不需要的字符【英文标题】:PL/SQL Remove unwanted characters from a phone number 【发布时间】:2014-09-18 00:30:06 【问题描述】:

我环顾四周,似乎找不到这个问题的直接答案。我对如何做到这一点感到困惑。我应该使用正则表达式还是有更好的方法来做到这一点。

我有一个程序可以根据电话号码的开头和长度来格式化电话号码。我希望能够在格式化之前先清理电话号码。所以我的导师输入了一个看起来像这样的电话号码

07A3345&6543

我想在格式化之前从电话号码中删除 A 和 &。

谢谢

【问题讨论】:

【参考方案1】:

您可以使用translate() 执行此操作。一种方法是明确说明您要删除的内容:

select translate(phone, '0123456789', '0123456789A&')

另一种方法是更聪明,只保留数字:

select translate(phone, '0123456789' || translate(phone, 'a0123456789', 'a'), '0123456789')

这将删除所有非数字字符。

【讨论】:

【参考方案2】:

如果你只需要删除非数字字符,你可以试试这个:

TRANSLATE(phone,'0123456789'||phone,'0123456789')

这会将字符09 映射到它们自己,并将电话号码中的任何其他字符映射到nothing——实际上是丢弃它们。

举个例子:

DECLARE
  phone VARCHAR(20) := '07A3345&6543';
BEGIN
  DBMS_OUTPUT.PUT_LINE(TRANSLATE(phone,'0123456789'||phone,'0123456789'));
END

将显示:

0733456543

【讨论】:

pl sql oracle中有效的蜂窝号码

...是真的-从at获取例如数字正确:0521234567521234567-开始时只需要0052-1234567(052)1234567052-123-456-7数字不正确:0521230871234567我是怎么做到的??我试 查看详情

如何从 PL/SQL 中的字符串中删除最后 3 个单词? [复制]

】如何从PL/SQL中的字符串中删除最后3个单词?[复制]【英文标题】:Howtoremovethelast3wordsfromastringinPL/SQL?[duplicate]【发布时间】:2019-03-0712:17:42【问题描述】:我有这样的字符串:Jack&BauerLimitedCompanyBristolStreetfoodLimitedCompanyMünchenB... 查看详情

pl/sql 从数字到字符串的转换

...mbertostring【发布时间】:2011-09-2612:02:34【问题描述】:我需要在不使用内置函数的情况下将数字转换为pl/sql中的字符串,我们应该为此使用字符串/模块操作。例如如果输入是123那么输出应该是123谁能给我关于这个的建议吗?【... 查看详情

使用 PL SQL 删除

】使用PLSQL删除【英文标题】:DeleteusingPLSQL【发布时间】:2014-12-1108:46:55【问题描述】:如何通过提供输入文件使用PLSQL执行删除操作?我不想冒险直接从表中删除。是否可以通过将值作为输入来删除?如果有怎么办?【问题讨... 查看详情

从 SQL Server 中的 VARCHAR 中删除非数字字符的最快方法

...:18【问题描述】:我正在编写一个导入实用程序,它使用电话号码作为导入中的唯一键。我需要检查我的数据库中是否不存在该电话号码。问题是数据库中的电话号码可能有破折号和括号之类的东西,可能还有其他 查看详情

PL SQL 删除非 Ascii 字符,但不删除回车符

】PLSQL删除非Ascii字符,但不删除回车符【英文标题】:PLSQLRemoveNonAsciicharacterbutnotcarriagereturns【发布时间】:2021-07-0908:08:19【问题描述】:我正在尝试使用PLSQL删除非ascii字符。我尝试使用下面的代码,但它也删除了我不想要的回... 查看详情

匹配字符列表中的 PL/SQL 正则表达式破折号和括号

...:2014-05-0612:00:13【问题描述】:我的问题是我需要从列中删除所有无效字符,但破折号和括号字符是有效的。到目前为止,我的sql是:SELECTREGEXP_REPLACE(column_name,\'[^][-0-9a 查看详情

查找行删除的 PL/SQL 源

】查找行删除的PL/SQL源【英文标题】:FindingPL/SQLsourceofrowdeletion【发布时间】:2011-03-3014:14:43【问题描述】:我在一个10g数据库中继承了一些讨厌的PL/SQL代码,这些代码不正确地从特定表中删除了行。我知道删除正在发生,因为... 查看详情

Oracle pl/sql:在事务中执行动态删除

】Oraclepl/sql:在事务中执行动态删除【英文标题】:Oraclepl/sql:executingdynamicdeletewithinatransaction【发布时间】:2018-07-2709:39:42【问题描述】:我需要从存储在表中的表列表中删除一行或多行,并且只有在所有删除都成功时才提交。... 查看详情

如何从 PL\SQL 中的字符串中选择最后 3 个单词?

】如何从PL\\\\SQL中的字符串中选择最后3个单词?【英文标题】:Howtoselectthelast3wordsfromastringinPL\\SQL?如何从PL\\SQL中的字符串中选择最后3个单词?【发布时间】:2019-03-0409:18:13【问题描述】:我有一列包含如下数据:EigenFoster教授... 查看详情

PL/SQL: ORA-00942: 表或视图不存在

...esnotexist\'。似乎select语句没有从游标中解析变量的名称。需要帮助以确保这可以从游标中读取表名 查看详情

如何从 api 响应中删除不需要的字符

】如何从api响应中删除不需要的字符【英文标题】:Howtoremoveunwatedcharactersfromapiresponse【发布时间】:2022-01-1218:41:34【问题描述】:我正在API响应中的NodeJS中创建api我得到/这个字符以下是我的api响应:staticasyncgetAdminOrders(logId,callb... 查看详情

使用pl/sql动态简化多表数据删除

】使用pl/sql动态简化多表数据删除【英文标题】:Simplifyingthedeletionofdatafrommultipletablesdynamicallyusingpl/sql【发布时间】:2011-11-0317:31:14【问题描述】:我需要编写一个oraclepl/sql过程来从多个表中删除数据。选择标准对于每个表,要... 查看详情

PL SQL - 使用动态 SQL 生成删除语句

】PLSQL-使用动态SQL生成删除语句【英文标题】:PLSQL-UsingDynamicSQLtoGenerateDeleteStatements【发布时间】:2015-11-0301:05:33【问题描述】:我想使用PLSQL创建一个存储过程,它允许我查找包含特定列的所有表,然后从那些表中删除在该列... 查看详情

PL / SQL 在整个数据库中搜索字符串

...题,它是一个信息共享帖子。我今天遇到了一种情况,我需要在应用程序的整个数据库中查找一个问题,但不知道它属于哪个表/列。以下是我编写并用于帮助我提出建议的PL/SQL块。希望它可以帮助其他有类似要求的人。DeclareiNUM... 查看详情

过程中的 Pl/Sql Oracle 函数

...inaprocedure【发布时间】:2015-05-1403:11:35【问题描述】:我需要创建一个需要更新学生情况的程序,但我需要使用一个函数,为获批的学生返回“A”,为未获批的学生返回“R”。在此之后,我需要使用从函数返回的“A”或“R”... 查看详情

如何从 PL SQL Developer 的连接中找出 Oracle 连接字符串?

】如何从PLSQLDeveloper的连接中找出Oracle连接字符串?【英文标题】:HowtofigureoutOracleConnectionStringfromPLSQLDeveloper\'sconnection?【发布时间】:2015-09-2420:59:45【问题描述】:我在笔记本电脑上安装了(由我的公司预装)PL/SQLDeveloper,当... 查看详情

6.04从字符串中删除不需要的字符

需求:删除所有的0和元音字母。 selectename,replace(replace(replace(replace(replace(ename,‘A‘,‘‘),‘E‘,‘‘),‘I‘,‘‘),‘O‘,‘‘),‘U‘,‘‘)asstripped1,sal,replace(sal,0,‘‘)stripped2fromemp; 查看详情