Функция кросс-таблицы (неизвестно, неизвестно) не существует, но существует - PullRequest
1 голос
/ 19 марта 2019

У меня есть функция кросс-таблицы, которую я успешно использовал много раз в прошлом, но теперь она выводит все данные в конце, а не выводит их в выходную таблицу.Кажется, он не может найти кросс-таблицу.Я исследовал это следующим образом:

  • создать расширение, если не существует tablefunc;--- ответ: расширение "tablefunc" уже существует
  • создать расширение tablefunc со схемой животных;ответ таков: как указано выше
  • выберите count (*) из information_schema.routines, где имя_программы как "crosstab%";---- ответ 6.

Ниже приведен раздел кода функции: BEGIN str: = '"" text,';- пробелы в ячейке A1

ДЛЯ ЗАПИСИ В ВЫБЕРИТЕ ОТЛИЧИЕ col_name FROM an_in_tbl ORDER BY col_name LOOP str: = str ||'"' || rec.col_name || '" text' || ',';END LOOP;

str:= substring(str, 0, length(str));

EXECUTE 'CREATE EXTENSION IF NOT EXISTS tablefunc;
DROP TABLE IF EXISTS an_out_tbl;
CREATE TABLE an_out_tbl AS
SELECT *
FROM crosstab(''select row_name, col_name, row_value from an_in_tbl order by 1'',   
             ''SELECT DISTINCT col_name FROM an_in_tbl ORDER BY 1'')
     AS final_result ('|| str ||')';

select animal_pivot_fn ()

УВЕДОМЛЕНИЕ: расширение "tablefunc" уже существует, пропуская УВЕДОМЛЕНИЕ: таблица "an_out_tbl" не существует, пропуск ERROR: перекрестная таблица функций(неизвестно, неизвестно) не существует ЛИНИЯ 5: ОТ кросс-таблицы ('выберите имя-строки, имя-столбца, значение-строки из ... ^ СОВЕТ: ни одна функция не соответствует данным имени и типу аргумента. Возможно, вам потребуется добавить явное приведение типов. QUERY: CREATEРАСШИРЕНИЕ, ЕСЛИ НЕ СУЩЕСТВУЕТ tablefunc; DROP TABLE, ЕСЛИ СУЩЕСТВУЕТ an_out_tbl; СОЗДАТЬ ТАБЛИЦУ an_out_tbl, КАК ВЫБРАТЬ * ИЗ Кросс-таблицы ('выберите имя-строки, имя-столбца, row_value из порядка_in_tbl на 1',
'ВЫБЕРИТЕ DISTINCT__ПРАВИЛЬНОГО_ПРАВИЛЬНОГО ИМЕНИ) ИЗfinal_result (текст "", текст "CAT", текст "DOG", текст "SNAKE", текст "HORSE", текст "ELEPHANT", текст "MOUSE", "MONKEY" ... и многие другие ... ЗДЕСЬГДЕ ДАННЫЕ ДАМПУТЫВАЮТСЯ, И НЕ СОЗДАЕТСЯ НИКАКИЕ ПОВЕДЕННЫЕ СТОЛЫ.

...