Tôi mới ở Oracle và tôi - có thể tầm thường - một vấn đề trong một lựa chọn. (Tôi đang sử dụng Oracle 10g Express Edition).Oracle 10g: Trích xuất dữ liệu (chọn) từ XML (Loại CLOB)
Tôi đã một DB với một CLOB lĩnh vực: mytab.xml Cột này có một XML như thế này:
<?xml version="1.0" encoding="iso-8859-1"?>
<info>
<id> 954 </id>
<idboss> 954 </idboss>
<name> Fausto </name>
<sorname> Anonimo </sorname>
<phone> 040000000 </phone>
<fax> 040000001 </fax>
</info>
Tôi đang cố gắng để làm một 'đơn giản' chọn để có được, ví dụ, giá trị của thẻ 'fax'. Nhưng tôi có một chút vấn đề và tôi không thể hiểu được lỗi của mình. Ví dụ:
select extract(xml, '//fax').getStringVal() from mytab;
ORA-00932: inconsistent datatypes: expected - got
select extract(xmltype(xml), '//fax').getStringVal() from mytab;
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.XMLTYPE", line 254
Tôi cũng đã thử với 'extractvalue', nhưng tôi cũng gặp vấn đề tương tự. nơi tôi sai khi thực hiện việc này?
chưa: ORA-06.502: PL/SQL: số hoặc giá trị lỗi ORA-06.512: tại "SYS.XMLTYPE", dòng 254 ORA-06512: tại dòng 1 – mymark
Xin lỗi .... vâng, câu trả lời của bạn hoạt động hoàn hảo! Trong trường hợp trước tôi đã có một xml null ^^! – mymark
Trong 11g tôi có thể để '.getStringVal()' -part ra. Không có ý tưởng về 10g như tôi không có bất kỳ ở đây. – user272735