这是我试图执行的 oracle 查询,它在每次执行时给出不同的输出。对于第一次执行,它给出了正确的xml
所有后续请求,它返回 null。此外,可怕的是当我将xml
元素名称从更改"PHONE"
为时"PHONE1"
,它再次仅在第一次和NULL
后续请求中提供输出。
此外,如果我硬编码CLI_PHONENUMBER
(表中存在的相同值)的值,它总是给出正确的输出。
SELECT
CASE
WHEN REGEXP_REPLACE(CLI_PHONENUMBER,'[^0-9]+', '') IS NOT NULL
AND CLI_PHONENUMBER <>'000000000000000'
THEN XMLELEMENT("PHONE",
XMLELEMENT("PHONETYPECODE",
CASE
WHEN regexp_like( REGEXP_REPLACE(CLI_PHONENUMBER,'[^0-9]+', ''), '^02[0-9]+')
THEN 'MOB'
ELSE 'BUSN' END),
XMLELEMENT("AREACODE", NULL),
XMLELEMENT("COUNTRYCODE",'64'),
XMLELEMENT("PHONENUMBER", REGEXP_REPLACE(CLI_PHONENUMBER,'[^0-9]+', '')),
XMLELEMENT("PRIMARYFLAG",NULL)
)
END
FROM CLI_CLIENT
WHERE CLI_COMPANY = 'AON'
AND CLI_BRANCH = 'WTP'
AND CLI_CLIENTNUMBER = '05QSZ';