1、Oracle PL/SQL中的字符串及函数介绍

2023-05-16

该文章是 PL/SQL基础(3):小专题 系列文章之一。

Oracle中常用的字符串类型有:固定长度(CHAR等)、可变长度(VARCHAR2等)和大对象(CLOB)三类。CHAR为固定的长度字符串,而VARCHAR2是可变长度的字符串,理论长度32,767。对于CHAR类型,如果设置小于CHAR长度的值,则Oracle会自动用空格填充的。CLOB类型长度最大为128TB。

         Oracle中常用的字符串操作函数(同样可以用于表名操作)包括:

1.LOWER(string) 将输入的字符串转换成小写

2.UPPER(string) 将输入的字符串转换成大写

3.INITCAP(string) 将输入的字符串每个单词的首字母转换成大写。

4.连接符(||),将两个字符串用||连接起来,除此之外还可以使用Concat函数来连接字符串。例:select CONCAT(City,country) from Table

5.LPAD和RPAD,左填充函数和右填充函数。允许在列的左[右]边填充一组字符。例:RPAD(city,20,'.'),如果ciy的值没有小于长度20的话,则用'.'在右边补齐,补到20个,如果是用空格补齐,看上去就是像右对齐一样。

6.LTRIM,RTRIM和TRIM,他们的作用是从字符串的左边,右边,左右两边删除不需要的字符,默认时删除空格。

格式:RTRIM、LTRIM(字符串,'删除字符集') 第一个参数就是要进行删除的字符,第二个参数是一个字符集。

7.LENGTH 获取字符串有多长,即字符串中有多少个字符。PS:不能对一个使用LONG数据类型的列使用LENGTH之类的函数。

8.SUBSTR(string,start [,count])提取出string一个子集,start开始位置,count提取长度,不指定count时,默认提取到该字符串的尾部。start同时也可以指定为负数,指定为正数的时候是从字符串的起始位置开始算(左边),指定负数时,是从末尾位置算(右边)。PS:负数不能使用于Char数据类型,因为Char是固定长度的,所以将使用空格填充他们的值,直到扩展到列的全长。

9. INSTR(string,set[,start [,occurrence ] ])返回指定的字符串所在的位置。如果指定start,oracle则跳过前面所有字符串到该位置开始搜索,occurence,是强迫instr跳过前几次与字符串匹配,给出下一次匹配的位置,如果occurence指定3,那就是匹配第三次的位置了。例 instr('ABACAAA','A',2,2) 从ABACAAA中匹配A这个字符串,从2个位置开始匹配,匹配第2次A所在的位置。PS:如果set中不止有一个字符而是有几个字符组成的,则INSTR给出该字符集中的第一个字符的位置。

10.Chr和ascii函数在即席查询中很少使用。Chr把数值转换成等价的ascii字符串 例:select chr(70) fromdual。ascii函数执行的结果刚好是相反的,传递给他字符串,它将转换成对应的数值(只转换第一个字符串),如果需要同时转换多个字符串可以使用DUMP函数 DUMP(string)。

 

其它函数:

11. INSTRB(x)和INSTR类似,只不过返回值是Byte类型。

12. LENGTHB(x)和LENGTH类似,只不过返回值是Byte类型。

13. SUBSTRB(x) 和SUBSTR类似,只不过返回值是Byte类型。

14. NANVL(x, value)同NaN(Not aNumber)比较,如果是,返回value值;如果不是返回x。

15. NLSSORT(x)更改字符串排序的方法,必须用在其它NLS函数之前。

16. NLS_INITCAP(x)同INITCAP(x)一样,只不过使用NLSSORT指定的字符串排序方法。

17. NLS_LOWER(x) 同LOWER (x)一样,只不过使用NLSSORT指定的字符串排序方法。

18. NLS_UPPER(x) 同UPPER (x)一样,只不过使用NLSSORT指定的字符串排序方法。

19. NVL(x, value)用于判断字符串x是否为null并返回指定值value。如果x是null,返回value;如果不是,返回x。

20. NVL2(x, value1, value2) 用于判断字符串x是否为null并返回指定值value1或value2。如果x是null,返回value1;如果不是,返回value2。

21. REPLACE(x, search_string,replace_string)搜索x寻找search_string替换为replace_string。

