Проверка XML переменной для узла с динамическими c пространствами имен PL SQL функция - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь написать функцию для проверки, существует ли указанный c узел (неважно, где) в XML. Каждая переменная XML может иметь до 6 или 7 пространств имен (я думаю? Я их плохо понимаю), но мне нужно только проверить наличие указанной строки.

Я не могу опубликуйте xml, так как это связано с работой, плюс некоторые из них очень длинные, и я все равно не могу преобразовать их в строку, которую нужно вывести.

Я ДУМАЛ, что хотел что-то простое, например

function test_node_existance (
    v_xml_data     xmltype;
) return number as

    node_exists     number;
begin

    select existsnode(v_xml_data, '//ItemNumber') into node_exists from dual;
    dbms_output.put_line('exists: ' || node_exists);

    return node_exists;

    EXCEPTION
        WHEN OTHERS THEN
            dbms_output.put_line('something went wrong');
end;

и получите ответ 1 или 0, но это не работает. Я не знаю (или не волнуюсь), насколько она глубока или каковы ее родители, я просто хочу проверить, существует она или нет. На некоторых входах я могу использовать .getClobValue (), но многие из них я не могу (слишком долго), поэтому у меня нет простого способа преобразовать его в строку, а затем проверить это. Я просто не знаю PL SQL достаточно хорошо знаю, с чего начать искать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...