From 1bce6fa48ccfdafe9cd4942ee4eda4375f5b7d08 Mon Sep 17 00:00:00 2001 From: chen qiang <343005560@qq.com> Date: Thu, 3 Sep 2026 14:05:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=20Skill=201.5.48=20=E5=85=AC?= =?UTF-8?q?=E5=85=B1=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 2 ++ CHANGELOG.md | 6 ++++++ SKILL.md | 5 +++-- VERSION | 2 +- references/query-and-business-rules.md | 23 +++++++++++++++++++++++ 5 files changed, 35 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 1723860..b570073 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,5 +1,7 @@ # oracle-jump-query Skill Release Standard +Release 1.5.48: 补充 BOS 新建表最小结构,保留八个基础字段、类型、可空性、`ISACTIVE DEFAULT 'Y' NOT NULL` 和 `ID` 主键;DDL 仅生成供人工确认执行。本次仅更新 Skill 文档,不修改 Agent、transit-server、CLI/HTTP 接口、配置或审计 action、字段及保存策略;命令数保持 32。发布时同步私有主库、安装目录和无私有历史公共镜像。 + Release 1.5.47: 补充用户提供表名称时的 BOS 表解析规则:未明确要求绕过 BOS 元数据直接查询物理数据库对象时,先查 `AD_TABLE.NAME`、`DESCRIPTION` 和 `REALTABLE_ID`;虚拟表沿 `REALTABLE_ID` 定位实际表,未注册对象再按数据库表、视图、物化视图顺序查找。本次仅更新 Skill 文档,不修改 Agent、transit-server、CLI/HTTP 接口、配置或审计 action;命令数保持 32。发布时同步私有主库、安装目录和无私有历史公共镜像。 Release 1.5.46: 明确 `PUSH_LOG.HEAD_DATA` 由 BOS 后台 API 合并,Oracle 数据库侧可能看不到该动作;排查时不得因 `H_INTERFACE_DATA_TASK` 未读取该字段就判断请求头缺失,也不得据此修改全局封装任务。本次仅更新 Skill 文档,不修改 Agent、transit-server、接口、配置或审计 action;命令数保持 32。发布时同步私有主库、安装目录和无私有历史公共镜像。 diff --git a/CHANGELOG.md b/CHANGELOG.md index 71a11ec..d4739b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.5.48 (2026-09-03) + +- 补充 BOS 新建表的八个基础字段、字段类型、可空性、`ISACTIVE` 默认值和 `ID` 主键模板。 +- 区分建表默认值与新增业务记录赋值规则;DDL 仅生成供人工确认执行,不通过 Skill 查询通道建表或修改 BOS 元数据。 +- 本次仅更新 Skill 业务知识,不修改 Agent、transit-server、CLI/HTTP 接口、配置格式或审计 action、字段及保存策略;命令数保持 32。 + ## 1.5.47 (2026-09-02) - 补充用户提供表名称时的 BOS 表解析规则:默认先从 `AD_TABLE` 确认英文名称 `NAME`、中文显示名称 `DESCRIPTION` 和 `REALTABLE_ID`。 diff --git a/SKILL.md b/SKILL.md index 569283f..0e0b706 100644 --- a/SKILL.md +++ b/SKILL.md @@ -5,7 +5,7 @@ description: Oracle 跳板查询技能。通过中转服务查询远程 Oracle # Oracle 跳板查询 -> **版本:v1.5.47** · [更新日志](./CHANGELOG.md) +> **版本:v1.5.48** · [更新日志](./CHANGELOG.md) ## 使用原则 @@ -22,7 +22,7 @@ description: Oracle 跳板查询技能。通过中转服务查询远程 Oracle - [命令、登录与调用方式](./references/commands-and-auth.md) 登录、client 切换、CLI 命令、HTTP action、故障排查。 - [生产查询限制与常用业务规则](./references/query-and-business-rules.md) - 生产查询限制、商品/款号/条码/库存规则、新增业务记录 SQL 生成规则、字段值域映射。 + 生产查询限制、商品/款号/条码/库存规则、BOS 新建表最小结构、新增业务记录 SQL 生成规则、字段值域映射。 - [BOS 数据字典与系统地图](./references/bos-metadata.md) `AD_TABLE`、`AD_COLUMN`、`AD_REFBYTABLE`、`AD_TABLE_TEXT`、BOS 系统菜单和表结构地图、数据权限模型。 - [通用接口业务逻辑](./references/generic-interface.md) @@ -116,6 +116,7 @@ AD_SUBSYSTEM ## 业务规则速记 +- 为 BOS 新建表生成 DDL 时,至少保留 `ID`、`AD_CLIENT_ID`、`AD_ORG_ID`、`OWNERID`、`CREATIONDATE`、`MODIFIERID`、`MODIFIEDDATE`、`ISACTIVE` 八个基础字段及 `ID` 主键;类型、可空性和默认值按 [BOS 新建表最小结构](./references/query-and-business-rules.md#bos-新建表最小结构仅生成-ddl) 模板生成。DDL 只供人工确认执行,不通过 Skill 查询通道执行。 - 用户提到“通用接口”“接口指令”“接口方”“推送日志”“接收日志”“数据接口任务”“数据队列封装/推送”,或要求分析 `H_INTERFACE`、`H_INSTRUCTION`、`PUSH_LOG`、`INF_LOG`、`AD_PROCESS`、`H_INSTRUCTION_TASK`、`H_INTERFACE_DATA_TASK`、`H_INTERFACE_TASK01`、`BOS_INF_PUSH`、`INF_PUSH_DEAL`、`GET_HYJINF1` 时,先读取 [通用接口业务逻辑](./references/generic-interface.md)。这些对象是常见模型而不是固定契约;不同服务器可能缺表、增表、增减字段、改变值域、请求头合并规则或处理过程,必须先查目标环境再下结论。 - 商品、款号通常指 `M_PRODUCT`。 - 条码、SKU 通常指 `M_PRODUCT_ALIAS`;查询条码时首查 `M_PRODUCT_ALIAS.NO`。 diff --git a/VERSION b/VERSION index cc48b9f..317146c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.47 +1.5.48 diff --git a/references/query-and-business-rules.md b/references/query-and-business-rules.md index f623e81..aee9a85 100644 --- a/references/query-and-business-rules.md +++ b/references/query-and-business-rules.md @@ -72,6 +72,29 @@ WHERE s.C_STORE_ID = :store_id ``` +## BOS 新建表最小结构(仅生成 DDL) + +按照 BOS 系统规则,为新建表生成结构 SQL 时,至少包含下面八个基础字段和 `ID` 主键。业务字段在此基础上增加,不要只列业务字段而漏掉基础字段。`TableName` 是表名占位符,生成具体方案时替换为用户确认的表名。 + +```sql +CREATE TABLE TableName ( + ID NUMBER(10) NOT NULL, + AD_CLIENT_ID NUMBER(10), + AD_ORG_ID NUMBER(10), + OWNERID NUMBER(10), + CREATIONDATE DATE, + MODIFIERID NUMBER(10), + MODIFIEDDATE DATE, + ISACTIVE CHAR(1) DEFAULT 'Y' NOT NULL, + PRIMARY KEY (ID) +); +``` + +- “必须包含字段”不等于“所有字段非空”:本模板只有 `ID` 和 `ISACTIVE` 明确 `NOT NULL`,其余六个字段允许为空。 +- `ID`、`AD_CLIENT_ID`、`AD_ORG_ID`、`OWNERID`、`MODIFIERID` 使用 `NUMBER(10)`;`CREATIONDATE`、`MODIFIEDDATE` 使用 `DATE`;`ISACTIVE` 使用 `CHAR(1)`,默认值为 `'Y'`。 +- 不要把新增业务记录时的 `AD_CLIENT_ID=37`、`AD_ORG_ID=27` 或主键取号规则自动写成建表 `DEFAULT`;本最小模板只为 `ISACTIVE` 指定默认值,日期字段也不自动增加 `DEFAULT SYSDATE`。 +- 这是新建表结构规则,不表示可以自动修改既有表。Skill 仅生成 DDL 并明确“未执行”,由用户或 DBA 确认后人工执行;不通过 `query` / `qperm` 建表,也不隐式写入 BOS 元数据。 + ## 新增业务记录 SQL 生成规则 当用户要求分析或生成新增业务表记录的 SQL 示例时,仍然保持只读安全边界:skill 可以生成 SQL 和说明,但不能直接通过查询通道执行 INSERT、UPDATE、DELETE、MERGE、DDL 等写操作。