文档首页/
数据库和应用迁移 UGO/
用户指南/
语法转换指南/
转换错误码/
Oracle To GaussDB 转换错误码/
U0100056: GaussDB不支持以TO_DATE或TO_CHAR这类非不可变函数生成索引
更新时间:2026-03-19 GMT+08:00
U0100056: GaussDB不支持以TO_DATE或TO_CHAR这类非不可变函数生成索引
描述
GaussDB不支持以TO_DATE或TO_CHAR这类非不可变函数生成索引。
数据库类型与版本
- 源库类型与版本:UGO 支持的 Oracle 版本。
- 目标库类型与版本:UGO 支持的 GaussDB 版本。
语法示例
create index index_range_index on range_index(to_date(date1,'yyyy-mm-dd')) ;
改造建议
无自动化方案,TO_DATE或TO_CHAR人工创建确定性函数,然后函数表达式引用确定性函数。
GaussDB修改后:
CREATE OR REPLACE FUNCTION dsc_fn_to_date
( i_date IN timestamp
, i_date_fmt IN TEXT )
returns timestamp without time zone
IMMUTABLE
AS
$PG$
SELECT TO_DATE(i_date, i_date_fmt)
$PG$
LANGUAGE SQL;
---index
create index index_range_index on range_index(dsc_fn_to_date(date1,'yyyy-mm-dd')) ;