私はいくつかのテーブルからの眺めを持っています:
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_TYPENULLABLECOLUMNT_IDコメントINSERTABLEUPDATEABLE INDEX1 NUMBER(14,0)いいえ1はいはいはい INDEX2 VARCHAR2(81)はい2いいえいいえいいえ INDEX3NUMBERはい3NONO NO INDEX4 VARCHAR2(0)はい4 NO NO NO 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)フィールドですが、すべての数値データが入力されています。(私は知っています-悪いデザインですが、それはサードパーティ製品です。)
誰もが提供できる洞察に感謝します。