1

これは、実行しようとしているオラクルクエリであり、実行ごとに異なる出力が得られます。最初の実行では正しい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