2012-04-03 4 views
1

Mein Chef hat mir ein Prozess, bei dem ich brauche:make_hash() Funktion? Hash-Codes?

  • eine Funktion machen, die eine temporäre Tabelle
  • greifen Daten aus einer Tabelle
  • die Daten
  • verwenden, um eine Funktion zu verfeinern schafft
  • einen Hash-Code für 2 der Spalten der Originaldaten
  • fallen die Tabelle
  • einzufügen, alle Daten aus dem temporären erstellen

Ich habe versucht zu sehen, was die make_hash() Funktion tut. Immer wenn ich die FUNCTION starte, gibt es mir einen Fehler in dieser Zeile, also rate ich, dass ich es zuerst vor der Begin-Anweisung in der create-Funktion deklarieren muss. Oder ist es eine vom Benutzer erstellte Funktion? Wenn ja, kann ich herausfinden, in welchem ​​Schema sich die Funktion befindet?

Ich habe versucht, in den Büchern und online zu recherchieren, aber ich konnte nichts finden, nicht einmal auf der PostgreSQL-Website.

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

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

Fügen Sie Ihren Code und die Fehlermeldung hinzu. – barsju

+0

Aktualisiert! Entschuldigung, aber der Abfragefehler, den ich vorher gepostet habe, war ein anderer. –

+1

Schauen Sie in [pgcrypto] (http://www.postgresql.org/docs/9.1/interactive/pgcrypto.html) –

Antwort

1

Wie @Clodoaldo Blick in pgcrypto erwähnt (die Sie durch die Installation, um sie Ihr Postgres, auf debian seine in postgresql-contrib iirc bekommen würden).

Jede aufgerufene Funktion muss vor dem BEGIN-Abschnitt verfügbar sein. Sie können Funktionen zu Paketen kombinieren, wenn Sie mehrere benötigen.

+0

Ich nehme das zur Kenntnis. Danke Angelo! Ich werde mehr in dem pgcrypto-Link lesen, den Clodoaldo mir geschickt hat. –

+0

Ah, und was meinst du mit der Funktion vor dem Beginn Abschnitt ?? –

+0

@JohnV Ich meinte das bevor dein Code aufgerufen wird (ist das nicht eine Funktion selbst? Dachte ich mir.) Muss die Funktion dem Server schon bekannt sein. –

1

Niemals! Die make_hash-Funktion wurde psql geschrieben, weshalb sie nicht richtig funktionierte. Ich benutze pgAdmin III und der Schemaname musste zusammen mit der Funktion aufgerufen werden, damit er funktioniert. Vielen Dank für die Hilfe!

Verwandte Themen