GETSTRINGVAL メンバ関数は、ドキュメントを文字列として返します。これは、シリアライズされたXML表現を含む文字列を返すか、テキストノードの場合はそのテキスト自体を返します。XMLドキュメントが VARCHAR2 の最大サイズ(4000)を超える場合、実行時にエラーが発生します。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
MEMBER FUNCTION getStringVal()
RETURN VARCHAR2;
例
以下の例では、a1 と a2 はXMLType変数であり、c1 は CLOB 変数、c2 は VARCHAR2 変数、b は VARCHAR2 変数で、その内容は有効なXMLテキスト <?xml version="1.0" encoding="ISO-8859-1"?><note><heading>Reminder</heading></note> です。
a1 と a2 はそれぞれ CREATEXML と XMLTYPE コンストラクタを使用してXMLTypeデータを生成します。a1 と a2 は GETCLOBVAL() または GETSTRINGVAL() 関数を使用して変換した後、対応する型の変数に代入できます。
obclient> DECLARE
a1 XMLType;
a2 XMLType;
b VARCHAR2(200):='<?xml version="1.0" encoding="ISO-8859-1"?><note><heading>Reminder</heading></note>';
c1 CLOB;
c2 VARCHAR2(200);
BEGIN
a1:=XMLType.CREATEXML(b);
a2:=XMLType(b);
c1:=a1.GETCLOBVAL();
c2:=a2.GETSTRINGVAL();
DBMS_OUTPUT.PUT_LINE('c1: ' || c1);
DBMS_OUTPUT.PUT_LINE('c2: ' || c2);
END;
/
Query OK, 0 rows affected