функция make_hash ()? хэш-коды? - PullRequest
1 голос
/ 03 апреля 2012

Мой начальник прислал мне процесс, в котором мне нужно:

  • создать функцию, которая создает временную таблицу
  • получить данные из таблицы
  • используйте функцию для уточнения данных
  • создайте хеш-код для 2 столбцов
  • вставьте все данные из temp в исходные данные
  • удалите таблицу

Я пытался посмотреть, что делает функция make_hash ().Всякий раз, когда я запускаю FUNCTION , в этой строке выдается ошибка, поэтому я предполагаю, что мне нужно сначала объявить ее перед оператором begin в функции create.Или это пользовательская функция?Если да, могу ли я найти схему, в которой находится функция?

Я пытался исследовать книги и онлайн, но не смог ничего найти, даже на веб-сайте PostgreSQL.

--------------------------------------------

ERROR:  function make_hash(character varying) does not exist
LINE 1: UPDATE temp_match_queue_04022012 SET title_hash = make_hash(...
                                                          ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
QUERY:  UPDATE temp_match_queue_04022012 SET title_hash = make_hash(as_title) WHERE as_title IS NOT NULL
CONTEXT:  PL/pgSQL function "metadata_matching_temp" line 30 at SQL statement

********** Error **********

ERROR: function make_hash(character varying) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Context: PL/pgSQL function "metadata_matching_temp" line 30 at SQL statement

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

Nevermind! Функция make_hash была написана psql, поэтому она не работала должным образом. Я использую pgAdmin III, и имя схемы нужно было вызывать вместе с функцией, чтобы она работала. Спасибо большое за помощь, хотя!

1 голос
/ 04 апреля 2012

Как уже упоминалось @Clodoaldo, загляните в pgcrypto (который вы получите, установив его на свой postgres, на debian в postgresql-contrib iirc).

Любая функция, которую вы вызываете, должна быть доступна до раздела BEGIN.Вы можете объединить функции в пакеты, если вам нужно более одного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...