DB2存储过程实战:游标+循环的批量数据处理与TaoToken统一API接入
1. DB2 存储过程游标循环批量处理到底解决什么问题DB2 存储过程里做批量数据处理最典型的场景就是一张配置表里躺着几百上千条规则每条规则对应一段动态 SQL 或者一套字段映射你需要逐条读出来、拼 SQL、执行、记日志、算成功失败数。这种活儿用纯 SQL 很难写用应用层循环又太慢因为每条都要走一次网络往返。存储过程 游标 循环就是为这个场景生的。游标CURSOR你可以理解成一个带指针的结果集。普通 SELECT 一次性把结果全给你游标则是让你一行一行地取取一行处理一行。循环WHILE / LOOP / REPEAT负责驱动这个取-处理-再取的过程。两者组合起来就是 DB2 里最经典的逐行批处理骨架。它适合谁适合做数据迁移、批量对账、绩效初始化、报表预聚合、规则引擎落库这类需要读一批配置、逐条加工、写回结果的后端和数仓同学。不适合谁不适合纯集合运算能搞定的场景——如果你能用一条 MERGE 或 UPDATE...FROM 解决就别上游标逐行处理在数据量大时性能会明显吃亏。我试过在一个对账项目里用游标处理 3 万条明细单条处理逻辑包含两次子查询和一次插入整体跑下来比应用层循环快了将近一个数量级因为省掉了 3 万次网络往返。但代价是调试麻烦一个NOT FOUND处理没写好循环就可能空转或者提前退出。这篇会给你三样东西一份可直接复制的游标循环异常处理模板一套用 TaoToken 统一 API 通道辅助生成和校验存储过程逻辑的方法以及执行验证和结果比对的完整动作。TaoToken 在这里的角色是AI 辅助通道——你写存储过程时遇到语法不确定、异常处理拿不准、动态 SQL 拼接容易出错可以通过它统一调用模型来生成草稿或做逻辑复核省去在多个平台之间切换 Key 的麻烦。2. TaoToken 统一 API 通道前置准备在写存储过程的过程中AI 辅助最有价值的三个点是生成游标声明和循环骨架、检查异常处理是否覆盖了NOT FOUND和SQLEXCEPTION、以及帮你把一段业务描述翻译成 DB2 的DECLARE ... CURSOR FOR语句。要稳定用上这些能力先把 TaoToken 的通道准备好。TaoToken 是一个统一 API 接入层官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。它的核心价值是你只需要一个 Key、一个 Base URL就能调用多家模型不用为每个模型单独维护一套鉴权和计费。对写存储过程这种偶尔需要 AI 搭把手的场景特别合适——不用为了几次代码生成去开一堆账号。前置准备分三步。第一步拿到 API Key。登录后进入控制台在 API Keys 页面创建一个新 Key复制保存。这个 Key 就是后面所有请求的凭证。控制台入口在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite API Keys 页面在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。第二步确认你要用的模型 ID。TaoToken 的模型列表和文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面会列出当前可用的模型标识。写存储过程建议选代码能力强的模型生成 SQL 和过程逻辑更靠谱。第三步决定接入方式。如果你只是偶尔问几句用模型对话页面最省事https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。如果你要把 AI 辅助嵌进日常开发流比如在编辑器里直接生成存储过程草稿那就用 API 方式把 Base URL 指向https://taotoken.net/apiKey 填你创建的那个。这里有个关键点TaoToken 的 API 兼容 OpenAI 风格的调用格式所以任何支持自定义 Base URL 的客户端或 SDK 都能接。这意味着你不需要改代码结构只要把原来的base_url和api_key换掉就行。对于存储过程开发我建议至少配好一个能发 HTTP 请求的环境curl 或 Python因为后面校验逻辑时要用它把存储过程片段发给模型做复核。安全提醒API Key 不要硬编码进存储过程或提交到代码仓库。存储过程里如果需要调用外部服务走数据库的外部存储过程或应用层中转别把 Key 写进 SQL 文本。3. 可复制的游标循环异常处理配置这一节是核心给你一份能直接改改就用的 DB2 存储过程模板。先看游标声明的几种形态再拼成完整的循环处理骨架。游标声明的基本语法是DECLARE 游标名 CURSOR FOR SELECT 语句。最普通的形态DECLARE c1 CURSOR FOR SELECT appid, bm, htccsql FROM jsc_appcshpz;如果游标在循环中会碰到COMMIT或ROLLBACK默认游标会自动关闭导致后续FETCH报错。解决办法是加WITH HOLDDECLARE c1 CURSOR WITH HOLD FOR SELECT appid, bm, htccsql FROM jsc_appcshpz;加了WITH HOLD后游标不会因为提交而关闭必须显式CLOSE。这一点在批量处理里极其重要因为批量场景通常每处理 N 条就要提交一次释放日志空间。如果存储过程要把结果集返回给调用方用WITH RETURNDECLARE c_emp_dept CURSOR WITH RETURN TO CALLER FOR SELECT empno, lastname, job, salary FROM employee WHERE workdept E21;同时过程定义要声明返回结果集数量CREATE PROCEDURE emp_from_dept() DYNAMIC RESULT SETS 1 P1: BEGIN DECLARE c_emp_dept CURSOR WITH RETURN FOR SELECT empno, lastname, job, salary FROM employee WHERE workdept E21; OPEN c_emp_dept; END P1注意返回结果集的游标必须保持 OPEN 状态一旦 CLOSE结果集就没了。下面是完整的批量处理模板包含变量声明、游标、异常处理、循环控制CREATE OR REPLACE PROCEDURE PAS.SP_PASCALC_TEST ( IN I_TJRQ INTEGER, OUT I_ERR_NO INTEGER ) BEGIN DECLARE sqlcode INTEGER DEFAULT 0; DECLARE i_at_end INTEGER DEFAULT 0; DECLARE i_code INTEGER DEFAULT 0; DECLARE v_err_msg VARCHAR(1024); DECLARE v_proc_name VARCHAR(30) DEFAULT SP_PASCALC_TEST; DECLARE v_appid VARCHAR(20); DECLARE v_mbbm VARCHAR(40); DECLARE v_lysql VARCHAR(8000); DECLARE i_count INTEGER DEFAULT 0; DECLARE cur_dd CURSOR WITH HOLD FOR SELECT appid, bm, htccsql FROM jsc_appcshpz; DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN SET i_code sqlcode; SET i_err_no 1; COMMIT; END; DECLARE CONTINUE HANDLER FOR NOT FOUND BEGIN SET i_at_end 1; END; SET i_err_no 0; SET i_at_end 0; OPEN cur_dd; FETCH cur_dd INTO v_appid, v_mbbm, v_lysql; WHILE (i_at_end 0) DO BEGIN SET i_count i_count 1; -- 在这里写你的逐行处理逻辑 -- 例如根据 v_lysql 执行动态 SQL -- SET v_sql UPDATE || v_mbbm || SET ...; -- EXECUTE IMMEDIATE v_sql; SET i_at_end 0; FETCH cur_dd INTO v_appid, v_mbbm, v_lysql; END; END WHILE; CLOSE cur_dd; COMMIT; END这份模板里有几个容易踩的坑我逐个说清楚。第一NOT FOUND处理器必须用CONTINUE不能用EXIT。因为FETCH到末尾时会触发NOT FOUND如果你用EXIT HANDLER整个过程会直接退出循环后面的CLOSE和COMMIT都不会执行。用CONTINUE只是把i_at_end置 1循环条件判断后自然退出。第二FETCH之后要重置i_at_end 0。因为CONTINUE HANDLER是全局的一旦某次触发把i_at_end置 1如果不重置下次循环判断就会误判。模板里在循环体末尾FETCH前重置是标准做法。第三WITH HOLD和COMMIT的配合。如果你在循环里每 1000 条COMMIT一次没有WITH HOLD的话游标会被关掉下一次FETCH直接报-501游标未打开。加了WITH HOLD就安全了。第四异常处理里EXIT HANDLER捕获SQLEXCEPTION后记得把i_err_no置为非零并且COMMIT已处理的数据避免全部回滚。同时把sqlcode记下来方便排查。如果你要把这套逻辑交给 AI 辅助生成或校验可以用 TaoToken 的 API 发一段请求。下面是一个 curl 示例把存储过程片段发给模型做逻辑复核curl https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -d { model: 你的模型ID, messages: [ {role: system, content: 你是DB2存储过程专家请检查以下游标循环逻辑是否有NOT FOUND处理缺陷。}, {role: user, content: DECLARE CONTINUE HANDLER FOR NOT FOUND SET i_at_end 1; ... WHILE (i_at_end 0) DO FETCH ... END WHILE;} ] }把$TAOTOKEN_API_KEY换成你在控制台创建的 Keymodel换成文档里列出的模型 ID。返回结果里模型会指出你的NOT FOUND处理是否会导致死循环或提前退出。这种校验比你自己盯着代码看快得多。4. 验证请求与成功结果比对存储过程写完之后必须做两件事一是确认过程能编译通过并执行二是确认处理结果和预期一致。这一节给你完整的验证动作。先编译。在 DB2 命令行里执行CALL SYSPROC.ADMIN_CMD(REBIND PACKAGE PAS.SP_PASCALC_TEST);或者直接用db2 -td -f sp_pascalc_test.sql执行建过程脚本。编译报错最常见的是变量未声明、游标名重复、HANDLER位置不对。DB2 要求所有DECLARE必须在可执行语句之前HANDLER也要在OPEN之前声明。编译通过后调用过程CALL PAS.SP_PASCALC_TEST(20240101, ?);第二个参数是OUT类型用?占位执行后会返回I_ERR_NO的值。如果返回 0说明正常结束返回 1说明触发了SQLEXCEPTION需要去日志表里查sqlcode。验证结果比对核心是看三样东西处理条数、成功条数、失败条数。你可以在过程里加一个统计变量处理完写进日志表INSERT INTO sp_run_log(proc_name, run_date, total_cnt, ok_cnt, err_cnt) VALUES (v_proc_name, CURRENT DATE, i_count, i_ok, i_err);然后查询SELECT * FROM sp_run_log WHERE proc_name SP_PASCALC_TEST ORDER BY run_date DESC FETCH FIRST 5 ROWS ONLY;把total_cnt和源表SELECT COUNT(*) FROM jsc_appcshpz比对应该一致。如果total_cnt比源表少说明游标提前退出了大概率是NOT FOUND处理有问题。如果err_cnt大于 0去错误日志表看具体sqlcode。用 TaoToken 做结果校验也很实用。把执行日志和预期结果发给模型让它帮你判断是否有异常模式curl https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -d { model: 你的模型ID, messages: [ {role: user, content: 存储过程执行日志total_cnt30000, ok_cnt29998, err_cnt2, sqlcode-803。源表count30000。请分析可能原因。} ] }模型会告诉你-803是主键冲突说明有两条数据重复插入需要检查去重逻辑。这种日志错误码的校验方式比你自己翻 DB2 错误码手册快很多。成功结果的标志是I_ERR_NO 0total_cnt等于源表行数err_cnt 0且目标表数据抽样比对一致。抽样比对可以随机取 10 条源记录手工核对目标表对应记录是否正确。5. 本篇常见错误排查这一节把游标循环场景里最常撞的报错列出来对照着查。报错一SQLCODE -501游标未打开。典型信息是CURSOR c1 IS NOT OPEN。原因通常是循环里执行了COMMIT或ROLLBACK而游标声明时没加WITH HOLD导致游标被自动关闭。解决办法把DECLARE c1 CURSOR FOR ...改成DECLARE c1 CURSOR WITH HOLD FOR ...。改完后记得在过程末尾显式CLOSE否则游标会一直占着资源。报错二SQLCODE -104SQL 语句无效。常见于动态 SQL 拼接。比如SET v_sql UPDATE || v_mbbm || SET ...如果v_mbbm是空值拼出来的 SQL 就是UPDATE SET ...直接语法错误。排查方法在EXECUTE IMMEDIATE之前把v_sql写进日志表看拼出来的完整语句长什么样。用 TaoToken 把v_sql发给模型让它检查语法也能快速定位。报错三SQLCODE -803主键或唯一约束冲突。批量插入时如果源数据有重复或者循环里重复处理了同一条就会撞这个。排查先SELECT 主键字段, COUNT(*) FROM 源表 GROUP BY 主键字段 HAVING COUNT(*) 1看有没有重复。如果有在游标 SELECT 里加DISTINCT或者GROUP BY去重。报错四循环不退出过程一直跑。这是最危险的。原因通常是NOT FOUND处理器没生效或者FETCH语句写错了。检查三点CONTINUE HANDLER FOR NOT FOUND是否在OPEN之前声明FETCH的字段数量和类型是否和游标 SELECT 一致循环条件WHILE (i_at_end 0)里的变量是否在每次FETCH后被正确更新。如果FETCH字段数不匹配DB2 会报-313而不是触发NOT FOUND循环就会卡住。报错五SQLCODE -727游标已存在。同一个过程里声明了两个同名游标或者重复执行了建过程脚本但没先 DROP。解决DROP PROCEDURE PAS.SP_PASCALC_TEST再重建或者改游标名。报错六local proxy failed或连接类错误。如果你在用客户端工具连 DB2 时碰到这个通常是客户端配置问题不是存储过程本身。检查 DB2 客户端的环境变量DB2CODEPAGE和DB2COMM以及服务端是否开启了 TCPIP 监听。这类错误和游标逻辑无关别往 SQL 里找原因。报错七reading choices相关错误。这个一般出现在用 AI 辅助工具解析模型返回时返回体结构不符合预期。检查你的请求是否带了正确的Content-Type: application/json以及model字段是否填了文档里真实存在的模型 ID。如果模型 ID 写错返回体里没有choices字段解析就会报错。报错八401 Unauthorized。API Key 无效或没带。检查Authorization: Bearer $TAOTOKEN_API_KEY里的 Key 是否完整复制有没有多余空格。Key 过期就去控制台重新生成。报错九OAuth相关鉴权失败。如果你用的是某些需要 OAuth 流程的客户端确认回调地址和 Token 刷新逻辑配置正确。TaoToken 的 API Key 方式是 Bearer Token不需要 OAuth 流程直接用 Key 即可。排查通用套路先看sqlcode再去 DB2 官方文档查这个码的含义然后对照上面的清单定位。如果sqlcode是动态 SQL 执行时报的先把拼好的 SQL 打出来单独执行一遍能复现就说明是 SQL 本身的问题不能复现就说明是变量拼接的问题。6. 把 AI 辅助接进日常存储过程开发流游标循环这套东西写一次模板之后大部分场景都是改改 SELECT 字段、改改循环体处理逻辑。真正费时间的是异常处理的边界情况和动态 SQL 的拼接校验。把 TaoToken 接进开发流能明显减少这两块的调试时间。具体怎么接三个层次。第一层用模型对话做即时问答。遇到不确定的语法比如WITH RETURN TO CALLER和WITH RETURN TO CLIENT的区别直接开模型对话页面问https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。不用去翻文档问完就能继续写。第二层用 API 做批量校验。你写完一个存储过程把关键片段游标声明、HANDLER、循环体通过 API 发给模型让它逐段检查。这个可以写成一个脚本每次提交前跑一遍。API 端点用https://taotoken.net/apiKey 用控制台创建的模型 ID 从文档里选。第三层长期做存储过程开发和 Agent 辅助的可以考虑 Coding Plan。如果你每天都要生成和校验大量 SQL 逻辑按量调用不如用套餐划算。入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 具体额度和模型覆盖看页面说明。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有完整的请求格式、参数说明和错误码对照。API Keys 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。最后说一个实操技巧把常用的存储过程模板存成一个文件每次新建过程时复制一份然后用 AI 辅助改。改的时候不要整段发给模型而是分段发——先发游标声明让它确认语法再发 HANDLER 让它确认异常覆盖最后发循环体让它确认退出条件。分段校验比整段校验准确率高因为模型注意力不会被无关代码分散。存储过程这东西写多了会发现套路就那几个游标声明、异常处理、循环控制、动态 SQL。把这四块的模板固化下来剩下的就是业务逻辑。AI 辅助的价值不在于替你写业务逻辑而在于帮你快速确认这四块的语法和边界处理没写错。TaoToken 的统一通道让这个确认过程不用在多个平台之间切换一个 Key 搞定。

