Oracle函数之单列合并函数WM_CONCAT问题记录

不同版本的数据库直接此函数返回类型不一致导致程序映射错误:

1. 错误信息:

Cause: java.sql.SQLSyntaxErrorException: ORA-01790: 表达式必须具有与对应表达式相同的数据类型


2.不同版本直接进行比较

2.1 10g测试如下

SELECT*FROM V$VERSION;

SELECT WM_CONCAT(T.DNAME) FROM DEPT T

2.2 11g测试如下:




3.修复方法《使用TO_CHAR函数进行转换》

SELECT TO_CHAR(WM_CONCAT(T.DNAME)) FROM DEPT T;
SELECT TO_CHAR(SUBSTR(WM_CONCAT(T.DNAME),1,2000)) FROM DEPT T;
时间: 2024-10-08 19:35:20

Oracle函数之单列合并函数WM_CONCAT问题记录的相关文章

oracle中多行合并聚合函数

在oracle数据库中, 进行字段合并,可以使用wm_concat(column)函数,但是在这种方法不被Oracle所推荐,因为WMSYS用户用于Workspace Manager,其函数对象可能因版本而不同而出现异常,这种变化在11.2.0.3及10.2.0.5中体现出来.原本WM_CONCAT函数返回值为 VARCHAR2,但在一些版本下就会变更为CLOB.这一变化导致了很多程序的异常. Oracle建议用户使用自定义函数来实现该功能,而不是使用WorkSpace的这个内部函数.这个函数包

存储过程系列二:适用函数wm_concat(column)函数实现字段合并

1.学习wm_concat函数 oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oraclewm_concat(column)函数实现字段合并 shopping: ----------------------------------------- u_id       goods            num ------------------------------------------ 1                苹果          

Oracle合并函数内容

--MINUS去差集,取第一个集合有的而第二集合没有的,并以第一个字段排序select t.bumenbm from T_HQ_BM t minus select b.bumenbm from t_hq_bm2 b --INTERSECT 取交集,取两个集合都有的,并按第一个字段排序 select t.bumenbm from T_HQ_BM t intersect select b.bumenbm from t_hq_bm2 b --UNION去重合并,去重复记录,并按第一个字段排序 sele

Oracle SQL语言之常用函数_超越OCP精通Oracle视频教程培训30

Oracle SQL语言之常用函数_超越OCP精通Oracle视频教程培训30 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第5/5套:Oracle SQL语言之常用函数.主要学习Oracle数据库SQL聚合函数,分组函数,字符函数,转换函数,日期字符数字转换,日期函数,集合函数,分析函数等. Oracle SQL语言之常用函数,课程内容详细如下: 聚合函数-数据统计 分组函数-使用group by与havin

用sql语句导出oracle中的存储过程和函数

用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' replace SELECT CASE WHEN LINE = 1 THEN 'CREATE OR REPLACE ' || TEXT WHEN LINE = MAX_LINE THEN TEXT || CHR(10 ) || '/' ELSE TEXT END FROM USER_SOURCE A LEF

Oracle 11g 的PL/SQL函数结果缓存

模仿Oracle性能诊断艺术中的例子做了两个试验,书上说如果不用RELIES_ON,则函数依赖的对象发生的变更操作就不会导致结果缓存的失效操作(result_cache RELIES_ON(test1,test2)),试验证明不对,函数f1()并没有使用RELIES_ON,但表上的变化影响到了函数. C:\Documents and Settings\guogang>sqlplus gg_test/[email protected]_gg SQL*Plus: Release 10.2.0.1.0

ORACLE函数之单行数字函数

 1.           ABS(X) 返回X的绝对值 SQL>SELECT ABS(-1) A,ABS(1) B,ABS(0) C FROM DUAL; A          B          C -------------------- ---------- 1          1          0 2.          ACOS(X) 返回X的反余弦值 SQL>SELECT ACOS(0) A,ACOS(0.5) B,ACOS(1) C FROM DUAL; A    

Oracle中chr()和ascii()函数(附:常用字符与ascii对照表)

Oracle中chr()和ascii()函数(附:常用字符与ascii对照表) 关键字:chr() chr()函数作用:"特殊"字符特殊处理 在PLSql中可查询相对应的字码与特殊符 chr()函数示例: select chr(38) from dual;  ascii()函数示例: select ascii('&') from dual;      比如"&"到底为什么在Oracle中成了特殊字符呢?经过查找,终于揭晓了答案:原来&这个字符

四、oracle基本sql语句和函数详解

一.oracle常用数据类型 一.  数据定义语言(ddl) 数据定义语言ddl(data definition language)用于改变数据库结构,包括创建.更改和删除数据库对象. 用于操纵表结构的数据定义语言命令有: create table alter table truncate table drop table eg. --创建tb_stu表数据结构 create table tb_stu( id number, name varchar2(20) );   --修改tb_stu表数