2

Oracle 11g に次のテーブルがあります。

create table tmp_test_xml (
    name_xml varchar2(4000),
    file_xml xmltype
);

このリンクoracle binding xmltypeで、フィールドに正しく挿入するには、XMLTypeこの挿入として「Xmltypeバインディング」を使用する必要があることを読みました。

insert into tmp_test_xml values (
          'file.xml',
          xmltype(
            '<?xml version="1.0" encoding="UTF-8"?>
            <list_book>
                <book>1</book>
                <book>2</book>
                <book>3</book>
            </list_book>'
          )
);

しかし、この挿入をバインドせずに起動しようとするとXMLType、非常にうまく動作します:

insert into tmp_test_xml values (
          'file.xml',
            '<?xml version="1.0" encoding="UTF-8"?>
            <list_book>
                <book>1</book>
                <book>2</book>
                <book>3</book>
            </list_book>'
);

では、助動詞の使用は拘束力があるかどうか?正しい挿入は何ですか?

2 番目の挿入が機能するのはなぜですか?

4

1 に答える 1

1

オラクルはあなたのために仕事をしようとするので、データ型が列のデータ型と一致しない場合、データを正しいデータ型に変換しようとします。

insert ステートメントに正しい xml 文字列があるため、データベースは xmltype への変換を行いました。

確かではありませんが、XMLTypeバインディングを使用する必要があるという言葉があったとは思えません。
ただし、文字列から XML を作成するときにさらに制御が必要な場合は、これを使用することをお勧めします。XMLType コンストラクタ
を 調べて、アイデアを得てください。

于 2013-10-29T23:14:37.517 に答える