Синтаксическая ошибка OracleTABLE в Oracle - PullRequest
1 голос
/ 27 октября 2010

Я создал простой пример таблицы со столбцом xmltype

--set up the able
CREATE TABLE dept (name varchar2(20), employees XMLTYPE);

--insert a test row
INSERT INTO dept VALUES (
            'Sales',
            XMLTYPE.createxml(
            '<?xml version="1.0" encoding="UTF-8"?>
            <People>
              <Person>
                <Name>TED</Name>
                <Age>35</Age>
              </Person>
              <Person>
                <Name>BEN</Name>
                <Age>36</Age>
              </Person>
              <Person>
                <Name>EDI</Name>
                <Age>37</Age>
              </Person>
            </People>'
           )
   );

Я просто хочу сгладить результаты (для использования в другом запросе), используя таблицу xml, чтобы получить

Sales   | Ted | 35
Sales   | BEN | 36
Sales   | EDI | 37

Итак, я написал этот запрос, используя xtable

SELECT dept name, people.Name, people.Age
   FROM dept,
   XMLTABLE('/people'
      PASSING dept.employees
      COLUMNS 
         "Name" varchar2(6) PATH '/People/Person/Name',
         "Age" varchar2(6) PATH '/People/Person/Age'
      people;

Однако я получаю следующую ошибку

"ORA-01780: требуется строковый литерал '

и ide выделяет следующую строку

     "Name" varchar2(6) PATH '/People/Person/Name',

Может кто-нибудь сказать мне, что я скучаю / делаю неправильно

1 Ответ

1 голос
/ 27 октября 2010

РЕДАКТИРОВАТЬ - Запустите это - alter session set cursor_sharing = exact или установите cursor_sharing = точный в файле параметров.

и, возможно, вам не хватает закрывающей скобки после КОЛОННЫ (/ Возраст) -

SELECT dept name, people.Name, people.Age
   FROM dept,
   XMLTABLE('/people'
      PASSING dept.employees
      COLUMNS 
         "Name" varchar2(6) PATH '/People/Person/Name',
         "Age" varchar2(6) PATH '/People/Person/Age' )
      people;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...