`
wsql
  • 浏览: 12101605 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Oracle PL/SQL 过滤非数字字符

 
阅读更多

背景:给同事做了个报表,使用时从EXCEL、网页等向报表中拷贝查询条件(局编)。

用户反映查不出数据——调查后发现用户填的局编带有空格——随手加了TRIM

又有查不出数据的情况——带有全角空格——用Replace替换全角空格

还有查不到,调查发现可能混有换行、EXCEL中神秘的空白符等。

处理:第一反应是让用户粘贴前先转贴到记事本中,“过滤”一下无效字符。简单、有效,但很不友好。

解决:咨询后得知合理的局编仅由数字组成,那么可以放心的滤掉所有非数字字符。(注:10g以后用regex_replace很容易实现。)

对此Oracle提供了translate(a, b, c)函数:

  • a,b,c三个参数均是字符串
  • 当a,b,c中任一个为NULL时,返回NULL。
  • 否则,对a中每个字符x、在b中查找:
    如找不到,则追加x到返回值中,
    如找到,则再尝试从c中取对应位置的字符y(例如x出现在b中、是第6个字符,则从c中也取第六个字符,若c不足6个字符,则y为NULL)
    如y不为NULL,追加y到返回值中
    如y为NULL,忽略x

非数字字符太多,不可能一一列出。因此分两步:首先滤出非数字字符f:

然后将f作为过滤串再滤一次,即可得到纯数字串(拼接一个0前缀保证非空,避免返回NULL),组合起来:



分享到:
评论

相关推荐

    Oracle PL/SQL实战(待续)

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计特性,是Oracle数据库系统中用于创建存储过程、函数、触发器和包的主要工具。在这个"Oracle PL/SQL实战(待续)"的主题中,我们将深入...

    ORACLE PL/SQL从入门到精通

    ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括触发器、过程、函数、软件包、异常处理、游标、循环、分支、变量使用、数据库安装等关键知识点。 触发器是数据库中用来保证数据...

    Oracle资料学习PL/SQL必备

    2. **数据类型**:PL/SQL支持多种数据类型,包括数值类型(如NUMBER)、字符串类型(如VARCHAR2、CHAR)、日期时间类型(如DATE)、布尔类型(BOOLEAN)以及复合数据类型(如记录和数组)。 3. **变量声明和赋值**...

    Oracle PL/SQL学习官方教材

    例如,PL/SQL中的块由BEGIN、END语句界定,变量和常量用于存储数据,数据类型包括数字、字符串、日期等。 2. **流程控制**:PL/SQL提供了多种流程控制结构,如条件语句(IF-THEN-ELSIF-ELSE)、循环(WHILE、FOR、...

    Oracle PL/SQL编程及最佳实践

    PL/SQL 提供了多种数据类型,例如数字、字符、日期等。数字类型包括整数、浮点数等。字符类型包括字符、字符串等。日期类型包括日期、时间等。 十、基本类型(系统预定义类型) PL/SQL 提供了多种基本类型,例如...

    Oracle PL/SQL语言初级教程

    Oracle PL/SQL 语言是Oracle数据库系统中的一种高级编程语言,它是SQL的扩展,专为数据库管理和应用程序开发设计。PL/SQL集成了SQL的查询、操纵、定义和控制功能,并添加了过程化编程元素,使其成为数据库管理和开发...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    Oracle PL/SQL是一种强大的编程语言,它将数据库管理和应用程序逻辑紧密结合起来,是Oracle数据库系统中的核心组件之一。这本书“Oracle PL/SQL实例编程”显然旨在深入讲解如何利用PL/SQL进行实际开发工作,通过实例...

    oracle_oracle_oraclepl/sql_

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作能力和过程性编程语言的控制结构。在"Oracle PL/SQL"这本书中,作者深入浅出地探讨了这一语言的核心概念和实用技巧,尤其适合法语...

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    Oracle PL SQL程序设计 上 第五版(代码示例)

    《oracle pl/sql程序设计(第5版)》基于oracle数据库11g,从pl/sql编程、pl/sql程序结构、pl/sql程序数据、pl/sql中的sql、pl/sql应用构建、高级pl/sql主题6个方面详细系统地讨论了pl/sql以及如何有效地使用它。...

    oracle pl/sql fundamentals

    11. **实用程序和内置函数**:熟悉Oracle提供的各种内置函数,如数学函数、字符串函数、日期时间函数等,以及如何利用它们增强PL/SQL代码的功能。 12. **数据库对象的DDL操作**:学习如何在PL/SQL中创建、修改和...

    ORACLE PL/SQL804+中文补丁

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作能力和Procedural Language的控制结构,使得开发人员可以创建复杂的数据库应用程序。"ORACLE PL/SQL 804+中文补丁"是针对Oracle...

    PL/SQL入门到精通书的源代码

    PL/SQL是Oracle数据库系统中的过程式语言,它结合了SQL的数据操作能力与结构化编程语句,使得开发者能够创建复杂的数据处理逻辑和业务规则。本资料“PL/SQL入门到精通书的源代码”是一份针对初学者到高级用户的实践...

    Oracle PL/SQL Programming

    14. **PL/SQL内置函数**:Oracle提供了大量的内置函数,如数学函数、字符串函数、日期时间函数等,用于处理各种数据类型。 15. **动态SQL**:通过EXECUTE IMMEDIATE语句,可以在运行时构建和执行SQL,增强了程序的...

    PL/SQL Developer 远程连接Oracle数据库

    PL/SQL Developer是一款专为Oracle数据库设计的集成开发环境,它极大地简化了PL/SQL语言的编写、调试和管理任务。远程连接Oracle数据库是PL/SQL Developer的一项关键功能,允许用户在本地计算机上操作和管理远程...

    oracle PL/SQL测试题目和详细答案

    ### Oracle PL/SQL测试题目与知识点解析 #### 一、选择题知识点解析 **1. Oracle数据库中为新创建的表分配的初始空间通常为多大?** - **知识点解析:** Oracle数据库为新创建的表分配的空间单位是“区”(Extent...

    Oracle PL/SQL程序设计(第5版)(下册) 第一部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    Oracle PL/SQL

    PL/SQL 支持多种数据类型,包括数字、字符、日期和时间等。开发者可以根据需要选择合适的数据类型来声明变量。同时,PL/SQL 也支持复杂的数据类型,如数组、记录和集合等。 PL/SQL 是一个功能强大且灵活的编程语言...

    oracle pl/sql 编程大全

    ### Oracle PL/SQL 编程知识点详解 #### 一、SQL PLUS 命令与用法 ##### 1. 引言与 SQL 命令 SQL PLUS 是一个功能强大的命令行工具,用于与 Oracle 数据库进行交互。SQL PLUS 支持一系列标准 SQL 命令,这些命令...

    Oracle PL/SQL 高级程序设计

    - **变量和数据类型**:PL/SQL支持多种数据类型,包括数字类型、字符类型、日期类型等。 - **流程控制结构**:PL/SQL提供了丰富的流程控制结构,如IF-THEN-ELSE语句、CASE语句、FOR循环、WHILE循环等。 - **异常处理...

Global site tag (gtag.js) - Google Analytics