更新时间:2025-10-22 GMT+08:00
U0100047: 请根据源语句实际场景填写对应数据类型
描述
GaussDB 分布式不支持生成列。
数据库类型与版本
- 源库类型与版本:UGO 支持的 Oracle 版本。
- 目标库类型与版本:UGO 支持的 GaussDB 分布式版本。
语法示例
Oracle脚本:
CREATE TABLE test_con (
createtime TIMESTAMP(3),
createdate as (TO_CHAR(createtime, 'YYYYMMDD'))
);
改造建议
1、表生成列改成普通表,数据类型为text;
2、生成列的值通过触发器等效实现。
GaussDB改写后的脚本:
CREATE TABLE test_con (
createtime TIMESTAMP(3),
createdate text
);
CREATE OR REPLACE FUNCTION dsc_fn_generated_test_con()
RETURN trigger
AS
BEGIN
NEW.createdate = (NEW.createtime, 'YYYYMMDD');
RETURN NEW;
END;
/
CREATE TRIGGER dsc_tr_generated_test_con
BEFORE INSERT OR UPDATE
ON test_con
FOR EACH ROW
EXECUTE PROCEDURE dsc_fn_generated_test_con();
/