【发布时间】:2015-09-30 20:27:29
【问题描述】:
我有以下在“Oracle SQL Developer”中工作的查询。
在 BIRT Eclipse 中,我收到 ORA-01722“不是数字”错误。
用 TO_NUMBER() 转换数字没有帮助。你有什么想法吗?
select INSTR_NR, VALID_FROM, PRICE, return, sqrt(ema)* 2.326347874041 as VaR1d
from
(select INSTR_NR, VALID_FROM, PRICE from
(select DATA_IDC, ATTR_IDC, VALUE as INSTR_NR
from DLEATTRDAT
where ATTR_IDC = 'FUND:fund:index_abbi_ref'
and LOCKSTATE = 0) x left join
(select DATA_IDC, VALID_FROM, VALUE as PRICE
from DLEATTRDAT
where ATTR_IDC = 'FUND:instr:EUR_price') y
on x.INSTR_NR = y.DATA_IDC)
model
partition by (INSTR_NR)
dimension by (VALID_FROM)
measures (PRICE,0 return,0 ema)
rules
( return[any] order by VALID_FROM
= nvl2
( PRICE[cv()-1]
, POWER ( ln ( PRICE[cv()] / (PRICE[cv()-1]) ), 2)
, POWER (ln ( PRICE[cv()] / (PRICE[cv()-3]) ), 2) )
,
ema[any] order by VALID_FROM
= nvl2
( return[cv()-1]
, .06 * return[cv()] + .94 * ema[cv()-1]
, return[cv()] ) )
order by INSTR_NR, VALID_FROM desc
【问题讨论】:
-
您的表
varchar2中的列是否包含数字数据?即使在被其他谓词过滤掉的行中,表中的 any 行是否有非数字数据(即value不是被attr_idc或 @ 过滤掉的数字的行987654325@谓词)? -
VALUE 作为 INSTR_NR、ATTR_IDC 和 DATA_IDC 是字符串。 VALID_FROM 是日期。其他都是数字
-
表中是否存在
value不是数字的行(即使它们被其他谓词过滤掉了)?