异常脚本:
select row_number() over(ORDER BY SYDW,jldw,FYLY) xh,
SYDW,
jldw,
FYLY,
wm_concat(ddxdms) ddxdms,
wm_concat(ypbhs) ypbhs,
sum(SDWCSL) SDWCSL,
sum(BQJSSL) BQJSSL,
sum(BQWCSL) BQWCSL,
TO_CHAR(sum(JSSL) / sum(BQWCSL)*100,‘FM99990.00’) jsbfl ,
TO_CHAR(sum(WCSL) / sum(YJYWCDGSL)*100,‘FM99990.00’) jsbfl
from (
select f.jldw,
SDWCSL,
a.FYLY,
b.ddxdms,
b.ypbhs,
BQJSSL,
BQWCSL,
LJWCSL,
a.SYDW,
YJYWCDGSL
from (select ddxdm, XM, yp, fy, RWDBH,SYDW, decode(count(ypbh),null,0,count(ypbh)) WCSL
from (select ddxdm, XM, ypph, fy, RWDBH, SYDW,ypbh
from Tickdetail
where fbbs =‘1’
and FYLY !=‘0’
and FBRQ between to_date(‘2019-1-1’,‘yyyy-mm-dd’) and
to_date(‘2020-5-1’,‘yyyy-mm-dd’)
group by ddxdm, XM, yp, fy, RWDBH,SYDW, ypbh)
group by ddxdm, XM, yp, fy,SYDW, RWDBH) a,
(select xm, yp, fy, RWDBH,SYDW, wm_concat(ypbh) ypbhs, wm_concat(ddxdm) ddxdms,decode(count(ypbh),null,0,count(ypbh)) BQJSSL
from (select xm, yp, fy,RWDBH,SYDW, ypbh
from Tickdetail
where fbbs = '1'
and SFJS ='1'
and FBRQ between to_date('2019-1-1','yyyy-mm-dd') and
to_date('2020-5-1','yyyy-mm-dd')
group by xm, yp, fy, RWDBH,SYDW, ypbh)
group by xm, yp, fy,SYDW, RWDBH)b,
(select xm, yp, fy,SYDW, RWDBH, decode(count(ypbh),null,0,count(ypbh)) BQWCSL
from (select xm, yp, SYDW,fy, RWDBH, ypbh
from Tickdetail
where fbbs ='1'
and FBRQ between to_date('2019-1-1','yyyy-mm-dd') and
to_date('2020-5-1','yyyy-mm-dd')
group by ddxdm, ypph,SYDW, fyly, RWDBH, ypbh)
group by ddxdm, ypph, fyly,SYDW, RWDBH) c,
Ypfxprice f
where a.ypph = b.ypph
and a.ddxdm = b.ddxdm
and a.fy = b.fy
and a.ddxdm = f.fxxmdm
and BQJSSL != '0'
and a.ypph = c.ypph
and a.ddxdm = c.ddxdm
and a.fyly = c.fyly
group by
FY,jldw,SYDW order by SYDW, FY,jldw
修改之后脚本:
select row_number() over(ORDER BY SYDW,jldw,FYLY) xh,
SYDW,
jldw,
FYLY,
wm_concat(ddxdms) ddxdms,
sys.stragg(to_char(ypbhs) || nvl2(ypbhs,’’, ‘’’’)) as ypbhs, --此处修改
sum(SDWCSL) SDWCSL,
sum(BQJSSL) BQJSSL,
sum(BQWCSL) BQWCSL,
TO_CHAR(sum(JSSL) / sum(BQWCSL)*100,‘FM99990.00’) jsbfl ,
TO_CHAR(sum(WCSL) / sum(YJYWCDGSL)*100,‘FM99990.00’) jsbfl
from (
select f.jldw,
SDWCSL,
a.FYLY,
b.ddxdms,
b.ypbhs,
BQJSSL,
BQWCSL,
LJWCSL,
a.SYDW,
YJYWCDGSL
from (select ddxdm, XM, yp, fy, RWDBH,SYDW, decode(count(ypbh),null,0,count(ypbh)) WCSL
from (select ddxdm, XM, ypph, fy, RWDBH, SYDW,ypbh
from Tickdetail
where fbbs =‘1’
and FYLY !=‘0’
and FBRQ between to_date(‘2019-1-1’,‘yyyy-mm-dd’) and
to_date(‘2020-5-1’,‘yyyy-mm-dd’)
group by ddxdm, XM, yp, fy, RWDBH,SYDW, ypbh)
group by ddxdm, XM, yp, fy,SYDW, RWDBH) a,
(select xm, yp, fy, RWDBH,SYDW, wm_concat(ypbh) ypbhs, wm_concat(ddxdm) ddxdms,decode(count(ypbh),null,0,count(ypbh)) BQJSSL
from (select xm, yp, fy,RWDBH,SYDW, ypbh
from Tickdetail
where fbbs = '1'
and SFJS ='1'
and FBRQ between to_date('2019-1-1','yyyy-mm-dd') and
to_date('2020-5-1','yyyy-mm-dd')
group by xm, yp, fy, RWDBH,SYDW, ypbh)
group by xm, yp, fy,SYDW, RWDBH)b,
(select xm, yp, fy,SYDW, RWDBH, decode(count(ypbh),null,0,count(ypbh)) BQWCSL
from (select xm, yp, SYDW,fy, RWDBH, ypbh
from Tickdetail
where fbbs ='1'
and FBRQ between to_date('2019-1-1','yyyy-mm-dd') and
to_date('2020-5-1','yyyy-mm-dd')
group by ddxdm, ypph,SYDW, fyly, RWDBH, ypbh)
group by ddxdm, ypph, fyly,SYDW, RWDBH) c,
Ypfxprice f
where a.ypph = b.ypph
and a.ddxdm = b.ddxdm
and a.fy = b.fy
and a.ddxdm = f.fxxmdm
and BQJSSL != '0'
and a.ypph = c.ypph
and a.ddxdm = c.ddxdm
and a.fyly = c.fyly
group by
FY,jldw,SYDW order by SYDW, FY,jldw
异常脚本:select row_number() over(ORDER BY SYDW,jldw,FYLY) xh,SYDW,jldw,FYLY,wm_concat(ddxdms) ddxdms,wm_concat(ypbhs) ypbhs,sum(SDWCSL) SDWCSL,sum(BQJSSL) BQJSSL,sum(BQWCSL) BQWCSL,TO_CHAR(sum(...
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。
OS:RHEL6.5 x86-64bit
DB:11.2.0.4 for Linux 86-64bit
DBCA报错,首先看DBCA的日志,日志中也是报ORA-12547: TNS:lost contact
于是再sqlplus / as sysdba敲回车,也是报ORA-12547: TNS:lost contact,
基于之前的工程经验,先
ORA-06502: PL/SQL: 数字或值错误:字符串缓冲区太小
ORA-06512: 在"WMSYS.WM_Concat_impl",line30
--检查原因:
WMSYS.WM_Concat返回的是varcha
1. 问题起因
最近在进行oracle的一些操作时,总会遇到这个
错误:
ORA-06502:
PL/
SQL:
数字或
值错误 :
字符串缓冲区太小,
错误如下:
[
sql]
ORA-00604: 递归
SQL 级别 1 出现
错误
ORA-06502:
PL/
SQL:
数字或
值错误 :
字符串缓冲区太小
ORA-06512: 在 line 7
现在有这么一个需求,业务单据上面有很多流程跟踪的信息,要显示在列表页面的一个字段中。可能出现一个问题,那就是如果合并的字段长度超过4000个字节,SQL语句会报错,ORA-06502 字符串缓冲区太小,即使你用substr()截取也是这样的错误。其实就是一个行转列的过程。那怎么解决这个问题,来做个试验:
drop table test;
create table test(
track_i
查看日志的时候发现错误信息
Caused by: java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at “LEASE_DB.TAB_TAG_LEASE_RECORD_TRI”, line 36
ORA-04088: error during execution of trigger ‘LEASE_DB.TAB_TAG_LEASE_RE
最近在进行oracle的一些操作时,总会遇到这个
错误:
ORA-06502:
PL/
SQL:
数字或
值错误 :
字符串缓冲区太小,
错误如下:
ORA-00604: 递归
SQL 级别 1 出现
错误
ORA-06502:
PL/
SQL:
数字或
值错误 :
字符串缓冲区太小
ORA-06512: 在 line 7
这个错误通常出现在 PL/SQL 中尝试将超出字符串缓冲区大小的数据插入到变量中时。为了解决这个问题,你可以尝试以下几个方法:
1. 增加缓冲区大小:你可以尝试增加缓冲区的大小,以容纳更多的数据。
2. 确定数据是否正确:确定输入的数据是否正确,特别是在将数据插入到数据库中时。
3. 使用 SUBSTR 函数截取字符串:如果你正在尝试将一个过长的字符串插入到变量中,你可以使用 SUBSTR 函数将其截取为合适的长度。
4. 使用 CLOB 或 BLOB 数据类型:如果你需要处理大量的文本或二进制数据,请考虑使用 CLOB 或 BLOB 数据类型,它们可以容纳更多的数据。
5. 确定变量类型是否正确:如果你正在尝试将数值类型的数据插入到字符串类型的变量中,或者反之,可能会导致此错误。请确保变量类型正确。