2010-10-27 69 views
1

我創建了一個表的一個簡單的例子有XMLType列甲骨文XMLTABLE語法錯誤

--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

編輯 - 運行此 - 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;