SQL*Plus 执行中文 SQL 文件,如何避开乱码坑
先看清三个关键角色执行 SQL 文件时至少涉及三处字符集Linux Locale由 LANG 或 LC_CTYPE 控制影响 Shell 如何处理文本。SQL*Plus 客户端字符集由 NLS_LANG 控制。SQL 文件实际编码常见是 UTF-8 或 GBK。核心原则很简单SQL 文件编码要和 NLS_LANG 对应的客户端字符集一致再由 Oracle 负责客户端与数据库之间的字符集转换。这里最容易误解的是NLS_LANG 表示客户端字符集不是数据库字符集。02 | UTF-8 文件的推荐配置大多数 Linux 环境和编辑器默认已经使用 UTF-8因此更推荐统一使用 UTF-8。export LANGen_US.UTF-8export NLS_LANGAMERICAN_AMERICA.AL32UTF8如果使用中文 Locale也可以是export LANGzh_CN.UTF-8export NLS_LANGSIMPLIFIED CHINESE_CHINA.AL32UTF8SQL 文件建议保存为UTF-8无 BOM也就是 UTF-8 without BOM如果 SQL 文件本身是 GBK 编码才使用export LANGzh_CN.GBKexport NLS_LANGSIMPLIFIED CHINESE_CHINA.ZHS16GBK03 | 不要盲目照抄数据库字符集很多人看到数据库字符集是 ZHS16GBK就直接设置export NLS_LANGSIMPLIFIED CHINESE_CHINA.ZHS16GBK这只有在客户端 SQL 文件本身也是 GBK 编码时才合适。如果 SQL 文件是 UTF-8而数据库字符集是 ZHS16GBK客户端仍然应该按 UTF-8 设置export NLS_LANGAMERICAN_AMERICA.AL32UTF8此时 Oracle 会完成字符集转换UTF-8客户端↓Oracle Character Conversion↓ZHS16GBK数据库所以排查时不要只盯数据库字符集更要先确认 SQL 文件到底是什么编码。04 | 如何确认文件和数据库字符集查看 SQL 文件编码优先用file test.sqlfile -i test.sql如果输出中看到 charsetutf-8说明是 UTF-8。若显示 UTF-8 Unicode (with BOM)说明文件带 BOM。也可以用 iconv 验证 UTF-8 是否合法iconv -f UTF-8 -t UTF-8 test.sql /dev/nullecho $?返回 0 表示合法 UTF-8如果出现 illegal input sequence说明不是合法 UTF-8。检查是否带 BOMxxd -l 16 test.sql如果文件开头出现ef bb bf说明带 BOM。数据库字符集可以用 SQL 查询SELECT valueFROM nls_database_parametersWHERE parameter ‘NLS_CHARACTERSET’;常见结果可能是 AL32UTF8 或 ZHS16GBK。05 | LC_ALL 不一定要设置通常不需要刻意设置 LC_ALL。Locale 优先级大致是LC_ALL↓LC_*↓LANGSQL*Plus 中文乱码更相关的是LANGLC_CTYPENLS_LANG很多环境只设置下面这一项就够了export LANGen_US.UTF-8LC_ALL 是强制覆盖所有 Locale 设置并不是解决 SQL*Plus 中文乱码的关键。有些系统还可能没有安装对应 Locale导致 cannot change locale。可以先确认系统支持项locale -a06 | 一套稳妥排查顺序遇到乱码时建议依次执行localeecho $LANGecho $NLS_LANGfile -i test.sql再查数据库字符集SELECT valueFROM nls_database_parametersWHERE parameter‘NLS_CHARACTERSET’;

相关新闻

AI 辅助设计稿转代码工程复盘:从 Figma 设计 Token 到 React 组件的自动化流水线

AI 辅助设计稿转代码工程复盘:从 Figma 设计 Token 到 React 组件的自动化流水线

AI 辅助设计稿转代码工程复盘:从 Figma 设计 Token 到 React 组件的自动化流水线 一、设计稿转代码的"最后一公里":为什么一键生成总是不可用? Figma 到代码(Design-to-Code)在过去三年经历了从"AI 魔法…

