2012-04-03 6 views
1

私の上司は、私にプロセスを送っ:make_hash()関数?ハッシュコード?これまで私がする必要があるで

  • は、データを絞り込むために関数を使用して、テーブル
  • から一時テーブルに
  • グラブデータを作成する関数を作る
  • ドロップ
  • 元のデータに一時からすべてのデータを挿入する列の2テーブルをハッシュコードを作成

私はmake_hash()関数が何をしているのか見てきました。 FUNCTIONを実行すると、その行にエラーが表示されるので、create関数のbegin文の前に最初に宣言する必要があると思います。それともユーザー作成の関数ですか?もしそうなら、どのスキーマがどのスキーマにあるのかを見つける方法はありますか?

私は本とオンラインで研究しようとしていましたが、PostgreSQLのWebサイトでも何も見つかりませんでした。 @Clodoaldoがpgcryptoのに見て述べたように

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

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

コードとエラーメッセージを追加してください。 – barsju

+0

更新されました!申し訳ありませんが、以前に投稿したクエリのエラーは、別のものでした。 –

+1

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

答えて

1

(あなたは、debian上で、あなたのpostgresにそれをインストールすることによって得るでしょうそのPostgreSQLの-のcontrib IIRCで)。

あなたが呼び出す関数は、BEGINセクションの前に利用可能でなければなりません。複数の関数が必要な場合は、関数をパッケージにまとめることができます。

+0

私はこれに注意します。感謝のアンジェロ!私はClodoaldoが私に送ったpgcryptoのリンクを詳しく読んでいます。 –

+0

ああ、始まりのセクションの前に機能を利用できるようにすることはどういう意味ですか? –

+0

@ JohnV私はあなたのコードが呼び出される前にそれを意味しました(それは関数そのものではありませんか?そう思っていました)。関数はすでにサーバに知られていなければなりません。 –

1

Nevermind! make_hash関数はpsqlで書かれているため、正しく動作しませんでした。私はpgAdmin IIIを使用しています。スキーマ名は関数とともに呼び出されなければなりませんでした。しかし、助けの束をありがとう!

関連する問題