SuperAPI AI 工具集

database-hana

数据与分析

查看项目

更新于 10-15 22:13

技能介绍

用途:为 SAP HANA 数据库访问代码提供一套 P0 级开发规范,覆盖查询编写、分页、事务与类型处理,降低驱动和引擎层面的隐性错误。

主要能力与规则:

  1. 严格参数化:所有用户输入或动态值必须使用 ? 占位符,禁止字符串拼接、fmt.Sprintf 或不可信插值。
  2. 批量与分块:大型 IN (...) 参数列表按每批最多 1,000 项分块,避免 HANA 驱动与引擎的参数上限。
  3. 显式列别名:多表查询必须显式且唯一地给列起别名(如 m.code AS code),禁止 SELECT *,因为驱动按列名映射,重复列名会静默覆盖。
  4. 数据类型转换:COALESCE、SUBSTR、CONCAT 等函数要求参数类型严格兼容,比较或兜底时需显式转换,如 COALESCE(col, 'default')、TO_VARCHAR(...)、CAST(? AS NVARCHAR)。
  5. 标识符大小写:未加引号的标识符默认转为大写,加引号则保留大小写,需与 schema 约定保持一致。
  6. 分页与流式读取:大列存表避免深层 LIMIT/OFFSET,优先使用 keyset/seek 分页(WHERE id > ? ORDER BY id ASC LIMIT ?),并用 rows.Next() 直接流式写入模型以防内存峰值。
  7. 事务范围:事务保持短小,仅覆盖原子写操作,禁止在事务内做慢速外部 I/O 或无界操作,并始终配合 defer tx.Rollback()。

使用方式:将上述规则作为代码审查与实现检查清单,逐条核对查询是否使用 ? 占位符、IN 是否分块、联表是否显式别名、函数参数类型是否匹配、分页是否有稳定 ORDER BY 与 LIMIT 上限、事务是否限定在写路径。

适用场景:使用 Go 等驱动访问 SAP HANA 的后端服务、数据访问层与查询构建代码。

限制:资料未提供具体安装命令、依赖版本、性能基准或收费信息;规则以规范形式给出,需结合项目实际 schema 与驱动版本落地。