2026/10/1 11:42:17 阅读更多 →
TMS320C6424 DSP开发实战:从芯片命名到上电启动全解析

TMS320C6424 DSP开发实战:从芯片命名到上电启动全解析

1. 项目概述:从一颗芯片的“身份证”说起如果你刚拿到一颗德州仪器(TI)的TMS320C6424 DSP芯片,看着丝印上那串复杂的字符“TMS320C6424ZWTQ6”,是不是有点无从下手?这串字符可不是随便印上去的,…

2026/9/28 17:07:33 阅读更多 →
嵌入式系统时序参数解析:从建立时间到PCB布局的实战指南

嵌入式系统时序参数解析:从建立时间到PCB布局的实战指南

1. 项目概述与核心价值 在嵌入式系统,尤其是基于DSP或ARM的复杂SoC设计中,硬件工程师和底层驱动开发者经常会遇到一个看似枯燥却至关重要的环节:解读芯片数据手册中的时序参数表。这些表格里密密麻麻的“最小”、“最大”、“典型”值&#x…

2026/10/2 15:26:53 阅读更多 →

最新新闻

如何在5分钟内搭建Cloudflare OS工作空间?新手必备的完整指南

如何在5分钟内搭建Cloudflare OS工作空间?新手必备的完整指南

如何在5分钟内搭建Cloudflare OS工作空间?新手必备的完整指南 【免费下载链接】cloudflare-os Agent workspace built on Cloudflare Workers for creating documents, building apps, and running agents with your company’s context and systems. 项目地址: h…

2026/10/4 9:53:40 阅读更多 →
插件系统原理与加载失败排查:从IAR、MusicFree到web boot

插件系统原理与加载失败排查:从IAR、MusicFree到web boot

干嵌入式开发的调 IAR,偶尔会看到插件相关的提示;用 MusicFree 听歌的,装个音源插件失败也会一头雾水;做前端或者维护插件化平台的,可能天天跟harness failed to load plugins web boot: 2 entries did not activate l…

2026/10/4 9:53:40 阅读更多 →
插件加载失败排查指南:从did not activate到根治

插件加载失败排查指南:从did not activate到根治

先说实话:过去一周我至少收到了三条跟plugins相关的求助消息,报错长得几乎一模一样——Failed to load plugins web boot: 2 entries did not activate,后面还跟着一串奇怪的包名,比如linxin666/dsh-p、huayu-yuan。问的人多了&am…

2026/10/4 9:53:40 阅读更多 →
QwenPaw安装与使用手册:从API Key配置到终端高效调用通义千问

QwenPaw安装与使用手册:从API Key配置到终端高效调用通义千问

今天这篇内容就是一份完整的 QwenPaw 安装与使用手册,我会从零开始讲清楚环境准备、安装步骤、API Key 的获取与查看、日常使用技巧,以及我踩过的几个坑。适合刚接触 API 调用的新手,也适合想把本地工作流搬到终端的老手。QwenPaw 说白了就是…

2026/10/4 9:53:40 阅读更多 →
Apache Fesod(Incubating)Committer 成长指南:从持续贡献到获得提交权限的完整路径

Apache Fesod(Incubating)Committer 成长指南:从持续贡献到获得提交权限的完整路径

后端 【免费下载链接】fesod Fast. Easy. Done. Processing spreadsheets without worrying about large files causing OOM. 项目地址: https://gitcode.com/gh_mirrors/fast/fesod 点击查看 免费下载 Apache Fesod(Incubating)是一个正处在…

2026/10/4 9:53:40 阅读更多 →
把经典蒸馏成可执行技能:知识蒸馏的实践方法论

把经典蒸馏成可执行技能:知识蒸馏的实践方法论

1. 项目概述:当“知识蒸馏”从AI实验室走进书房书桌最近在几个读书社群里,反复看到有人问:“读完《道德经》八遍,还是说不出它到底教人怎么做事”;也常有产品经理、独立开发者、内容创作者私下聊:“道理都懂…

2026/10/4 9:52:40 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →