Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
Не могу никак понять как работают эти операторы (((
в коде встретил вот такие вот строки:
extractValue('//return/@errorCode')

Но тут же делаю им:
SELECT extractValue('//return/@errorCode')
  FROM dual;

и он ругается, говорит - неостаточно параметров для функции, и подчёркивает её ((
То же самое с
extract('//word')

в одкументации и правда пречислено больше параметров, но тогда почему первый код работает?
21 апр 17, 09:21    [20421016]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
saxarock
Member

Откуда: ЕКБ
Сообщений: 134
RMagistr2015,

и он ругается, говорит - неостаточно параметров для функции, и подчёркивает её ((

Так он и есть, параметров маловато.
21 апр 17, 09:24    [20421021]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5598
RAbiturient2015
тогда почему первый код работает?


Пруф в студию
21 апр 17, 09:25    [20421024]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5598
Пока что пост больше тянет на "буддистские коаны средствами Oracle"
21 апр 17, 09:27    [20421031]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
env
RAbiturient2015
тогда почему первый код работает?


Пруф в студию


На Прув )))

constructor function Q$P(s_x xmltype) 
return s as result as
		tg q$tg;
function extractValue(s_p varchar2) return varchar2 as
		begin
		return case when sx.existsnode(s_p) > 0 then sx.extract(s_p).getStringVal() 
                            else null 
                          end;
		end;
	begin
		S.rC    := extractValue('//return/@errorCode');
		return;
	end;
21 апр 17, 09:34    [20421052]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
constructor function Q$P(s_x xmltype) 
return s as result as
		tg q$tg;
function extractValue(s_p varchar2) return varchar2 as
		begin
		return case when sx.existsnode(s_p) > 0 then sx.extract(s_p).getStringVal() 
                            else null 
                          end;
		end;
	begin
		S.rC    := extractValue('//return/@errorCode');
		return;
	end;
[/quot]

На сколько я смог дошарить своим мозгом )))
Тут Конструктор типа что ли, в котором перечислена функция, в результате выполнения которой, в поле структуры S.rC записывается выражение extractValue('//return/@errorCode'),
и никакой ошибки не возникает, а как-то то всё работает, непонятно (((
21 апр 17, 09:37    [20421060]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
anvano
Member

Откуда: Москва
Сообщений: 965
То, что у вас объявлена локальная функция с тем же названием

function extractValue(s_p varchar2) return varchar2

не смущает ? :)
21 апр 17, 09:45    [20421092]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
anvano
То, что у вас объявлена локальная функция с тем же названием

function extractValue(s_p varchar2) return varchar2

не смущает ? :)


А чо так можна что ле функции и зарезервированные операторы одниме и теме же названиями называть 0_0 ???
21 апр 17, 09:50    [20421116]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
123йй
Member

Откуда:
Сообщений: 1301
RMagistr2015,

автор
зарезервированные операторы

а где вы увидели его ?
21 апр 17, 09:53    [20421146]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
123йй
RMagistr2015,

автор
зарезервированные операторы

а где вы увидели его ?


а Вот
21 апр 17, 09:58    [20421163]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
123йй
Member

Откуда:
Сообщений: 1301
RMagistr2015,

вижу буквы, а слово сложить не умею ?
The EXTRACTVALUE function
21 апр 17, 10:02    [20421173]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
123йй
RMagistr2015,

вижу буквы, а слово сложить не умею ?
The EXTRACTVALUE function


Как понять это утверждение ? )))))ам же написано - функция EXTRACTVALUE ))) Что не так ? )))
21 апр 17, 11:34    [20421569]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
123йй
Member

Откуда:
Сообщений: 1301
RMagistr2015,
а я что спрашивал 20421146
21 апр 17, 11:39    [20421592]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
123йй
RMagistr2015,
а я что спрашивал 20421146

Прошу прощения, я не понимаю Вас, что именно вы хотите сказать, добрейший ? ))))
21 апр 17, 11:50    [20421651]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
123йй
RMagistr2015,
а я что спрашивал 20421146

Т.е. вы хотите сказать, что это не оператор )))
А правильно ли я понял - это стандартная функция oracle (EXTRACTVALUE) ?
21 апр 17, 12:50    [20421899]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
Бракованный финский угорь
Member

Откуда:
Сообщений: 81
RMagistr2015, у меня тоже Oracle c багом :(

set serveroutput on
declare  
  l_num number;
  
  function xmltype return number
  is
  begin
    return 1;
  end;
  
begin
  l_num := xmltype;
  dbms_output.put_line(l_num);
  dbms_output.put_line(xmltype);
end;



Баг
1
1


Что будем делать? ты в саппорт напишешь? или я?
21 апр 17, 14:24    [20422512]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
Бракованный финский угорь
RMagistr2015, у меня тоже Oracle c багом :(

set serveroutput on
declare  
  l_num number;
  
  function xmltype return number
  is
  begin
    return 1;
  end;
  
begin
  l_num := xmltype;
  dbms_output.put_line(l_num);
  dbms_output.put_line(xmltype);
end;



Баг
1
1


Что будем делать? ты в саппорт напишешь? или я?


Ничоси, акатак? 0_0
21 апр 17, 14:41    [20422592]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
RMagistr2015
Member [заблокирован]

Откуда:
Сообщений: 1389
А почему? 0_0
21 апр 17, 14:53    [20422651]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 8683
RMagistr2015
в одкументации и правда пречислено больше параметров, но тогда почему первый код работает?


A ещё "в одкументации пречислено":

EXTRACTVALUE
Note:
The EXTRACTVALUE function is deprecated. It is still supported for backward compatibility. However, Oracle recommends that you use the XMLTABLE function, or the XMLCAST and XMLQUERY functions instead. See XMLTABLE, XMLCAST, and XMLQUERY for more information.


SY.
21 апр 17, 17:07    [20423288]     Ответить | Цитировать Сообщить модератору
 Re: extract и extractValue  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5598
RMagistr2015
А чо так можна что ле функции и зарезервированные операторы одниме и теме же названиями называть 0_0 ???


Example B-5 Subprogram Name for Name Resolution
21 апр 17, 17:17    [20423310]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить