You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Progress OpenEdge列描述导出为PostgreSQL表列注释

从Progress OpenEdge提取列注释生成PostgreSQL COMMENT语句

没问题,我来帮你搞定这个!Progress OpenEdge自带了一套系统元数据表,咱们可以直接查询这些表获取列注释,然后生成你需要的PostgreSQL注释语句。下面是具体步骤:

1. 理解Progress OpenEdge的元数据表

Progress用以下核心系统表存储表和列的元数据:

  • _File:存储数据库中所有表的信息,包括表名、所属数据库、表注释等
  • _Field:存储所有列的信息,通过_FILE字段关联到_File表的RECID,其中COMMENTS字段就是你需要的列注释

2. 编写Progress SQL查询提取注释

连接到你的data数据库后,执行以下SQL查询,就能获取所有用户表的列注释(排除系统表):

SELECT 
  fi.FILE-NAME AS table_name,
  f.FIELD-NAME AS column_name,
  f.COMMENTS AS comment_text
FROM 
  _Field f
JOIN 
  _File fi ON f._FILE = fi.RECID
WHERE 
  -- 排除Progress自带的系统表(以_开头)
  fi.FILE-NAME NOT LIKE '_%'
  -- 指定目标数据库为data
  AND fi.DBNAME = 'data'
  -- 只提取有注释的列,避免生成空注释语句
  AND f.COMMENTS IS NOT NULL
ORDER BY 
  fi.FILE-NAME, f.FIELD-NAME;

你可以通过Progress的SQL Explorer工具,或者使用prosql命令行工具来执行这个查询,然后把结果导出为CSV格式。

3. 转换结果为PostgreSQL COMMENT语句

接下来需要把查询结果转换成PostgreSQL的注释语法。这里有几个关键点要注意:

  • Progress的表名/列名可能保留大小写,所以在PostgreSQL里要用双引号包裹,避免自动转成小写
  • 如果注释里包含单引号,需要转义为两个单引号(''),否则PostgreSQL会报错

示例转换逻辑

假设你导出的CSV结果如下:

table_name,column_name,comment_text
customer,cust_id,客户唯一标识
order,order_date,订单创建日期('下单当日生效')

你可以用简单的脚本(比如Python、awk)或者Excel公式来生成目标SQL:

COMMENT ON COLUMN public."customer"."cust_id" IS '客户唯一标识';
COMMENT ON COLUMN public."order"."order_date" IS '订单创建日期(''下单当日生效'')';

快速Python脚本示例

如果用Python处理CSV,代码大概是这样:

import csv

with open('progress_comments.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    with open('pg_comments.sql', 'w', encoding='utf-8') as out:
        for row in reader:
            table = row['table_name'].strip()
            column = row['column_name'].strip()
            comment = row['comment_text'].strip().replace("'", "''")
            sql = f"COMMENT ON COLUMN public.\"{table}\".\"{column}\" IS '{comment}';\n"
            out.write(sql)

4. 额外提示

  • 如果需要提取表级注释,可以查询_File表的COMMENTS字段,生成COMMENT ON TABLE public."{table_name}" IS '{comment_text}';语句
  • 执行生成的SQL前,先在测试环境验证,确保表和列名匹配,注释转义正确

内容的提问来源于stack exchange,提问作者KuKeC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:27:37