Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Произвольное наименование тэга в XMLTABLE / 3 сообщений из 3, страница 1 из 1
25.10.2021, 09:31
    #40106539
ultrasonic7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произвольное наименование тэга в XMLTABLE
Добрый день! Как можно передать произвольное наименование тэга через входной параметр iTagName в функцию XMLTABLE? Может, есть какие-то способы?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  PROCEDURE PARSE_DATA (iXMLContent  IN XMLTYPE
                      , iTagName     IN VARCHAR2
                      , oResult      OUT XMLTYPE) IS
  BEGIN
    SELECT SOME_DATA 
      INTO oResult 
      FROM  XMLTABLE ('someRootTags'                
                PASSING iXMLContent
                COLUMNS SOME_DATA    XMLTYPE    PATH iTagName);
  EXCEPTION WHEN NO_DATA_FOUND THEN
    oResult := NULL; 
  END;



Компилятор не хочет компилить такую процедуру, выдаёт ошибку ORA-01780:
компилятор[Warning] ORA-24344: success with compilation error

2074/62 PL/SQL: ORA-01780: string literal required

2070/5 PL/SQL: SQL Statement ignored
(1: 0): Warning: compiled but with compilation errors



Версия OracleOracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
...
Рейтинг: 0 / 0
25.10.2021, 12:57
    #40106618
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произвольное наименование тэга в XMLTABLE
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
CREATE OR REPLACE
  PROCEDURE PARSE_DATA(
                       iXMLContent  IN XMLTYPE,
                       iTagName     IN VARCHAR2,
                       oResult      OUT XMLTYPE
                      )
    IS
        v_path VARCHAR2(100) := 'someRootTags/' || iTagName;
    BEGIN
        SELECT SOME_DATA
          INTO oResult
          FROM  XMLTABLE(
                         v_path
                         PASSING iXMLContent
                         COLUMNS
                           SOME_DATA XMLTYPE PATH '.'
                       );
      EXCEPTION
        WHEN NO_DATA_FOUND
          THEN
            oResult := NULL;
END;
/

Procedure created.

SQL>



SY.
...
Рейтинг: 0 / 0
25.10.2021, 15:02
    #40106690
ultrasonic7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Произвольное наименование тэга в XMLTABLE
SY,

Спасибо!
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Произвольное наименование тэга в XMLTABLE / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]