@DmitrijSA

Как побороть PLS-00801: внутр.ошибка [74806] при использовании XMLELEMENT в функции?

Прошу помощи, есть sql, собирающий xml.
SELECT XmlElement("VERSION", '3.1') from dual;
Оригинальный запрос естественно сложнее. Упростил до одной строки, но ошибка повторяется.
Создаю функцию, которая должна возвращать xml в виде строки
CREATE OR REPLACE FUNCTION IDI_CDA RETURN VARCHAR2 IS
tmpVar VARCHAR2(4000);

BEGIN
   SELECT XmlElement("VERSION", '3.1') INTO tmpVar from dual;
   RETURN tmpVar;
END IDI_CDA;
/

При компиляции получаю ошибку:
PLS-00801: внутр.ошибка [74806]

Понимаю что дело в какой-то мелочи, но не могу понять в какой.
  • Вопрос задан
  • 28 просмотров
Решения вопроса 1
Lorien_Elf
@Lorien_Elf
Keep calm and drop database
Если вызвать ваш код анонимным блоком, то будет ошибка
ORA-00932: Inconsistent datatypes: expected CHAR got ANYDATA

XmlElement возвращает XMLTYPE, его нельзя записать в varchar.
Вот, например: https://www.red-gate.com/simple-talk/databases/ora...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы