The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Тематический каталог: Bug correction in Function code"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [Проследить за развитием треда]

"Тематический каталог: Bug correction in Function code"  
Сообщение от auto_topic on 23-Ноя-07, 17:48 
Обсуждение статьи тематического каталога: Bug correction in Function code

Ссылка на текст статьи: http://www.opennet.ru/base/dev/pivot_table.txt.html

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Bug correction in Function code"  
Сообщение от wasuaje email on 23-Ноя-07, 17:48 
In its actual code returns an error in line 20
here the code corrected a probed:
CREATE OR REPLACE FUNCTION
create_pivot_report(TEXT,TEXT,TEXT,TEXT,TEXT,TEXT) RETURNS INTEGER AS '
DECLARE
pg_views_rtype pg_views%ROWTYPE;
vname_param    ALIAS FOR $1;
pivot_column   ALIAS FOR $2;
select_column  ALIAS FOR $3;
pivot_table    ALIAS FOR $4;
aggregate_func ALIAS FOR $5;
aggr_column    ALIAS FOR $6;
pivot_record   RECORD;
create_view    TEXT;
BEGIN

SELECT INTO pg_views_rtype * FROM pg_views WHERE viewname = vname_param;
IF FOUND THEN
  EXECUTE ''DROP VIEW '' || quote_ident(vname_param) ;
END IF;
create_view :=
''CREATE VIEW '' || quote_ident(vname_param) ||
'' AS SELECT '' || quote_ident(select_column) ;
FOR pivot_record IN
EXECUTE ''SELECT DISTINCT CAST(''
        || quote_ident(pivot_column)
        || '' AS TEXT) AS col1 FROM ''
        || quote_ident(pivot_table)
    || '' order by 1''
LOOP
  create_view :=
   create_view || '','' || aggregate_func ||
   ''(CASE '' || quote_ident(pivot_column) ||
   '' WHEN '' || quote_literal(pivot_record.col1) ||
   '' THEN '' || quote_ident(aggr_column) ||
   '' ELSE 0 END) AS "'' || pivot_record.col1 || ''"'' ;
END LOOP;
create_view :=
create_view || '','' || aggregate_func ||
''('' || quote_ident(aggr_column) || '') AS "'' || aggregate_func ||
'' of '' || aggr_column || ''" FROM '' || quote_ident(pivot_table) ||
'' GROUP BY '' || quote_ident(select_column);
EXECUTE create_view ;

RETURN 0;
END;
' LANGUAGE 'plpgsql' ;

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру