Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 12 XMLElement:如果值_expr为空,则无标记_Oracle_Xmlelement - Fatal编程技术网

Oracle 12 XMLElement:如果值_expr为空,则无标记

Oracle 12 XMLElement:如果值_expr为空,则无标记,oracle,xmlelement,Oracle,Xmlelement,早上好,来自德国 现在,如果值_expr为null,是否有方法抑制XMLElement中的整个标记 类似:抑制宾果标记: SELECT XMLELEMENT( "artno", trim(artno) ) , XMLELEMENT( "bingo", NULL ) FROM articlemasterdata WHERE artno = '770100C' <artnr>770100C</artnr> <bingo></bingo>

早上好,来自德国

现在,如果值_expr为null,是否有方法抑制XMLElement中的整个标记

类似:抑制宾果标记:

SELECT XMLELEMENT( "artno", trim(artno) )
     , XMLELEMENT( "bingo", NULL )
  FROM articlemasterdata
 WHERE artno = '770100C'

<artnr>770100C</artnr>
<bingo></bingo>
即使XMLTYPE也会提供一个空标记:

SELECT XMLTYPE( XMLELEMENT( "artno", trim(artno) ).getclobval() ) 
    ,  XMLTYPE( XMLELEMENT( "bingo", null ).getclobval() )
  FROM articlemasterdata 
 WHERE artno = '770100C';

<artnr>770100C</artnr>
<bingo></bingo>
谢谢,

Joachim

您可以使用xmlforest而不是xmlelement:

或者更现实一点:

-- CTE for dummy table
with articlemasterdata (artno, bingo) as (
  select '770100A', 'legs eleven' from dual
  union all
  select '770100C', null from dual
)
-- actual query
SELECT XMLELEMENT( "artno", trim(artno) )
     , XMLFOREST( bingo as "bingo")
  FROM articlemasterdata
 WHERE artno = '770100A'
    OR artno = '770100C';

XMLELEMENT("ARTNO",TRIM(ARTNO))                                                  XMLFOREST(BINGOAS"BINGO")                                                       
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
<artno>770100A</artno>                                                           <bingo>legs eleven</bingo>                                                      
<artno>770100C</artno>                                                                                                                                           
甚至:

SELECT XMLELEMENT( "root",
         XMLELEMENT( "artno", trim(artno) )
       , XMLFOREST( bingo as "bingo")
       )
  FROM articlemasterdata
 WHERE artno = '770100A'
    OR artno = '770100C';

XMLELEMENT("ROOT",XMLELEMENT("ARTNO",TRIM(ARTNO)),XMLFOREST(BINGOAS"BINGO"))    
--------------------------------------------------------------------------------
<root><artno>770100A</artno><bingo>legs eleven</bingo></root>
<root><artno>770100C</artno></root>
您可以使用xmlforest而不是xmlelement:

或者更现实一点:

-- CTE for dummy table
with articlemasterdata (artno, bingo) as (
  select '770100A', 'legs eleven' from dual
  union all
  select '770100C', null from dual
)
-- actual query
SELECT XMLELEMENT( "artno", trim(artno) )
     , XMLFOREST( bingo as "bingo")
  FROM articlemasterdata
 WHERE artno = '770100A'
    OR artno = '770100C';

XMLELEMENT("ARTNO",TRIM(ARTNO))                                                  XMLFOREST(BINGOAS"BINGO")                                                       
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
<artno>770100A</artno>                                                           <bingo>legs eleven</bingo>                                                      
<artno>770100C</artno>                                                                                                                                           
甚至:

SELECT XMLELEMENT( "root",
         XMLELEMENT( "artno", trim(artno) )
       , XMLFOREST( bingo as "bingo")
       )
  FROM articlemasterdata
 WHERE artno = '770100A'
    OR artno = '770100C';

XMLELEMENT("ROOT",XMLELEMENT("ARTNO",TRIM(ARTNO)),XMLFOREST(BINGOAS"BINGO"))    
--------------------------------------------------------------------------------
<root><artno>770100A</artno><bingo>legs eleven</bingo></root>
<root><artno>770100C</artno></root>