Я хочу объединить несколько XMLELEMENT для таблицы следующих столбцов и вернуть XML-файл.Как объединить несколько XMLELEMENT с помощью XMLAGG
Я хочу вернуть XML с следующим форматом:
<employee>
<id>FMCSC00015</id>
<year>2016</year>
<month>1</month>
<head_name>BASIC PAY</head_name>
<amount>35600</amount>
<head_name>BANK LOAN-4</head_name>
<amount>23490</amount>
<head_name>RESEARCH ALLOWANCE</head_name>
<amount>1500</amount>
<head_name>MOTOR GARAGE</head_name>
<amount>500.5</amount>
<head_name>CLUB</head_name>
<amount>207</amount>
.........so on
<employee>
Но я столкнулся с трудностями на агрегацию 2 колонки [head_name и сумму]. вот мой оракул код:
select xmlElement( "employee",
xmlelement("id", e.PAYMSTR_EMPID),
xmlelement("year", e.PAYMSTR_SALYR),
xmlelement("month", e.PAYMSTR_SALMT),
XMLAGG(
XMLELEMENT(" ",
XMLELEMENT("head_name", e.PAYMSTR_SALHDNM),
XMLELEMENT("amount", e.PAYMSTR_AMOUNT) )
)
) as result
from TBL_PAYROLL_MASTER_FILE e
where e.PAYMSTR_EMPID = 'FMCSC00015'
group by e.PAYMSTR_EMPID,e.PAYMSTR_SALYR, e.PAYMSTR_SALMT;
Как вы можете видеть, потому что я использовал белое пространство внутри первый XMLELEMENT из XMLAgg, он по-прежнему создает пустых тегов с следующими выходными XML:
<employee>
<id>FMCSC00015</id>
<year>2016</year>
<month>1</month>
<>
<head_name>BASIC PAY</head_name>
<amount>35600</amount>
</>
<>
<head_name>BANK LOAN-4</head_name>
<amount>23490</amount>
</>
<>
<head_name>RESEARCH ALLOWANCE</head_name>
<amount>1500</amount>
</>
<>
<head_name>MOTOR GARAGE</head_name>
<amount>500.5</amount>
</>
<>
<head_name>CLUB</head_name>
<amount>207</amount>
.........so on
<employee>
Как могу ли я избежать этих дополнительных пустых тегов и получить свой подходящий формат xml. Спасибо
Я думаю, что вам нужно вместо тега '' '' внутри XMLAGG', я думаю, что вывод XML, который вы ожидаете в вышеприведенном сообщении, не будет считаться «действительным», поскольку теги 'head_name' и' amount' не будут дублироваться в тот же уровень .. – vmachan