news 2026/9/26 1:37:04

PL/SQL Developer 11配置指南:解决连接与乱码问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PL/SQL Developer 11配置指南:解决连接与乱码问题

简介:这是一份 PL/SQL Developer 11 中文手册,面向 Oracle 数据库开发、运维及初学者,系统讲解该工具在 PL/SQL 程序开发、调试与维护中的完整用法。手册覆盖安装部署(工作站/服务器/脚本安装)、登录 Oracle、编写程序、编译对比、测试脚本与运行时错误跟踪等核心模块,并对变量类型、包状态及结果集查看做了细致说明,适合希望快速上手或查阅功能细节的开发者。包体为单个 PDF 文档,大小约 5.5MB,便于离线阅读与检索。目前已有 1868 人下载学习,其目录结构清晰,从系统需求到专用 SQL 优化均有章节展开,能帮助读者按需定位操作步骤与配置要点,提升日常数据库开发效率。

1. 为什么我劝你先读这份11的中文手册而不是直接点“连接”

很多人第一次拿到 plsql developer 11,都是先装好 Oracle 客户端,然后双击快捷方式输入用户名密码,结果迎面就是一句“无法定位 OCI dll”或者“不能初始化,请确认已经安装了 32 位”。这些报错其实和数据库本身没关系,纯粹是 PL/SQL Developer 11 这个 IDE 和你本机 Oracle 客户端之间的匹配问题。我见过不少同事在这上面耗了半天,最后发现手头那份 plsql developer 11 中文手册.pdf 里早就写了 OCI 库的配置位置,只是他们没翻到那一页。

这份中文手册能解决三件事:第一,讲明白 11 版连接 Oracle 的前置条件,包括版本位数和客户端路径;第二,把首选项里那些默认值很坑、但改完能明显提升效率的开关指出来;第三,把常见的连接和中文乱码问题给出一套可操作的排查顺序。它适合两类人:刚入行、第一次在 Windows 上配 Oracle 开发环境的新手,以及从 9i/10g 时代过来、想快速把 11 版调教成顺手工作机的老手。下面我就按手册的阅读顺序,结合我实际配置的经验,把关键步骤和坑一次讲透。

2. 把 11 版中文手册当配置向导:安装、连接、首选项要这样读

2.1 读手册前先确认版本和位数:11 还分 32 位与 64 位

plsql developer 11 这个版本号有点特殊,它同时存在 32 位和 64 位两个分支,而且安装包通常不会主动告诉你该选哪个。这里有个最容易踩的坑:你装的是 64 位 PL/SQL Developer,却配了 32 位的 Oracle Instant Client,那启动时一定报“无法定位 OCI dll”。反过来,32 位 IDE 配 64 位客户端,则会在初始化时报错,提示你确认是否安装了 32 位版本。

中文手册里其实用了一小节讲“Supported platforms”,但很多人跳过了。我一般建议用 32 位 PL/SQL Developer 11 配 32 位 Instant Client,原因很实际:Oracle 官方对 32 位客户端的兼容性测试最全,很多老项目的 TNSNAMES 配置也基于 32 位路径;而且 PL/SQL Developer 这个 IDE 本身对 64 位的适配在 11 版还有不少边界问题,比如某些调试功能在 64 位下不稳定。如果你的机器是 Windows 11,同样装 32 位版本也没问题,这是我在多台新机器上验证过的。

安装之前还要确认一件事:你手头有没有 Oracle Instant Client 的 Basic 包。PL/SQL Developer 本身不包含 Oracle 客户端,它只是个前端工具,必须借助 OCI.dll 才能跟数据库通信。所以配置路径就是:先装 Instant Client,再装 PL/SQL Developer 11,最后在 IDE 里指定 OCI.dll 所在目录。顺序反了或者缺了中间一环,后面所有连接都是空谈。

2.2 按手册走一遍连接 Oracle 的配置:OCI 库与 TNSNAMES.ORA

第一步,解压 Instant Client 到一个不含中文和空格的目录,我习惯放在C:\instantclient_11_2。然后打开 PL/SQL Developer 11,不登录直接进主界面,找菜单 Tools > Preferences > Oracle > Connection,里面有一个“OCI Library”输入框,把路径填成C:\instantclient_11_2\oci.dll。

第二步,配置 TNSNAMES.ORA。这个文件在 Instant Client 目录下,也就是C:\instantclient_11_2\network\admin\TNSNAMES.ORA。用记事本打开,按下面格式写数据库连接别名:

ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl)) )

注意这里的缩进不是必须的,但括号必须配对。SERVICE_NAME和SID不要搞混,现在多数数据库用SERVICE_NAME。写完保存,然后在 PL/SQL Developer 11 的登录窗口里,数据库一栏直接填ORCL或者192.168.1.100:1521/orcl,后者叫易碎连接串,适合你没有 TNSNAMES.ORA 时的临时连接。

第三步,验证 OCI 路径是否正确。在登录窗口输入任意用户名密码,数据库填ORCL,点 Connect。如果还弹“无法定位 OCI dll”,说明刚才填的路径不对或者 oci.dll 不在那个目录。我遇到过一种情况是 Instant Client 解压后有二级目录,oci.dll在C:\instantclient_11_2\bin里,这时要填到 bin 下的完整路径。这个问题很常见,手册里的“Troubleshooting”一节也把它列在最前面。

2.3 首选项里最值得按手册调的三个参数

连接能通只是第一步,接下来我会在 Preferences 里改三个地方,这三个参数对手感影响最大。

一是 Tools > Preferences > User Interface > Fonts,把默认字体从 “MS Sans Serif” 改成 “Consolas” 或 “Courier New”,字号 10 或 11。默认字体在 SQL 窗口里看代码很伤眼,等宽字体能让缩进和对齐变得清晰,尤其是写长 SQL 时,这个改动立竿见影。

二是 Tools > Preferences > Editor > AutoReplace,打开 “Enable AutoReplace” 并指定一个替换文件。这个功能能让你输入sf自动展开成SELECT * FROM,是提升录入速度的核心开关,后面第四章我会专门展开。

三是 Tools > Preferences > Oracle > Connection 里的 “Check for newer version” 取消勾选。这是个很烦人的默认行为,每次启动都去访问官网查更新,不仅慢,还可能在无外网环境下卡住几秒。取消它不影响任何功能,只是少一次无谓的 HTTP 请求。

这三个参数在中文手册里都有对应说明,但藏得深。我的经验是,拿到一份新的 PL/SQL Developer 11,先花五分钟把这三处调好,再开始建连接。否则你边写代码边被字体、弹窗和补全打断,很容易误以为工具本身难用。

3. 按手册操作还是报错?先从这几类问题排查

3.1 “无法定位 OCI dll”怎么破:现象、原因、解决

现象:启动 plsql developer 11 或点 Connect 时,弹窗提示 “Could not locate OCI DLL”,后面跟着一个路径。

原因分三种:OCI 库路径没填、路径填错了、或者 OCI.dll 依赖的 VC 运行库缺失。最常见的是前两种。我见过有同事把路径填成C:\instantclient_11_2,少写了\oci.dll,工具识别不了;也有人填到了 Instant Client 的 zip 包解压前的临时目录,重启后目录被清空,自然找不到。

解决:先确认oci.dll究竟在哪。在命令行里执行where /r C:\ oci.dll或直接用文件管理器搜索,找到完整路径后填到 Preferences > Oracle > Connection > OCI Library。填完别急着点 OK,先检查文件属性里的位数,右键 oci.dll > 属性 > 详细信息,看到 “文件版本” 旁边的描述里会有 “x64” 或 “x86”,确保它和 PL/SQL Developer 的主程序位数一致。

还有一种情况会被忽略:oci.dll能找到,但它依赖的oracore11.dll等组件缺失。解决方法是把整个 Instant Client 目录重新解压一遍,不要只拷一个 oci.dll 过来。我之前在同事电脑上看到他把 Instant Client 里的几个 DLL 拷到 System32 里,结果报错更多,因为 System32 里有系统自带的同名旧文件,优先加载了错误的版本。正确做法是保持 Instant Client 目录完整,在 OCI Library 里指向它。

3.2 “不能初始化,请确认已安装 32 位”怎么破:现象、原因、解决

现象:启动时弹窗 “Initialization error. Please make sure you have installed the 32-bit Oracle client”,程序直接退出。

原因:这条报错出现在 32 位 PL/SQL Developer 11 试图加载 64 位 OCI 库的时候。你填的 OCI Library 路径指向了 64 位 Instant Client,或者系统 PATH 环境变量里先找到了 64 位的 Oracle 客户端。这个报错的翻译很直接,就是提醒你位数不匹配。

解决:两个方向,要么换 64 位 PL/SQL Developer 11(前提是你下载到的安装包是 64 位),要么装 32 位 Instant Client。我建议优先装 32 位客户端,因为 PL/SQL Developer 11 的 64 位版在某些 Windows 11 环境里会有界面渲染和调试器的小毛病,而且很多老项目配套的第三方工具也只支持 32 位连接。装好 32 位 Instant Client 后,把 OCI Library 指到它的 oci.dll,问题立刻消失。

另外注意 PATH 环境变量。即使你在 Preferences 里指定了正确的 32 位路径,Windows 还是会先从 PATH 查找 OCI 相关 DLL,如果 PATH 里有个 64 位 Oracle 客户端的 bin 目录,加载顺序会把它顶到前面。解决是在系统环境变量里把 32 位客户端的目录挪到 Oracle 相关项的最前面,或者干脆临时把 64 位客户端目录从 PATH 里移除,测试完再加回来。

3.3 连接慢或频繁断线:现象、原因、解决

现象:点 Connect 后要等十几秒甚至更久才进入 SQL 窗口;或者执行一条大查询后,连接被自动断开,报 “ORA-03135: connection lost contact”。

原因:连接慢大多数时候是 TNSNAMES.ORA 或 sqlnet.ora 里没有设置合适的连接超时和存活探测。PL/SQL Developer 11 的默认行为是启动时扫描 TNSNAMES.ORA 里的所有别名,如果文件里有几十个失效的条目,解析就会变慢。频繁断线则是网络层面空闲连接被防火墙或 Oracle 服务端回收,但客户端不知道。

解决:在sqlnet.ora里加上两行:

SQLNET.EXPIRE_TIME = 10 SQLNET.RECV_TIMEOUT = 30 SQLNET.SEND_TIMEOUT = 30

SQLNET.EXPIRE_TIME让客户端每 10 秒发一个探测包,服务端就能感知存活,避免空闲连接被判定为死连接。RECV_TIMEOUT和SEND_TIMEOUT控制读写等待时间,适用于网络不稳定的场景。加完后重启 PL/SQL Developer 11,观察连接耗时是否明显下降。

另外,检查 TNSNAMES.ORA 里有没有无效条目。很多人会往这个文件里积累几十个测试库别名,有些数据库早就不存在了,但解析器还是会逐个尝试。我一般用一个最小化 TNSNAMES.ORA,只保留当前在用的三个环境:开发、测试、生产。环境切换靠 EAS 或 IDE 的 Profile 管理,别让 IDE 去扫一堆死地址。

3.4 中文乱码与字符集不一致:现象、原因、解决

现象:SELECT 出来的中文显示成????,或者往表里 insert 中文后,用其他工具看到的是乱码。

原因:PL/SQL Developer 11 客户端字符集和数据库字符集不一致。客户端的字符集由环境变量 NLS_LANG 控制,格式是NLS_LANGUAGE_NLS_TERRITORY.CHARACTERSET,例如SIMPLIFIED CHINESE_CHINA.ZHS16GBK。如果数据库用的是AL32UTF8,而客户端设的是ZHS16GBK,中文内容在转换时就会丢失或错位。

解决:先查数据库字符集,执行:

SELECT USERENV('LANGUAGE') FROM DUAL; SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';

然后在 Windows 系统环境变量里新建NLS_LANG,值设成和数据库匹配。如果数据库是AL32UTF8,就设SIMPLIFIED CHINESE_CHINA.AL32UTF8;如果数据库是ZHS16GBK,就设SIMPLIFIED CHINESE_CHINA.ZHS16GBK。设完必须重启 PL/SQL Developer 11,因为客户端进程启动时才会读取这个变量。

还有个细节:如果你的数据库是ZHS16GBK,但新项目要求国际字符,数据库迟早要迁到AL32UTF8。在切换之前,用 PL/SQL Developer 11 的Tools > Export Tables导出数据时,SQL 文件头部会自动带上NLS_LANG注释,导出和导入要保持一致,否则中文数据会二次乱码。这个在中文手册的“Export/Import”章节有说明,但没强调字符集完全一致的后果,我这里补一句:导出时选 “Oracle Export” 格式,导入时它自带的字符集转换逻辑比纯 SQL 脚本更稳妥。

