Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niezgodność typów, zła ilość kolumn w procedurze składowanej
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
jamSoft
Modyfikuję czyjś system. Siedzę parę godzin nad full text search i procedurą składowaną. Chcąc dodać kolejnego joina do poniższego zapytania, mam error 'niezgodność typów' i chwilkę dalej: ilość kolumn się nie zgadza, powinna byc 52 a jest np 86. Nie wiem gdzie jest tego deklaracja - ilości kolumn zwracanych.
Zwracany typ funkcji to "setof searched_text_type" (tak jak w oryginale). Nie mogę znaleźć info w sieci na temat tego typu.
  1. DECLARE
  2. row record;
  3. BEGIN
  4. RETURN query
  5. (
  6. SELECT * FROM
  7. (SELECT * FROM table_full_text_search(_language, _query) AS (id integer,table_name character varying,rank real)) AS text
  8. LEFT JOIN table_accomodations_i18n AS mtsacc
  9. ON mtsacc.accomodations_id=text.id AND text.table_name='table_accomodations_i18n' AND mtsacc.language_code=_language
  10. LEFT JOIN table_accomodations_packages_i18n AS mtsaccpac
  11. ON mtsaccpac.package_id=text.id AND text.table_name='table_accomodations_packages_i18n' AND mtsaccpac.language_code=_language
  12.  
  13. ..... TU DALSZE JOIN .....
  14.  
  15. );
  16. END;


Używam pgadmin na PostgreSQL 8.4.3
skowron-line
Jeżeli masz niezgodność typów w JOIN to oznacza to tyle co
  1. JOIN TABLE ON TABLE.string = table2.int

jamSoft
okazało się, że powyzsza składnia wymaga dopasowania ilości zwracanych pól do deklaracji tej funkcji (lub funkcji query - do końca nie wiem).

należało też utworzyć nowy typ danych użytkownika dla tego zwracanego 'obiektu', który niestety nie był od razu widoczny w pgadmin -> zobaczyłem go podczas eksportu bazy do sql
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.