(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Функция EVALUATE в Oracle BIEE

Источник: ashmakov
Антон Шмаков

Автор: Антон Шмаков

В Oracle Business Intelligence Enterprise Edition не так давно появилась замечательная возможность вызывать родные функции СУБД. Это можно сделать с помощью следующих функций:

  • EVALUATE - позволяет вызывать любую скалярную функцию (возвращающую одно значение) СУБД;
  • EVALUATE_AGGR - позволяет вызывать агрегирующие функции СУБД;
  • EVALUATE_PREDICATE - позволяет вызывать функции СУБД, которые возвращают булевы значения.

Синтаксис этих функций следующий:

  • EVALUATE("[schema].[package].[function](%1,%2,...)" as TYPE,param1,param2,...)
  • EVALUATE_AGGR("[schema].[package].[function](%1,%2,...)" as TYPE,param1,param2,...)
  • EVALUATE_PREDICATE("[schema].[package].[function](%1,%2,...)",param1,param2,...)

В документации предлагают следующие примеры использования этих функций:

  • SELECT e.lastname,sales.revenue,EVALUATE("dense_rank() over(order by %1 )",sales.revenue) FROM sales s, employee e;
  • SELECT year.year, sales.qtysold, EVALUATE_AGGR("sum(%1)", sales.quantity) From SnowFlakeSales;
  • SELECT year, Sales as DOUBLE,CAST(EVALUATE("OLAP_EXPRESSION(%1,""LAG(units_cube_sales, 1, time, time LEVELREL time_levelrel)"")", OLAP_CALC) AS DOUBLE) FROM "Global".Time, "Global"."Facts - sales" WHERE EVALUATE_PREDICATE("OLAP_CONDITION(%1, ""LIMIT time KEEP """"1"""", """"2"""", """"3"""", """"4"""" "") =1", OLAP_CALC) order by year;

Следует отдельно отметить, что никто не запрещает использовать свои собственные функции. Приведу ниже пример.

Пример.

Создаем пакет с одной функцией в некоторой схеме:

create or replace package my_pkg is
function my_func(v in varchar2,n in number,d in date) return varchar2;
end;
/
create or replace package body my_pkg is
function my_func(v varchar2,n number,d date) return varchar2 is
begin
return "varchar2 = " // v // " number = " // to_char(n) // " date =" // to_char(d,"dd mon yyyy");
end;
end;
/

Открываем Answers, создаем отчет и смотрим результаты.

Итак, подведем итоги:

  • В функциях EVALUATE можно использовать свои собственные функции;
  • В качестве параметров для функции можно константы следующих типов: текст, число, дата;
  • В качестве параметров для функции можно использовать колонки, переменные;
  • Результат работы функции можно преобразовать к разным типам;

Если возникает ошибка " Union of non-compatible types " значит вы неправильно передаете параметры. Возможные решения проблемы:

  • Текстовый параметр или дата должны быть указаны в одинарных кавычек;
  • Числовой параметр должен быть указан либо в одинарных кавычках (СУБД должна уметь корректно преобразовать его в число), либо без кавычек, но тогда десятичным разделителем должны быть точка (необходимо установить в СУБД для сессии соответствующий параметр или использовать формат по умолчанию);
  • Даты должны быть указаны в формате, который СУБД может корректно распознать (необходимо установить в СУБД для сессии соответствующий параметр или использовать формат по умолчанию).

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 30.07.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Processor License
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus License
SAP Crystal Reports 2008 INTL WIN NUL License
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Новые материалы
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100