客户的应用系统开发商使用WMSYS.WM_CONCAT这个内部函数的问题

Problem with WMSYS.WM_CONCAT Function after Upgrading [ID 1300595.1]

修改时间 20-MAY-2011 类型 PROBLEM 状态 PUBLISHED

In this Document
Symptoms
Cause
Solution
References


Applies to:

Workspace Manager - Version: 10.2.0.1 to 11.2.0.2 - Release: 10.2 to 11.2
Information in this document applies to any platform.

Symptoms

In releases 10.2.0.5 and 11.2.0.2, creating a view using the WMSYS.WM_CONCAT function fails.

In releases 10.2.0.4, 11.1.0.7 and 11.2.0.1, the view compiles successfully.

Cause

The datatype returned from WMSYS.WM_CONCAT function changed from VARCHAR2 to CLOB in releases 10.2.0.5 and 11.2.0.2.

In 10.2.0.4 / 11.1.0.7 / 11.2.0.1 it returns VARCHAR2

SQL> desc wmsys.wm_concat;
FUNCTION wmsys.wm_concat RETURNS VARCHAR2 <<<<<<<<<<<<<<<<<
Argument Name Type In/Out Default?
----------------------- ------------------------ -------- ---------
P1 VARCHAR2 IN


In 10.2.0.5 / 11.2.0.2 it returns CLOB

SQL> desc wmsys.wm_concat;
FUNCTION wmsys.wm_concat RETURNS CLOB <<<<<<<<<<<<<<<<<
Argument Name Type In/Out Default?
----------------------- ------------------------ -------- ---------
P1 VARCHAR2 IN

Solution

This is not a bug.

The function WMSYS.WM_CONCAT is an internal undocumented function which is installed/uninstalled as part of the Workspace Manager feature of Oracle Database. It is internally used in a number of Workspace Manager views. It is not meant to be used by customers directly, and could be changed/updated without notice by Oracle Development. Do not use the WMSYS.WM_CONCAT view in your application.

References

BUG:10146359 - RETURNING DATATYPE CHANGED ON WM_CONCAT AFTER UPGRADE FROM 10.2.0.4 TO 10.2.0.5
BUG:11792802 - COLUMN OF A VIEW IS CREATED AS CLOB ON 11GR2 BUT IT WAS VARCHAR2(4000) ON 10GR2

显示相关信息 相关的


产品
  • Oracle Database Products > Oracle Database > Oracle Database > Workspace Manager

注意:客户的业务系统,原来在oracle10.2.0.1上运行,后来升级到oracle10.2.0.5后,前台应用软件(c/s架构)直接报错:

ORA-00932: inconsistent datatypes: expected - got CLOB


经过软件开发人员跟踪,发现是使用wmsys.wm_concat函数造成的报错。
于是就有本文贴出的metalink文章。

值得注意的是:

The function WMSYS.WM_CONCAT is an internal undocumented function,it is internally used in a number of Workspace Manager views. It is not meant to be used by customers directly, and could be changed/updated without notice by Oracle Development. Do not use the WMSYS.WM_CONCAT view in your application.

[@more@]
请使用浏览器的分享功能分享到微信等