`
lffsonic
  • 浏览: 4555 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle字符串中数字处理

阅读更多
declare   
  i integer :=123; --增量  
  v_i varchar2(25) :='123456789A0000001234';--序列号  
begin  
  dbms_output.enable; --设置输出  
  v_i :=substr(v_i,1,13)||(substr(v_i,14) + i - 1);  
  dbms_output.put_line(v_i);  


输出结果为123456789A0001357 ;

发现substr(v_i,14)截取后七位进行计算时,pl/sql会自动把字符转换成整数,把前面的‘0’去掉了。

研究oracle内部函数,发现有个函数可以进行格式转换成字符串 to_char(exp,'reg') exp为要转换的数字等,reg为转换格式

修改v_i := substr(v_i,1,13)||to_char(substr(v_i,14)+i,'0000000');--reg为7个‘0’,如果要保持位数的正确,前面补‘0’

输出结果为:123456789A000 0001357,

发现中间多个空格,不知道什么原因。继续使用oracle 内部函数trim(exp)去掉exp两端空格

修改为:v_i := substr(v_i,1,13)||trim(to_char(substr(v_i,14)+i,'0000000'));

输出结果为:123456789A0000001357,。这是我们想要的

总结,要对oracle内部函数很熟悉啊,不过上面可能有个BUG,如果后七位产生进位,上面处理就不正确了,所有要通过业务来控制字符截取位数。

ps:关于字符串填充可以使用lpad左填充字符和rpad右填充字符,上面可以改为:

v_i := substr(v_i,1,13)||lpad(substr(v_i,14)+i,7,'0'); --7为填充字符位数,‘0’为填充字符

分享到:
评论

相关推荐

    oracle通过sql实现字符串转数字oracle函数

    在Oracle数据库中,将字符串转换为数字是一项常见的操作,特别是在处理包含数字的字符串列时,可能需要进行数值计算或按照数值大小进行排序。本篇文章将深入探讨如何在SQL查询中利用Oracle提供的函数来实现这一目标...

    oracle 如何判断一个字符串能否转换为数字?

    ### Oracle 判断字符串是否能转换为数字的方法 在Oracle数据库中,我们经常需要处理各种数据类型...通过上述方法,我们可以在Oracle中有效地判断一个字符串是否可以转换为数字,从而避免因类型转换错误而导致的问题。

    oracle非数字合计,将字段中含有汉子的数据自动转换为 数字0

    这会导致后续的数据分析和汇总操作出现问题,因为Oracle默认情况下无法对包含非数字字符的字符串进行数值计算。 例如,在`table`表中有一个名为`column_name`的字段,该字段中可能存在诸如“一千”、“二万”这样的...

    oracle将字符串转为number

    在Oracle数据库环境中,有时我们需要将存储为字符串的数据转换为数值类型以便进行数学运算或进一步的数据分析。这在处理财务数据、统计分析等场景中非常常见。本文将详细介绍如何在Oracle中将字符串转换为Number类型...

    解决Oracle字符串中包含数字、特殊符号的排序问题

    在Oracle数据库中,排序字符串时,如果字符串内包含数字或特殊符号,可能会导致不期望的排序结果。这是因为Oracle默认按照字典顺序(ASCII值)排序,数字的ASCII值小于大多数字母,因此“1”会排在“2”之前,但也会...

    截取用,分割的字符串中的第n个字符串 SQL

    根据给定的信息,本文将详细解释如何在SQL中实现截取用特定字符分割的字符串中的第n个子字符串。此需求通常应用于数据处理与分析场景中,尤其在处理半结构化或非结构化的文本数据时非常有用。 ### 核心知识点解析 ...

    oracle过滤数字

    本文将围绕“Oracle过滤数字”这一主题展开,详细介绍如何在Oracle环境中实现对字符串中数字的过滤,并通过具体实例来帮助读者更好地理解和掌握相关技巧。 #### 一、Oracle过滤数字的基本原理 在Oracle中,可以...

    oracle字符串操作.pdf

    Oracle数据库系统中,字符串操作是数据库...通过熟练掌握这些Oracle字符串操作和数值函数,你可以更高效地进行数据查询和处理,提升数据库管理的效率。在实际应用中,这些知识将帮助你编写出更加灵活和高效的SQL语句。

    oracle字符串操作.docx

    Oracle数据库在处理字符串操作方面提供了丰富的函数和语法,使得数据查询和处理变得更加灵活。在文档中提到的Day02 Oracle 字符串操作部分,主要介绍了以下几个重要的知识点: 1. **DQL (Data Query Language)**: ...

    ORACLE常用数值函数、转换函数、字符串函数介绍

    ### ORACLE常用数值函数、转换函数、字符串函数详细介绍 #### 数值函数 1. **ABS(M)** - **功能**: 返回数值M的绝对值。 - **示例**: 如果输入`-123`, 函数返回`123`。 2. **MOD(M, N)** - **功能**: 返回M...

    Oracle中金额大小写转换

    总的来说,Oracle中进行金额大小写的转换涉及到对数字字符串的处理、自定义函数的编写以及对汉字数字的映射理解。虽然Oracle本身不直接提供这样的功能,但我们可以通过PL/SQL编程来实现。希望这个示例能帮助你理解并...

    Oracle数据库中单行字符串函数简介

    Oracle数据库中的单行字符串函数是处理和操作字符串数据的关键工具,它们主要用于字符串的组合、转换、查找、截取等操作。下面将详细介绍这些函数的功能和用法。 1. ASCII() 函数:ASCII()函数接收一个字符串作为...

    oracle数字转换中文

    这个函数的核心目的是将输入的数字(以字符串形式)转换为其对应的中文大写形式,这在财务报表、合同文档等场合中非常有用。 #### 函数内部结构 1. **初始化变量**:首先定义了几个用于存储中间计算结果和最终输出...

    Oracle中的日期和字符串互相转换

    ### Oracle中的日期和字符串互相转换 在Oracle数据库中,日期和字符串之间的转换是十分常见的操作。这类转换在处理数据时非常有用,可以帮助我们更高效地管理和查询数据。本文将详细介绍Oracle中日期与字符串互相...

    ORACLE 正数转换为字符串如何去掉前导空格

    在Oracle数据库中,处理正数转换为字符串时可能出现的前导空格问题可以通过两种方式进行解决:一是使用`FM`格式元素直接在`TO_CHAR()`函数中避免添加前导空格;二是使用`LTRIM()`函数去除已存在的前导空格。这两种...

    在SQL查询中如何截取字符串后转成数值型?

    在SQL查询中,数据类型转换是一项常见的操作,尤其是在处理包含数字的字符串时。将字符串截取后转换为数值型(如整数或浮点数)是数据库管理中的一个实用技能,它能帮助我们进行更精确的数据分析和计算。本文将详细...

    ORACLE中CLOB字段转String类型

    本文将详细介绍如何在Oracle中实现CLOB字段到字符串类型的转换,并探讨其中的关键技术和注意事项。 #### 一、CLOB概述 1. **定义**: - `CLOB`是Oracle数据库提供的一种特殊的数据类型,用于存储大文本数据。 - ...

    oracle函数大全-数字-字符-日期-聚合函数

    `REPLACE()`函数可替换字符串中的特定子串,而`INSTR()`函数则用于查找子串在字符串中的位置。`LPAD()`和`RPAD()`函数分别用于在字符串左侧和右侧填充指定字符以达到指定长度。 日期函数是Oracle中的另一大亮点,...

    oracle常用字符函数

    Oracle数据库系统提供了丰富的函数库,包括字符...这些函数在日常的Oracle数据库查询和数据处理中非常常见,能够帮助用户更高效地管理和操作数据。理解并熟练运用这些函数,对于提升数据库操作的效率和准确性至关重要。

    oracle函数大全-数字处理函数

    本文将深入探讨Oracle中的数字处理函数,帮助你更好地理解和利用这些功能强大的工具。 1. **ROUND() 函数** ROUND() 用于四舍五入数字到指定的小数位数。例如,`ROUND(123.456, 2)` 将返回 `123.46`。你可以指定...

Global site tag (gtag.js) - Google Analytics