dolphindb-finance-dataimportlisted
Install: claude install-skill dolphindb/DolphinX_Skill
# /dolphindb-finance-dataimport — 金融数据导入
适用于:已有建好的 DolphinDB 数据库和表,需要将 CSV 文件导入到表中。
> **本 skill 只负责导入数据**,不负责建库建表。建库建表请调用 `/dolphindb-finance-dbtbcreate`。
## 执行流程
### Step 1: 收集用户输入
用 `AskUserQuestion` 收集以下参数。每个问题独立调用,纯文本输入(**不要设置 options**),用户通过"Other"填写。
**问题 1 — CSV 文件路径**(必填)
- 直接提问:"请输入 CSV 文件在 DDB 服务器上的绝对路径"
- 不设 options,用户通过"Other"填写路径
**问题 2 — 数据库路径**(必填)
- 直接提问:"请输入目标数据库路径,例如 dfs://DB_split_SH"
**问题 3 — 表名**(必填)
- 直接提问:"请输入目标表名,例如 TB_split_SH_entrust"
### Step 2: 验证目标库表存在
#### 2.1 执行验证
直接提交以下代码给 DolphinX 平台执行:
```dos
print("=== VERIFY ===");
print("DB_EXISTS=" + string(existsDatabase("{数据库路径}")));
print("TB_EXISTS=" + string(existsTable("{数据库路径}", "{表名}")));
```
读取 `=== VERIFY ===` 后的 `DB_EXISTS` 和 `TB_EXISTS` 值。
#### 2.2 检查结果
- 任一为 `False` → 报错终止,提示用户先运行 `/dolphindb-finance-dbtbcreate` 建库建表
- 均为 `True` → **做 schema 对比,检查表结构是否与 CSV 兼容**:
直接提交以下代码给 DolphinX 平台执行:
```dos
print("=== CSV_COLUMNS ===");
print(extractTextSchema("{CSV路径}"));
print("=== TABLE_COLUMNS ===");
colDefs = schema(loadTable("{数据库路径}", "{表名}")).colDefs;
print(select name, typeString from colDefs);
print("=== TABLE_COLUMN_ORDER ===");
print(select name from colDefs);
```
AI 助手读取三条输出后推理判断兼容性:
- `order_mismatch=true` → **表结构与 CSV 列顺序不兼容**,说明库表名已存在但可能是旧表(公共列相对顺序不一致)
- 其他情况(仅有 `type_mismatches`、`leading_table_only`、`trailing_table_only`)→ 直接进入 Step 3,这些差异由导入脚本自动处理
#### 2.3 处理不兼容
当 `order_mismatch=true` 时,用 `AskUserQuestion` 询问用户:
```
目标库 {数据库路径} 和表 {表名} 已存在