22. SOUNDEX(x)返回一个包含x发音的字符串。

 

引用:

http://www.cnblogs.com/Ss_Andy/archive/2011/03/23/1992037.html

http://www.tutorialspoint.com/plsql/plsql_strings.htm

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1、Oracle PL/SQL中的字符串及函数介绍 的相关文章

  • 如何停止 CTE 中的递归?

    我有一个数据库表 如下所示 ID PredecessorID Data 43b1e103 d8c6 40f9 b031 e5d9ef18a739 null 55f6951b 5ed3 46c8 9ad5 64e496cb521a 43b1e
  • Oracle 12 对 SQL 中的本地集合类型有问题吗?

    长话短说 我建议讨论下面看到的代码 运行时 Oracle 11 编译器引发 PLS 00306 调用 PIPE TABLE 时参数提示的数量或类型错误 PLS 00642 SQL 语句中不允许使用本地集合类型 Oracle 12编译下面的包
  • 触发器以捕获服务器中的架构更改

    是否可以实现类似以下触发器的东西 CREATE TRIGGER tr AU ddl All Server ON DATABASE WITH EXECUTE AS self FOR DDL DATABASE LEVEL EVENTS AS D
  • oracle中是否有相当于concat_ws的东西?

    我有大量的列试图聚合在一起 其中大多数都有 NULL 值 我想分隔确实以 出现的值但我在oracle中找不到有效的方法来做到这一点 CONCAT WS 正是我所需要的 因为它不会在 NULL 值之间添加分隔符 但 Oracle 不支持这一点
  • SQL Server 2005 - 达到表行大小限制

    有没有一种干净的方法可以在向表添加新列之前确定表的行大小 并且不超过 8060 字节的限制 例如 如果表行长度当前为 8055 字节 并且我想添加日期时间 8 字节 则这将结束 因为它将变为 8063 字节 不包括空映射 但是 如果我添加一
  • Rails 建模:将 HABTM 转换为 has_many :through

    我正在现有的 Rails 站点上进行维护工作 并且遇到了一些由多对多关联引起的问题 看起来该网站最初是使用has and belongs to many对于一些业务逻辑变得更加复杂的关系 所以我需要使用has many through而是支
  • 如何在 SQL 中的时区中使用“America/New_York”

    我有这段代码在 SQL 中运行良好 但是我想使用不同的时区格式 例如 America New York 代替 US Eastern Standard Time SELECT TODATETIMEOFFSET CAST CURRENT TIM
  • SQL Server 数据库中的表具有互斥外键的最佳实践

    在这里 我正在寻找针对以下问题的优缺点的最佳解决方案 Entity1 E1 pk 与其他不同的列 Entity2 E2 pk 与其他不同的列 Entity3 E3 pk 与其他不同的列 我需要创建之间的关系Entity1 and Entit
  • SQL Server - 在设置 COLLATE Latin1_General_CS_AS 的情况下搜索不区分大小写

    家长提问 https stackoverflow com questions 50974562 sql server update to match and replace only exact words感谢 Iamdave 部分问题得到
  • SQL Server:将 varchar 转换为十进制(也考虑指数表示法)

    我需要转换表的数据并进行一些操作 其中一种列数据类型是Varchar 但它存储decimal数字 我正在努力转换varchar into decimal 我努力了CAST TempPercent1 AS DECIMAL 28 16 问题是数
  • 使用 SQLite 创建列表树

    我正在尝试使用 PHP 和 SQLite 表设置创建一个分层列表 如下所示 itemid parentid name 1 null Item1 2 null Item2 3 1 Item3 4 1 Item4 5 2 Item5
  • SQL:列出多个连接语句中的重复记录?

    你好 以下查询在连接多个表后返回所有员工 select e from dbo EMP e join dbo HREMP a on a ID e ID join dbo LOGO c on c EMPID e id join dbo LOGO
  • (PLSQL) 在 Oracle 更新触发器中测试更改值的最简单表达式是什么?

    这是一个可以解决问题的布尔表达式 nvl new location old location new location is null old location is null 但我想有一个更简单的表达方式 有任何想法吗 这些较短的方法都有
  • 导出 Azure SQL 数据库时出现错误 SQL71501

    导出 Azure SQL 数据库时出现奇怪的错误 导出一直工作正常 直到最近发生一些架构更改 但现在出现错误 SQL71501 该数据库是V12 兼容性级别130 尽管master数据库仍兼容级别 120 该问题似乎是由一个新的表值函数引起
  • 小数除以小数并得到零

    为什么当我这样做时 select CAST 1 AS DECIMAL 38 28 CAST 1625625 AS DECIMAL 38 28 我得到 0 吗 但是当我得到 0 时 select CAST 1 AS DECIMAL 20 10
  • 不使用窗口函数实现 SQL 查询

    我读过 可以通过创造性地使用连接等来实现在 SQL 窗口函数中可以执行的任何操作 但我不知道如何实现 我在这个项目中使用 SQLite 它目前没有窗口函数 我有一个有四列的表 CREATE TABLE foo id INTEGER PRIM
  • SQL查询多行变成单行

    有什么方法可以将通常返回具有相同值的多行的 SQL 查询更改为单行吗 例如 如果我现有的查询返回以下内容 ColA ColB 1 AA 1 BB 1 CC 2 AA 3 AA 我可以将查询更改为仅返回 3 行 并将 1 的第二个和第三个结果
  • SQL,帮助进行有关用户年龄的小查询

    我有一个包含注册用户的表 其中我将年份保存为 varchar 值 只是因为我只花了一年 我想创建包含年龄的饼图 以显示哪些用户更有可能注册 下面的查询给出了表中出现超过 5 次的用户年龄计数 以避免结果过小 虽然这些小结果低于 having
  • sqlite 插入需要很长时间

    我正在将不到 200 000 行插入到 sqlite 数据库表中 我只是在终端中通过 sqlite3 使用一个非常简单的 sql 文件 我打赌它已经运行了至少 30 分钟 这是正常现象还是我应该关闭该过程并尝试不同的方法 sqlite中的插
  • oracle日期序列?

    我有一个 oracle 数据库 我需要一个包含 2 年所有日期的表 例如来自01 01 2011 to 01 01 2013 首先我想到了一个序列 但显然唯一支持的类型是数字 所以现在我正在寻找一种有效的方法来做到这一点 欢呼骗局 如果您想

