我有一些表的看法:
SELECT UM00200M.ACCOUNT_NO AS INDEX1,
CONCAT (CONCAT (TRIM (UM00200M.PERSON_LNM), ' '),
TRIM (UM00200M.PERSON_FNM))
AS INDEX2,
DECODE (NVL (TRIM (SG00100M.PERSON_ID_CUSTOM), 0),
0, UM00200M.PERSON_NO,
SG00100M.PERSON_ID_CUSTOM)
INDEX3,
NULL AS INDEX4,
'CONS_ACCTG' AS GROUPNAME
FROM UM00200M, SG00100M
WHERE UM00200M.PERSON_NO = SG00100M.PERSON_NO
这给了我(抱歉格式化):
Column_Name DATA_TYPE NULLABLE COLUMNT_ID COMMENTS INSERTABLE UPDATEABLE INDEX1 NUMBER(14,0) 否 1 是 是 是 INDEX2 VARCHAR2(81) 是 2 否 否 否 索引 3 编号 是 3 否 否 否 INDEX4 VARCHAR2(0) 是 4 否 否 否 GROUPNAME CHAR(10) 是 5 否 否 否
我正在寻找所有具有 INDEX3 = 524118914 的记录
--Looking for INDEX3 = 524118914
--Fails: 01722. 00000 - "invalid number"
Select *
from Cayenta.CAHeader
where INDEX3 = 524118914;
--Fails: 01722. 00000 - "invalid number"
Select *
from Cayenta.CAHeader
where INDEX3 > 524118000 and INDEX3 < 524118999;
--Works
Select *
from Cayenta.CAHeader
where INDEX3 > 524118000 and INDEX3 < 524999999;
--Fails: 01722. 00000 - "invalid number"
Select *
from Cayenta.CAHeader
where INDEX3 > 524118000 and INDEX3 < 524999999
ORDER BY INDEX3;
执行查询时,我没有得到预期的结果。为什么我会收到“无效号码”?
我认为这与 DECODE 函数有关,SG00100M.PERSON_ID_CUSTOM 是一个 CHAR(15 BYTE) 字段,但填充了所有数字数据。(我知道 - 糟糕的设计,但它是第 3 方产品。)
我感谢任何人可以提供的任何见解。