wm_concat标识符无效_ORA-00904:"WM_CONCAT":标识符无效

在处理Oracle数据库迁移过程中,遇到ORA-00904: 'WM_CONCAT': 标识符无效的问题。文章介绍了如何通过创建DDL语句、导出和导入函数以及手动创建WM_CONCAT函数及其相关组件来解决这个问题,最终实现函数在新环境的正常工作。
摘要由CSDN通过智能技术生成

今天客户现场业务甩给我一个报错让处理,ora-00904:"WM_CONCAT":标识符无效。

初步分析了下场景:

前天因为在原先一套库要删除,而他们业务用户A使用的便是该套计划删除的库,故导出A用户,导入到新环境中,expdp/impdp导入导出中均无报错。昨天在新环境给恢复成功,今天业务反映有报错,在新环境中查看确实没有该function,而老环境中有该function,但是是用户B的,猜测之前老环境是给A建立了B的synonym。

解决方法:

1、获取创建该函数的DDL语句,在新环境中直接创建该function

SQL> set long 999

SQL> select dbms_metadata.get_ddl('FUNCTION','WM_CONCAT','TBCS') from dual;

DBMS_METADATA.GET_DDL('FUNCTION','WM_CONCAT','TBCS')

--------------------------------------------------------------------------------

CREATE OR REPLACE EDITIONABLE FUNCTION "TBCS"."WM_CONCAT" (P1 VARCHAR2)

RETURN clob AGGREGATE USING  WM_CONCAT_IMPL;

执行DDL语句

SQL> CREATE OR REPLACE EDITIONABLE FUNCTION "AOPEN"."WM_CONCAT" (P1 VARCHAR2) RETURN clob AGGREGATE USING  WM_CONCAT_IMPL;

2  /

Warning: Function created with compilation errors.

SQL>

此操作后,明显报错了,让业务测试,肯定测不过,查看函数是无效的

SQL> select OWNER,OBJECT_NAME,SUBOBJECT_NAME,OBJECT_TYPE,LAST_DDL_TIME from dba_objects where object_name=upper('wm_concat') ;

OWNER                OBJECT_NAME                    SUBOBJECT_NAME                 OBJECT_TYPE             LAST_DDL_TIME

-------------------- ------------------------------ ------------------------------ ----------------------- ---------------

A                    WM_CON

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值