Добрый день.
Нужен совет.
Пример:
SELECT
XMLRoot(
(XMLElement("q1:Employee",
XMLAttributes('http://www.w3.org/2001/XMLSchema' AS
"xmlns:xsi",
'http://www.oracle.com/Employee.xsd' AS
"xsi:nonamespaceSchemaLocation"),
XMLElement("last_name", last_name), XMLElement("salary", salary) ))
, VERSION '1.0" encoding="utf-8')
AS "T"
FROM (select 1 as employee_id, null as first_name, null as last_name, 100 as salary from dual) e
;
Возвращает ошибку:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00234: namespace prefix "q1" is not declared
Error at line 1
Без двоеточия в теге прекрасно работает, но нужно именно с двоеточием. Без XMLRoot с двоеточием тоже прекрасно работает, но при нулевом значении возвращает <last_name></last_name>, а нужно <last_name/>
Как сделать чтоб в тегах было двоеточие, т.е. "q1:Employee" и при нулевом значении возвращал <last_name/>?