相关新闻

Learn Claude Code:从零搭建 AI Agent 的工程框架与 TaoToken 接入实践

Learn Claude Code:从零搭建 AI Agent 的工程框架与 TaoToken 接入实践

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

2026/10/8 6:14:39 阅读更多 →
AI无代码平台接入TaoToken:统一Key打通多模型调用链路

AI无代码平台接入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/9 9:19:06 阅读更多 →
用 AGENTS.md 约束 Codex:我先把允许修改的文件写清楚,再让 TaoToken 统一 Key 通道

用 AGENTS.md 约束 Codex:我先把允许修改的文件写清楚,再让 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/8 6:13:39 阅读更多 →

最新新闻

t3code 深度解析:Electron + CLI + Homebrew/winget 跨平台工具链实战

t3code 深度解析:Electron + CLI + Homebrew/winget 跨平台工具链实战

1. 从 t3code 这个标题说起:它到底想解决什么问题第一次看到 “t3code” 这个标题,我脑子里蹦出来的第一反应是:这大概率是一个围绕命令行工具链做整合的项目,而且名字里的 “t3” 很可能对应着某种技术栈缩写或者版本代号。结合热…

2026/10/9 9:52:12 阅读更多 →
可靠性工程师:从失效分析到全生命周期质量保障

可靠性工程师:从失效分析到全生命周期质量保障