4. 手册没写的实战配置:把 PL/SQL Developer 11 调成工作机

4.1 用命令窗口直接跑 SQL 脚本:解决“plsql 怎么直接运行脚本文件”

很多人下载了 plsql developer 11 中文手册之后,第一个搜的是“plsql 怎么直接运行脚本文件”。这个操作在手册里确实有,但位置很隐蔽:需要打开Command Window,而不是 SQL Window。

打开方式:菜单 Tools > Command Window,或者在 SQL Window 里按 F9。命令窗口的特点是它接收的是 SQL*Plus 风格的命令,你可以直接敲@C:\scripts\init.sql来执行一段脚本。比如:

@C:\scripts\init_data.sql

这条命令会把init_data.sql里的所有 SQL 一条条执行,并在输出窗口显示每一条的执行结果和报错。我需要强调,文件路径里的反斜杠要写成双反斜杠,或者用正斜杠C:/scripts/init_data.sql,否则命令窗口可能把它当成转义字符。我在这上面翻过车,后来统一用正斜杠,再没出过问题。

除了@命令,还有两个常用命令:SPOOL C:\logs\output.txt可以把后续执行结果输出到文件,配合SPOOL OFF结束;SHOW ERRORS在编译失败了以后查看具体错误行。这三个命令组合起来就是一个轻量级的自动化跑批环境,适合每天上班先跑一遍公共初始化脚本的场景。

如果你只是想跑单条语句,在 SQL Window 里选中那条 SQL,按 F8 或 Ctrl+Enter 就能只执行选中部分。但注意,选中执行时,如果前面有SET或@之类的命令,SQL Window 会当成普通文本交给数据库,会报语法错误。所以“执行文件”这件事,一定要用 Command Window。

4.2 自动替换与快捷键:让常用代码少敲一半

PL/SQL Developer 11 的自动替换是写 SQL 效率提升最大的功能,没有之一。原理很简单:你输入一个短词,按空格或回车,编辑器自动把它替换成长文本。比如输入sf加空格变成SELECT * FROM,输入sw加空格变成SELECT * FROM WHERE。

配置方法:Preferences > Editor > AutoReplace,勾选 Enable,然后在 AutoReplace 文件路径里指定一个文本文件,比如C:\Users\you\auto_replace.txt。文件每行一条映射,格式是短词=长文本,等号右边可以是多行,用\n换行。我日常维护的一段配置:

sf=SELECT * FROM sw=SELECT * FROM\nWHERE st=SELECT COUNT(*) FROM df=DELETE FROM up=UPDATE\nSET

这里有几个使用技巧。第一,短词不要和真实字段名冲突,比如df很容易和DF_ORDER这种列名前缀撞上,所以我会在短词里加一个不常用的后缀,比如df;,分号开头或结尾能避开大部分冲突。第二,等号右边不要写太长,超过一行就分开配,否则替换后光标位置不好控制。第三,替换文件用 UTF-8 无 BOM 保存,否则中文注释会乱码。

这个功能在中文手册里被称为“自动替换”,很多人看了一眼没当回事。但我实测过,维护好了以后,一个复杂的报表 SQL 从敲 5 分钟缩短到 2 分钟以内,而且不容易漏字段。尤其是SELECT *这种免不了的高频输入,替换一次就能省无数次按键。

4.3 导入导出与表结构对比:手册里一笔带过的功能

PL/SQL Developer 11 的Tools菜单下有几个日常工作很实用的功能,中文手册往往只给一句话,但实际用起来门道很多。

第一个是Tools > Compare Tables,表结构对比。它能对比两个 schema 下的同名表或者两个不同名的表,列出字段、类型、约束的差异。我一般用它来检查测试库和开发库的结构漂移。操作时点选左侧源表、右侧目标表,勾选 “Compare columns” 和 “Compare constraints”,点 Compare,结果窗口会高亮差异项。生成的结果可以直接导出成 ALTER 语句,但这里要小心:它生成的MODIFY语句经常带上VARCHAR2(2000)这类默认长度,如果你原来表的字段是VARCHAR2(4000),执行 ALTER 反而把字段改小了。所以我不用它的自动生成功能,只看差异,手动写变更脚本。

第二个是Tools > Export Tables,导出表数据。我常用的导出格式是 “Oracle Export”,它会生成一个包含INSERT语句和建表语句的.sql文件。导出时有个参数叫 “Include DDL”,如果你只需要数据,别勾它,否则导入时会先DROP TABLE再CREATE,在测试环境容易误删表。另一个参数是 “Use date format”,默认DD-MON-YY,这和数据库的 NLS 设置有关,我一般改成YYYY-MM-DD HH24:MI:SS,可读性最好,也避免导入时月份缩写被误判。

第三个是Tools > Import Tables的对应逻辑。导入时如果遇到 ORA-00942 表不存在,多半是导出文件里没有建表语句或者当前 schema 没有权限。先在一个空 schema 里试导入,确认脚本完整再往目标库里导。这个顺序能规避一半以上的导入失败。

5. 从 11 升级到新版:配置文件迁移和注册的坑

5.1 迁移窗口布局与首选项:别让升级把习惯重置

很多人从 plsql developer 11 升级到 12、14、15 之后,第一反应是“怎么界面全变了,我的自动替换哪去了”。其实 PL/SQL Developer 的配置一直存在用户目录下,不随安装包一起走。具体位置在C:\Users\你的用户名\AppData\Roaming\PLSQL Developer\Preferences,里面有个user.prefs文件,记录了窗口布局、快捷键、自动替换配置。升级之前把这个文件备份一份,装完新版后复制回相同位置,大部分习惯能恢复。

注意 32 位和 64 位版本的配置文件路径略有不同,64 位版可能用Preferences64目录,但如果你从 11 的 32 位升到 14 的 64 位,光复制文件不一定兼容,格式大体一致,个别键名失效,最典型的是字体设置和窗口尺寸的键值不读。我建议升到 64 位后用半小时重设一次首选项,别指望完全无缝迁移。

窗口布局里的“Panel”和“SQL Window”位置其实也保存在user.prefs里,如果你不复制文件,一键重置会让你重新拖半天窗口。我的做法是:升级前先导出一份Export Preferences,这个功能在 Preferences 对话框右下角,导出文件的格式比user.prefs更接近新版兼容格式,导入成功率高得多。

5.2 免安装包与注册码的边界:哪些版本能直接带配置走

网上常见“plsql developer 14 免安装包”“plsql developer 15 (64 bit) 注册码”这类搜索词,我不能也不会提供任何注册码,但可以讲讲免安装包的原理和风险。免安装包不是官方形态,它只是把官方安装程序解压后重新打包,省去安装步骤。优点是不写注册表,方便在多个机器间拷贝;缺点是注册行为往往被修改过,很多版本一旦联网检查就会被识别,或者过一段时间强制弹出注册窗口。

如果你要用免安装包,务必确认它的位数和你的 Instant Client 位数匹配,因为免安装包通常不带客户端。我见过有人下载了 14 免安装包后,直接拿 11 版的 Instant Client 连,结果 OCI 版本太老,连接报 ORA-03134。PL/SQL Developer 新版对 OCI 的要求是至少有对应大版本的客户端,11 的 Instant Client 连 14 的 IDE 不一定稳定。最优先方案仍是安装官方安装包,然后使用正版许可证;免安装包只适合临时环境或演示机,不建议作为长期开发环境。

至于注册码,任何一个需要注册码的软件,解决路径都是购买正式许可。盗版码有后门风险,尤其是 IDE 工具,它连接的是你的生产数据库,一旦有恶意代码,数据安全无从谈起。在这个问题上,我的原则是工具本体用正版,免费试用到期要么付费要么卸载,绝不碰来路不明的 keygen。

5.3 验证升级结果:连接、字符集、调试器都要过一遍

从 11 升级到新版后,不要直接开始写业务代码,先做一轮验证,每个步骤都能绕开明显的报错。

第一步,用一个测试库连接,确认 OCI Library 指向新客户端的 oci.dll,然后执行一行最简单的查询:

SELECT 1 FROM DUAL;

能返回结果说明 OCI 和 TNSNAMES 解析正常。如果这一步都过不去,检查客户的 Instant Client 位数,没有其他玄学。

第二步,执行一段含中文的 SQL,比如SELECT '中文测试' FROM DUAL,看显示是否正常。如果乱码,说明 NLS_LANG 没有设置好,升级后环境变量不会变,但新版本可能覆盖了注册表里的 Behavior,需要在系统环境变量里重新确认。

第三步,打开一个存储过程或函数,点击鼠标右键选择 “Test”,启动调试器,设置断点,按 F9 单步执行。新版调试器和 11 的调试器差异不小,尤其是 64 位版本,经常出现断点命中不了。如果断点始终灰色,很可能是 PL/SQL Developer 没有获得 DEBUG CONNECT SESSION 权限,这是一个数据库权限问题,而非插件问题。你可以用系统管理员账号在数据库里执行:

GRANT DEBUG CONNECT SESSION TO scott; GRANT DEBUG ANY PROCEDURE TO scott;

然后再试。这组权限是调试器正常工作必需的,中文手册在“Debugging”章节提过,但没强调它会引发“断点无效”这种误导性现象。

6. 把手册里没写透的“自动替换”玩明白:一个能省一半时间的技巧

前面 4.2 讲了自动替换的基础配置,这里专门说一个容易被忽略的高级用法:在替换文本中使用光标占位符。很多人以为自动替换只能做静态文本替换,其实它支持把光标的落点也固化下来。比如你经常要写CREATE OR REPLACE PROCEDURE p_xxx AS BEGIN END;,就可以配置成这样:

cp=CREATE OR REPLACE PROCEDURE\np_$$$\nAS\nBEGIN\n\nEND p_$$$;

这里$$$是 PL/SQL Developer 11 的占位符标记,替换完后光标会跳到第一个$$$位置,你输入过程名后按 Tab,光标跳到下一个$$$处,正好是 END 后面要补的过程名位置。这个技巧能让你写过程的头部骨架从 30 秒压缩到 5 秒,而且不会漏 END 名。

配置方法还是那个 AutoReplace 文件,但有个细节:文件保存时不要带 BOM,否则第一行映射里的$$$会被吃掉,替换结果出现一个看不见的乱码字符。检查方式是用 Notepad 打开文件,另存为时选 “UTF-8 without BOM”。如果你用的是 Visual Studio Code,右下角编码那里点击选 “UTF-8” 即可,它的默认写入就是无 BOM。

我自己在维护一个 30 来行的 AutoReplace 文件,里面会把所有高频 DDL 骨架和查询模板都配一遍。这个习惯从 11 版开始,一直沿用到 14、15,升级时唯一要迁移的配置就是它。我见过不少人觉得“自动替换不就是偷懒吗”,但实际写复杂报表时,它省下来的精力足够让你多检查两遍业务逻辑,这才是真正的价值。如果你现在手里正捏着 plsql developer 11 中文手册.pdf,我建议先从这一节开始划重点,把自动替换文件建起来,用一周后再回头看,基本就离不开这个功能了。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 1:36:37

EOS开发环境搭建:从本地链出块失败到稳定运行的实操指南

1. 为什么EOS开发环境搭建总让人卡在第一步?——从“跑不起来”到“本地链稳定出块”的真实路径很多人第一次接触EOS时,看到官方文档里那句“Install the EOSIO development environment”就直接点开终端敲命令,结果不到十分钟就陷入循环&…

作者头像 李华
网站建设 2026/9/26 1:35:12

QuestaSim 10.7c Windows安装全指南:系统兼容性与许可证配置

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

作者头像 李华
网站建设 2026/9/26 1:34:36

WSP-8200芯片实现端侧模糊语音识别与实时对话理解

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

作者头像 李华
网站建设 2026/9/26 1:34:25

IntelliJ IDEA 2025.3.1下载安装配置全链路实战指南

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

作者头像 李华
网站建设 2026/9/26 1:34:16

CRM系统开发实战:交互记录模型与自动化销售管理落地

1. 项目构想与需求拆解做CRM这件事,技术难度其实不算高,真正难的是搞清楚一线销售到底需要什么,以及让他们愿意每天打开系统。DeskcommCRM是我完整参与设计、开发和落地的一套客户关系管理系统,名字里Desk代表坐席和工位&#xff…

作者头像 李华