📦 SQL Splitter — sql-splitter — SQL文件拆分工具

v1.1.0

拆分 SQL 文件为独立文件(存储过程、函数、视图、触发器、表结构、索引、约束)

0· 22·0 当前·0 累计
fish1981bimmer 头像by @fish1981bimmer·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/15
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能实现了一个功能完整的 SQL 文件拆分工具,没有明显的额外凭证或安装需求。但由于提供的源文件在审查输入中被截断,我无法完全验证是否存在隐藏的网络/子进程/数据泄露行为。
评估建议
包含的文件和 SKILL.md 看起来是一个连贯的 SQL 拆分工具,没有声明的凭证或安装程序——这点很好。然而,提供给我的源文件被截断,因此我无法完全审计整个脚本。在安装或运行此技能之前,请完整审查 scripts/split_sql.py 文件,检查是否存在:网络相关导入或调用(requests、urllib、socket、http)、subprocess/exec/eval 使用、读取无关系统文件或环境变量的代码、或在预期输出目录之外写入(通过未清理的文件名进行路径遍历)。同时检查是否存在尝试将文件 POST/PUT 到远程端点或嵌入密钥的行为。作为预防措施:(1) 首先在备份或非敏感的示例 SQL 文件上运行,(2) 在受限用户或沙箱下运行,(3) 如果愿意,提供完整的 scripts/split_sql.py 内容,以便我重新检查网络/子进程/泄露模式并提高置信度。...
详细分析 ▾
用途与能力
名称、描述、SKILL.md 和 scripts/split_sql.py 的可见部分保持一致:该工具使用正则表达式解析 SQL 并写入每个对象的 .sql 文件。不需要无关的凭证、二进制文件或配置路径。
指令范围
SKILL.md 的指令范围很窄:针对输入文件/目录运行包含的 Python 脚本并将输出写入指定目录。它不指导读取无关的系统文件或向外部服务发送数据。
安装机制
没有安装规范——只有指令加上包含的 Python 脚本。这是最低风险的安装模式;评估期间不会下载或安装任何内容。
凭证需求
该技能不请求环境变量、凭证或配置路径。这对于本地文件处理工具来说是相称的。
持久化与权限
always 为 false,该技能不声明修改其他技能或系统范围的配置。运行脚本将在所选输出目录下写入输出文件(预期行为)。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.1.02026/4/15

sql-splitter v1.1.0 - 新增索引支持:CREATE INDEX, CREATE UNIQUE INDEX - 新增约束支持:ALTER TABLE ADD CONSTRAINT - 现已支持所有六种方言中的索引与约束识别 - 兼容 SQL Server 的 CLUSTERED/NONCLUSTERED 选项 - 支持 Oracle/达梦的 BITMAP 索引

无害

安装命令

点击复制
官方npx clawhub@latest install sql-splitter
镜像加速npx clawhub@latest install sql-splitter --registry https://cn.longxiaskill.com

技能文档

将包含多个 SQL 对象的单一文件或目录拆分为独立的 .sql 文件。

支持的 SQL 方言

  • MySQL
  • PostgreSQL
  • Oracle
  • SQL Server
  • 达梦 (DM)
  • 通用 (Generic)

支持的 SQL 对象类型

类型前缀说明
存储过程proc_CREATE PROCEDURE
函数func_CREATE FUNCTION
视图view_CREATE VIEW
触发器trig_CREATE TRIGGER
表结构table_CREATE TABLE
pkg_CREATE PACKAGE
索引idx_CREATE INDEX
唯一索引uidx_CREATE UNIQUE INDEX
约束con_ALTER TABLE ADD CONSTRAINT
序列seq_CREATE SEQUENCE
同义词syn_CREATE SYNONYM (Oracle)
事件evt_CREATE EVENT (MySQL)
物化视图mv_CREATE MATERIALIZED VIEW (PostgreSQL)
类型type_CREATE TYPE

使用方法

单文件拆分

python3 ~/.openclaw/skills/sql-splitter/scripts/split_sql.py  [output_dir]

批量拆分(目录)

python3 ~/.openclaw/skills/sql-splitter/scripts/split_sql.py --batch <目录路径> [输出目录]

批量拆分(多个文件)

python3 ~/.openclaw/skills/sql-splitter/scripts/split_sql.py --batch "file1.sql,file2.sql,file3.sql" [输出目录]

指定方言

python3 ~/.openclaw/skills/sql-splitter/scripts/split_sql.py --dialect oracle input.sql

支持的方言:mysql, postgresql, oracle, sqlserver, dm, generic

参数说明

参数说明
input.sql要拆分的 SQL 文件路径(单文件模式必需)
--batch批量模式标志
--dialect指定 SQL 方言
-q, --quiet静默模式
output_dir输出目录(可选,默认:原文件名_split)

输出示例

假设输入文件 myapp.sql 包含:

  • 存储过程 usp_GetUsers
  • 函数 fn_CalculateTotal
  • 视图 vw_OrderSummary
  • 索引 idx_users_name

输出:

myapp_split/
├── proc_usp_GetUsers.sql
├── func_fn_CalculateTotal.sql
├── view_vw_OrderSummary.sql
└── idx_idx_users_name.sql

注意事项

  • 使用正则表达式识别 SQL 对象,可能对复杂嵌套语法有局限
  • 默认 UTF-8 编码
  • 建议先备份原文件
  • 批量模式会自动创建以原文件名命名的子目录
  • 自动检测 SQL 方言,也可手动指定

更新日志

v1.1.0 (2026-04-13)

  • ✨ 新增索引支持:CREATE INDEX, CREATE UNIQUE INDEX
  • ✨ 新增约束支持:ALTER TABLE ADD CONSTRAINT
  • ✨ 所有 6 种方言均支持索引/约束识别
  • ✨ 支持 CLUSTERED/NONCLUSTERED (SQL Server)
  • ✨ 支持 BITMAP 索引 (Oracle/达梦)

v1.0.0

  • 初始版本
  • 支持存储过程、函数、视图、触发器、表、包等基础对象
数据来源ClawHub ↗ · 中文优化:龙虾技能库