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/19 9:43:55 阅读更多 →
TMS320C6424 DSP开发实战:从芯片命名到上电启动全解析

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

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

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

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

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

2026/10/18 19:36:13 阅读更多 →

最新新闻

超越向量搜索:智能体AI场景下的混合检索架构设计与落地实践

超越向量搜索:智能体AI场景下的混合检索架构设计与落地实践

如果你最近在搭智能体AI方向的Agent,大概率跟我一样,先被向量搜索的行云流水惊艳过,然后被它的失忆气到过。上个月我处理了一个内部运维问答Agent的案子,用户可以问技术文档、查故障码、翻历史变更记录。最开始整套检索链路就一个…

2026/10/19 21:38:47 阅读更多 →
LSTM情感分析实战:从原理到可落地的NLP项目

LSTM情感分析实战:从原理到可落地的NLP项目

1. 项目概述:为什么LSTM至今仍是情感分析的“压舱石”你打开一个电商页面,看到一条商品评论:“包装太差了,快递盒都塌了,里面东西还沾了灰,客服态度也冷冰冰,再也不买了。”——人一眼就能判断这…

2026/10/19 21:37:45 阅读更多 →
中英文停用词表实战指南:从预处理到工程化过滤

中英文停用词表实战指南:从预处理到工程化过滤

简介:中英文停用词合集面向自然语言处理、文本挖掘与信息检索开发者,针对分词后高频虚词干扰关键词与情感判断的常见问题,提供可直接用于预处理的中文、英文及中英合并停用词表,有助于提升后续任务准确性。压缩包共11个文件&#…

2026/10/19 21:36:44 阅读更多 →
Android工具箱源码:单Activity多Fragment架构与工具注册机制

Android工具箱源码:单Activity多Fragment架构与工具注册机制

简介:一份名为“一个工具箱”的安卓应用完整源码包,面向具备基础安卓开发知识、希望进阶学习综合应用开发的程序员,可作为从单一页面走向多模块项目的过渡案例。资源共169个文件,压缩包约857KB,包含56个XML布局文件负责…

2026/10/19 21:34:39 阅读更多 →
基于DeepLabV3+的洪水区域分割:从数据准备到推理部署全流程实践

基于DeepLabV3+的洪水区域分割:从数据准备到推理部署全流程实践

洪水分割这个方向,我这两年断断续续做了不少实验。从最早用传统阈值法提取水体,到后来切到深度学习的语义分割模型,一个很直观的感受是:能不能把洪水区域快速、准确地圈出来,直接决定了后续抢险调度和灾害评估的效率。…

2026/10/19 21:34:39 阅读更多 →
面向能源系统的深度强化学习调度框架解析

面向能源系统的深度强化学习调度框架解析

做能源系统调度的人,这两年应该都有同一种感受——深度强化学习这个词出现的频率高到躲不开。光伏预测、储能充放电、微网负荷分配,甚至售电公司的日内报价,都在往“智能调度”上靠。但算法论文看得再多,落到自己的系统里&#xf…

2026/10/19 21:34:39 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →