Oracle CHR函数详解

CHR 是 Oracle 中一个基础的字符串函数,它的作用是将数字代码转换为对应的字符,可以理解为 ASCII 函数的反函数。

📖 CHR函数的语法与参数

CHR 函数的基本语法非常简洁:

sql

复制代码
CHR( n [ USING NCHAR_CS ] )
  • n**(NUMBER)** :用于检索字符的数字代码。
  • USING NCHAR_CS**(** 可选 ) :若指定此子句,函数将使用数据库的"国家字符集"进行转换,并返回 NVARCHAR2 类型。若不指定,则默认使用"数据库字符集"(如 AL32UTF8),返回 VARCHAR2 类型。

⚙️ 参数 n 与返回值处理规则

  • NULL 值 :如果参数为 NULL,函数返回 NULL。
  • 负数 :如果参数为负数,函数将报错。
  • 单字节字符集 :若参数 n 在 0 到 255 之间,返回其直接对应的字符。若 n > 256,则返回 n mod 256 所对应的字符。
  • 多字节字符集 :参数 n 必须对应一个 完整的代码点 (Code Point),例如在 AL32UTF8 下,CHR(41378) 才是一个有效字符。由无效代码点可能导致结果不确定。

🛠️ 常用场景与典型示例

1. 🔧 用于生成特殊控制字符

这是 CHR 最常用的场景,常与 || 拼接符结合使用,在 SQL 语句中直接构建包含特殊字符的字符串。

场景 ASCII码 CHR函数 说明
制表符 9 CHR(9) 用于文本水平对齐
换行符 (LF) 10 CHR(10) 在字符串内插入换行
回车符 (CR) 13 CHR(13) 常用于与换行符组合 (CHR(13)
空格 32 CHR(32) 在字符串中插入空格
单引号 39 CHR(39) 在 SQL 语句中表示单引号
双引号 34 CHR(34) 用于包裹动态生成的标识符
'&' 符号 38 CHR(38) 避免被 SQL*Plus 视为替换变量
'@' 符号 64 CHR(64) 用于邮件地址等场景

场景示例:格式化地址

sql

复制代码
SELECT name || CHR(10) || address_line1 || CHR(10) || city || ', ' || state AS full_address
复制代码
FROM customers;

此语句将地址信息分行输出,提升可读性。

2. 🔄 ASCII码与字符互转

CHR 与 ASCII 函数功能相反,常用于字符编码的转换操作。

sql

复制代码
-- CHR将数字转换为字符,ASCII将字符转换为数字
复制代码
SELECT CHR(65) as char_from_ascii, ASCII('A') as ascii_from_char FROM DUAL;
复制代码
--结果: char_from_ascii: 'A', ascii_from_char: 65

场景示例:动态生成字母序列

sql

复制代码
--生成从A到Z的字母列表
复制代码
SELECT CHR(LEVEL + 64) AS letter FROM DUAL CONNECT BY LEVEL <= 26;

此查询利用层次查询和 CHR 函数,巧妙地生成了字母表序列。

相关推荐
wno7044 小时前
postgresSQL压缩版安装与基本命令
数据库·postgresql
聚美智数6 小时前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库
瀚高PG实验室6 小时前
瀚高数据库常用系统表查询入门指南(附常用SQL)
数据库·sql·postgresql·瀚高数据库
ben9518chen7 小时前
mysql数据库基本操作
数据库·mysql
2603_965148117 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
土豆.exe7 小时前
nf_tables 的 verdict 被读了两次:一个十年未闭合的位域错配
java·数据库·网络安全·缓存
缓慢更新7 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
Web3&Basketball9 小时前
实测Gemini4Argon:ERQA 87%登顶长程任务榜
数据库·python·大模型·多模态·gemini·长上下文·推理优化
xiaogai_gai9 小时前
金蝶收料通知单查询策略实战教程:从源系统拉取到中间层落地的完整路径
java·前端·数据库
注塑机数据采集联网10 小时前
注塑机数据采集网关对接MES系统数字化技术方案
大数据·网络·数据库·物联网·数据挖掘·数据分析