随机推荐

  • CUDA编译报错unsupported GNU version! gcc versions later than 10 are not supported!

    问题 xff1a python编译用于cuda的so文件中 xff0c 使用编译 cu文件出错 xff1a error unsupported GNU version gcc versions later than 10 are not s
  • RuntimeError: CUDA error: no kernel image is available for execution on the device

    问题 xff1a 代码换机器执行时 xff0c 使用包含自行编译的cuda算子库so时出错 xff1a RuntimeError CUDA error no kernel image is available for execution o
  • Ubuntu非LTS版本安装nvidia-docker出错:Unsupported distribution!

    问题 xff1a 按照Nvidia官方流程 xff0c 在Ubuntu22 10安装nvidia docker在执行以下命令时 distribution 61 etc os release echo ID VERSION ID amp am
  • 测试torch方法是否支持半精度

    并不是所有的torch方法都支持半精度计算 测试半精度计算需要在cuda上 xff0c cpu不支持半精度 因此首先需要创建半精度变量 xff0c 并放到cuda设备上 部分方法在低版本不支持 xff0c 在高版本支持半精度计算 xff0c
  • yolov5关闭wandb

    yolov5训练过程中wandb总是提示登入账号 xff0c 不登入还不能继续训练 xff0c 想要关闭wandb xff0c 直接不使用即可 在 yolov5 utils loggers wandb wandb utils py中 imp
  • 目标检测 YOLOv5的loss权重,以及与图像大小的关系

    1 目标检测 YOLOv5的loss权重 YOLOv5中有三个损失分别是 box obj cls 在超参数配置文件hyp yaml中可以设置基础值 xff0c 例如 box 0 05 cls 0 5 obj 1 训练使用时 xff0c 在t
  • 手写一个JSON反序列化程序

    上一篇文章 JSON是什么 给大家介绍了JSON的标准规范 xff0c 今天就自己动手写一个JSON的反序列化程序 xff0c 并命名它为 zjson 0 开始之前 本篇文章的目的是学习实践 xff0c 所以我们选择相对简单的Python实
  • yolov5源码解析--输出

    本文章基于yolov5 6 2版本 主要讲解的是yolov5是怎么在最终的特征图上得出物体边框 置信度 物体分类的 一 总体框架 首先贴出总体框架 xff0c 直接就拿官方文档的图了 xff0c 本文就是接着右侧的那三层输出开始讨论 Bac
  • yolov5源码解析--损失计算与anchor

    本文章基于yolov5 6 2版本 主要讲解的是yolov5在训练过程中是怎么由推理结果和标签来进行损失计算的 损失函数往往可以作为调优的一个切入点 xff0c 所以我们首先要了解它 一 代码入口 损失函数的调用点如下 xff0c 在tra
  • 多任务学习中各loss权重应该如何设计呢?

    来源 xff1a 22 封私信 80 条消息 多任务学习中各loss权重应该如何设计呢 xff1f 知乎 zhihu com 多损失在深度学习中很常见 xff0c 例如 xff1a 目标检测 xff1a 以 YOLO 为例 xff0c 它的
  • YOLOv5之autoanchor看这一篇就够了

    简单粗暴 xff0c 废话也不罗嗦了 xff0c 学习目的就是解决下面三个问题 xff0c 1 默认anchor t设置为4 xff0c 这个参数如何调整 xff1f 有没有必要调整 xff1f xff08 首先网上很多说这个参数是长宽比是
  • nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案

    由于断电 xff0c 服务器重启了 xff0c 当再次跑实验时 xff0c 发现cuda不可用 xff0c 于是输入 nvidia smi 才发现了一个错误 xff0c 如下 xff1a NVIDIA SMI has failed beca
  • nvidia-smi命令输出结果缓慢问题

    nvidia smi命令输出结果缓慢问题 xff0c 可能的原因和解决办法 xff1a 1 当前已经打开了节能模式 xff08 需要关闭节能模式 xff0c 切换到持久模式 xff09 如何关闭节能模式 xff1a 方法1 xff1a su
  • PL/SQL基础(1):语法

    本篇是 Oracle基础小结 系列之一 本篇目录 1 什么是PL SQL xff1f 2 PL SQL基本结构 3 PL SQL符号定义 4 PL SQL数据类型 5 PL SQL条件句法 6 PL SQL循环 什么是PL SQL xff1
  • PL/SQL基础(2):单元

    本篇是 Oracle基础小结 系列之一 PL SQL程序单元包括 xff1a PL SQL匿名块 PL SQL函数 PL SQL存储过程 PL SQL包 PL SQL触发器等 这里就用过的几个做简单记录 xff0c 另外虽然PL SQL异常
  • Oracle基础小结

    最近做了一些C 43 Oracle的工作 xff0c 在这里做一些笔记以备忘 xff0c 主要记录PL SQL的基础及小问题的解决 C 连接操作Oracle数据库的知识点 如果有想对oracle数据库的使用有基础性了解的也可以参阅 该系列目
  • PL/SQL基础(3):小专题

    本篇是 Oracle基础小结 系列之一 这里汇集了使用PL SQL中遇到的一些小问题和相关小专题文章的链接 xff0c 目前列出来一些 xff0c 后面还会陆续添加 专题1 xff1a 字符串函数和字符串截取 对于在使用存储过程中习惯性使用
  • 阿里云云效Maven制品仓库的ip白名单列表

    阿里云的云效提供了一系列的云开发工具 xff0c 其中包括 Maven 制品仓库 xff0c 可以提供便捷的 mvn 私库服务 但是因为公司基于安全考虑 xff0c 防火墙策略非常严格 xff0c 仅允许 ip 白名单列表内的数据包可以正常
  • Dokuwiki安装(linux)

    Dokuwiki安装 xff08 linux xff09 一 简介 dokuwiki是一个开源wiki引擎程序 xff0c 运行于PHP环境下 无需数据库 Doku Wiki 程序小巧而功能强大 灵活 xff0c 适合中小团队和个人网站知识
  • 1、Oracle PL/SQL中的字符串及函数介绍

    该文章是 PL SQL基础 xff08 3 xff09 xff1a 小专题 系列文章之一 Oracle中常用的字符串类型有 xff1a 固定长度 xff08 CHAR等 xff09 可变长度 xff08 VARCHAR2等 xff09 和大