1

这是我试图执行的 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';
4

0 回答 0