0
にスロー私は、次のとおりクエリがある:はORA-01722:無効な数がサブクエリ
AND WAH.CHECK_DEFINITION_ID = CD.ID
AND USR.ID = WW.ASSIGNED_TO
:私はこれらの2行を入れない限り、
SELECT
WAH.ALERT_KEY AS ALERT_KEY,
TRUNC(WAH.EVENT_DATE) AS ALERT_DATE,
WAH.AT_DATASOURCE_ID AS DATA_SOURCE_ID,
WAH.CHECK_DEFINITION_ID AS CHECK_ID,
OU.ID AS ORGUNIT_ID,
USR.ID AS USER_ID,
GRP.ID AS GROUP_ID,
CUS.SOURCE_SYSTEM AS SOURCE_SYTEM
FROM
WLM_ALERT_HEADER WAH,
CHECK_DEFINITION CD,
ORGANIZATION_UNITS OU,
USERS USR,
GROUPS GRP,
CUSTOMERS CUS,
WORKFLOW_WORKITEM WW
WHERE
WAH.ALERT_KEY in (
select
ENTITY_KEY
from
WORKFLOW_WORKITEM ww
where
ww.STATUS_ID in (
select
ID
from
WORKFLOW_STATUSES ws
where
ws.CODE IN (
'S_GE_WLM_WL_001', 'S_GE_WLM_WL_002',
'S_GE_WLM_WL_003', 'S_GE_WLM_WL_004',
'S_GE_WLM_WL_007', 'S_GE_WLM_WL_010'
)
and ww.ORGUNIT_ID in (
select
ou.ID
from
ORGANIZATION_UNITS ou
where
ou.ID = (
select
cus.ORGUNIT_ID
from
CUSTOMERS cus
where
cus.CUSTOMER_ID = wah.CUSTOMER_ID
)
)
)
)
AND WAH.CHECK_DEFINITION_ID = CD.ID
AND USR.ID = WW.ASSIGNED_TO
AND GRP.ID IN (
select
GROUP_ID
from
USER_GROUP_RELATIONS
where
USER_ID = USR.ID
)
AND WW.ENTITY_NAME = 'WLM Alert';
ORA-01722は、上記のクエリのためにスローされます。 insideサブクエリWAH.ALERT_KEYの右括弧
ただし、これらの2行はサブクエリの一部ではありません。私はサブクエリのどのフィールドが変換失敗に不平を言うのだろうか。
文字列を数値に変換しようとしたときに文字列を有効な数値に変換できない場合、ORA-01722(「無効な数値」)エラーが発生します。有効な数字には、数字の '0'から '9'、小数点以下1桁、文字列の先頭または末尾の符号(+または - )、浮動小数点の場合は 'E'または 'e'科学的表記の点番号)。その他の文字はすべて禁止されています。 http://www.orafaq.com/wiki/ORA-01722 –
これらの列の1つに適切な番号ではないデータが含まれている可能性があります: 'WLM_ALERT_HEADER.CHECK_DEFINITION_ID'、' CHECK_DEFINITION.ID'、 'USERS.ID'、 'WORKFLOW_WORKITEM.ASSIGNED_TO' –
これらの列の形式は同じです。NUMBER(38) – user2102665