文档首页/ 数据库和应用迁移 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'))  ; 

相关文档