sql - Oracle 修剪字符串内部的空格

标签 sql oracle whitespace removing-whitespace

我在我的系统中将电话号码存储为 VARCHAR2,以允许用户在他们的电话号码前输入“+”字符(如果他们愿意的话)。

我的正则表达式完美地实现了这一点,但是当将数字存储在数据库中时,我想去掉用户可能输入的所有空格。

我的正则表达式允许以下格式

+4470123456789
+447 0123456789
+447 01234 56789
01234567890
01234 567890
01234 567 890

我知道我可以通过不让用户在他们的数字中添加任何空格来解决我的问题,但我从个人经验中知道由于客户端的一些愚蠢的格式而导致验证错误是多么令人沮丧。我已经尝试在我的 INSERT/UPDATE 触发器上使用 TRIM 函数,但我意识到它仅限于前面和后面的空格,我可以使用 Oracle 中的任何其他函数来删除内部空格吗?还是我需要编写自己的函数来做到这一点?

任何指针将不胜感激。

最佳答案

你想试试replace (telno, ' ', '') .

关于sql - Oracle 修剪字符串内部的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21484677/

相关文章:

MySQL 选择表中最近的较低值

sql - 索引字段上的多个过滤器

oracle - 使用 sqlloader 将 clob 列添加到 Oracle 数据库

vim - 让 Vim 将所有空格显示为一个字符

php - Wordpress 首页底部的大量空白

sql - 从 3 个带有外键的表中选择查询

mysql - 根据标识符和来自另一行的值选择行

java - 超时后如何重新建立 JDBC 连接?

java.sql.BatchUpdateException : ORA-01849: hour must be between 1 and 12

lisp - 在 Common Lisp 中用空格加入数字?