1. 先把这个岗位说清楚说实话,十年前我刚入行的时候,别人问我是干嘛的,我说做可靠性,十个人有九个会反问:“那是啥?”现在好多了,起码大家知道这个岗位跟产品质量沾边,但理解依然很有…

2026/10/9 9:52:12 阅读更多 →
opencode 工具系统深度解析:从设计到实战集成

opencode 工具系统深度解析:从设计到实战集成

1. 从“工具”这个词说起:opencode 的定位到底特殊在哪聊 opencode 的工具系统之前,得先把一个容易混淆的概念掰扯清楚。很多人第一次接触 opencode,看到“工具”两个字,脑子里第一反应是插件市场里那种装完就多一个按钮的东西。但…

2026/10/9 9:52:12 阅读更多 →
私域团购区域招商实战:平台与供应链联合模式及团长运营指南

私域团购区域招商实战:平台与供应链联合模式及团长运营指南

1. 一场招商大会背后,私域团购正在发生什么变化私域团购这个词,这两年从朋友圈里的零星拼单,一路演变成了一个有着完整上下游的渠道体系。我关注这个领域大概有三年多,从最早的社群接龙、快团团工具,到后来各种区域平台…

2026/10/9 9:52:12 阅读更多 →
改进的多目标差分进化算法在电力系统环境经济调度中的应用(Python代码实现)【电气期刊论文复现】

改进的多目标差分进化算法在电力系统环境经济调度中的应用(Python代码实现)【电气期刊论文复现】

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 &#x1f381…

2026/10/9 9:52:12 阅读更多 →
MiFlashi专业刷机工具深度解析:fastboot兼容与小米OEM指令支持

MiFlashi专业刷机工具深度解析:fastboot兼容与小米OEM指令支持

1. 刷机不是“点一下就完事”:为什么小米用户需要真正专业的刷机工具“MiFlashi”这个名字一出现,老米粉心里基本就有数了——它不是那种点开就弹窗、点下一步就报错的“一键傻瓜式”工具。我接触过太多案例:某位A同学想给闲置的小米Note 3刷…

2026/10/9 9:51:10 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

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/8 15:26:32 阅读更多 →
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/8 15:26:40 阅读更多 →
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/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/9 6:17:20 阅读更多 →