Извлечение информации из вложенного документа
Назначение
Предоставление символьного значения заданного поля вложенного документа.
Синтаксис
extractvalue (< курсор >[,< поле >]);
< курсор >
::= имя курсорной переменной;
< поле >
::=символьный англоязычный литерал в кодировке ASCII.
Описание
В случае указания параметра < поле >
имя курсорной переменной в аргументе < курсор >
должно ссылаться на позиционированный в заданном курсоре вложенный документ.
Аргумент < поле >
должен задавать имя поля во вложенном документе (если поле, на
котором позиционирован курсор, не является вложенным документом, генерируется исключение).
Если аргумент < поле >
задан, осуществляется поиск первого поля с таким именем во вложенном документе.
Если аргумент < поле >
не задан, возвращается значение текущего поля, на котором позиционирован курсор.
Возвращаемое значение
-
Возвращается значение типа VARCHAR, полученное в результате извлечения значения указанного поля из вложенного документа.
-
Если поле с заданным именем не найдено, курсор не открыт или не позиционирован на поле типа «документ», то генерируется исключение и возвращается NULL-значение.
Пример
create or replace procedure pp1( in b1 varbyte( 4000 ) ) result varchar(1024) declare var c1, c2 cursor; var res varchar(128); var resdt date; code res := ""; open c1 for bson( b1 ); while not outofcursor( c1 ) loop open c2 for c1; while not outofcursor( c2 ) loop res := res + extractvalue( c2 ) + " "; fetch c2 next; endloop; close c2; fetch c1 next; endloop; close c1; return res; end;