You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中pg_proc表prosrc字段内的\r字符具体含义是什么

\r的具体含义

\r是回车符(Carriage Return,缩写CR),是ASCII编码中值为0x0D的控制字符,它和我们更常见的\n(换行符,Line Feed,缩写LF,ASCII值0x0A)都属于文本控制字符,最早来源于老式打字机的操作逻辑:

  • 回车符\r的作用是将输入光标移动到当前行的最左侧
  • 换行符\n的作用是将输入光标向下移动一行

不同操作系统的默认换行标识规则存在差异:

  • Windows系统默认使用\r\n(CR+LF组合)作为换行标识
  • 类Unix系统(Linux、新版macOS等)默认使用\n(单独LF)作为换行标识
  • 旧版macOS(OS 9及更早版本)默认使用\r(单独CR)作为换行标识

它出现在prosrc字段中的原因

这个字符是你创建函数时的源代码文本本身就携带的内容,和PostgreSQL的存储逻辑没有关系:

  1. 你当初编写/复制这个PL/pgSQL函数代码时,使用的设备或者文本编辑器是Windows环境,代码里的换行默认就是\r\n组合格式
  2. 根据官方对prosrc字段的说明,对于解释型语言的函数,这个字段会原封不动存储函数的源代码文本,不会主动修改、过滤文本里的控制字符,所以写入时的\r就被完整保留了下来
  3. 你查询时看到的\r转义形式,是SQL客户端的展示逻辑:为了让你能感知到不可见的控制字符,客户端把原生的不可见回车符转成了可显示的\r转义序列,实际数据库存储的是原生的控制字符本身。

你把这段内容导出到支持CR+LF换行的文本编辑器中打开时,这些\r会被正常识别为换行的组成部分,不会以转义字符的形式显示。

内容的提问来源于stack exchange,提问作者jian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:36:04