Which IIQ version are you inquiring about?
Version 8.3
Share all details related to your problem, including any error messages you may have received.
Hello Everyone,
For identities in IIQ we have multiple applications for which accounts are created. There is two specific applications NDI and FieldGlass. these two are having different date formats. The requirement is to create a query to select SSO, FieldGlass_end_date, NDI_end_date where FieldGlass_end_date <> NDI_end_date. For this I created below query which is working fine for single SSO
In Fieldglass End_Date format is
In NDI it is called hreffectiveenddate and the format is
Both dates are same Nov-4-2024, but their format is different. So after parsing, I need to convert both dates in same format so that I can compare them.
Here is the query which is working fine for single sso.
SELECT * FROM (
SELECT Display_Name_FG,Display_Name_NDI, IDB,
TO_DATE( (CAST((FG_End_Date) as date)),'MM/dd/yyyy') AS D1,
TO_DATE( (CAST((NDI_End_Date) as date)),'dd/MM/yyyy') AS D2
FROM
(SELECT * FROM (SELECT slA.identity_id IDA, slA.display_name Display_Name_FG, xmltype(slA.attributes).extract('/Attributes/Map/entry[@key="End_Date"]/@value').getStringVal() AS FG_End_Date
FROM spt_link slA where slA.application='6466b2818a2216d2818a24c448f504ef') WHERE IDA='6466b27f8b2b1658818b38d7576078ff' AND FG_End_Date IS NOT NULL AND length(FG_End_Date) > 1),
(SELECT * FROM (SELECT slB.identity_id IDB, slB.display_name Display_Name_NDI, xmltype(slB.attributes).extract('/Attributes/Map/entry[@key="hreffectiveenddate"]/@value').getStringVal() AS NDI_End_Date
FROM spt_link slB where slB.application='6466973f7f3d107f817f3de0d0ba0115') WHERE IDB='6466b27f8b2b1658818b38d7576078ff' AND NDI_End_Date IS NOT NULL AND length(NDI_End_Date) > 1)
WHERE IDA=IDB)
WHERE D1=D2 AND ROWNUM <= 5;
This query is parsing both dates successfully and returning in same format, then the check D1=D2 is passed and below record is returned
Display_Name_FG = 999123123
Display_Name_NDI= Dean, Jimmy Jackson (Jimmy)
IDB = 6466b27f8b2b1658818b38d7576078ff
FG_End_Date = 04-11-2026
NDI_End_Date = 04-11-2026
This query is returning one record because in both inner queries IDA=‘6466b27f8b2b1658818b38d7576078ff’ and IDB=‘6466b27f8b2b1658818b38d7576078ff’ is used in Where condition.
Now the problem is if I remove these single identity checks to get all the records using below query:
SELECT * FROM (
SELECT Display_Name_FG,Display_Name_NDI, IDB,
TO_DATE( (CAST((FG_End_Date) as date)),'MM/dd/yyyy') AS D1,
TO_DATE( (CAST((NDI_End_Date) as date)),'dd/MM/yyyy') AS D2
FROM
(SELECT * FROM (SELECT slA.identity_id IDA, slA.display_name Display_Name_FG, xmltype(slA.attributes).extract('/Attributes/Map/entry[@key="End_Date"]/@value').getStringVal() AS FG_End_Date
FROM spt_link slA where slA.application='6466b2818a2216d2818a24c448f504ef') WHERE FG_End_Date IS NOT NULL AND length(FG_End_Date) > 1),
(SELECT * FROM (SELECT slB.identity_id IDB, slB.display_name Display_Name_NDI, xmltype(slB.attributes).extract('/Attributes/Map/entry[@key="hreffectiveenddate"]/@value').getStringVal() AS NDI_End_Date
FROM spt_link slB where slB.application='6466973f7f3d107f817f3de0d0ba0115') WHERE NDI_End_Date IS NOT NULL AND length(NDI_End_Date) > 1)
WHERE IDA=IDB)
WHERE D1=D2 AND ROWNUM <= 5;
Then getting below error:
ORA-01843: not a valid month
01843. 00000 - “not a valid month”
*Cause:
*Action: