2012-04-03 96 views
1

我的老闆給我發了一個過程,而我需要:make_hash()函數?哈希碼?

  • 做出從表
  • 創建臨時表
  • 抓取數據的功能,使用功能完善的數據
  • 創建的哈希碼的列的2
  • 從臨時的所有數據插入到原始數據
  • 刪除表

我一直在試圖看看什麼make_hash()函數。每當我運行功能它給了我該線路上的錯誤,所以我猜我需要先聲明之前,在創建函數的開始聲明。或者它是用戶創建的功能?如果是這樣,我有沒有辦法找到函數所在的模式?

我一直在努力研究的書籍和網上,但我無法找到任何東西,甚至在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

添加您的代碼和錯誤信息。 – barsju 2012-04-03 16:45:50

+0

已更新!對不起,但我之前發佈的查詢錯誤是另一個。 – 2012-04-03 17:16:30

+1

研究[pgcrypto](http://www.postgresql.org/docs/9.1/interactive/pgcrypto.html) – 2012-04-03 18:03:37

回答

1

由於@Clodoaldo提到直視pgcrypto(你會被它安裝到你的Postgres得到,在Debian的PostgreSQL中-contrib請IIRC)。

調用任何功能必須是可用之前BEGIN部分。如果您需要多個功能,可以將功能組合到一起。

+0

我會注意到這一點。謝謝Angelo!我會閱讀更多關於Clodoaldo發送給我的pgcrypto鏈接。 – 2012-04-03 21:20:10

+0

啊,你在開始部分之前有什麼功能? – 2012-04-03 21:21:39

+0

@JohnV我的意思是,在你的代碼被調用之前(它不是一個函數本身嗎?我認爲是這樣),該函數必須已經被服務器知道。 – 2012-04-03 21:23:32

1

沒關係! make_hash函數被寫入psql,這就是爲什麼它不能正常工作。我正在使用pgAdmin III,並且模式名稱必須與函數一起調用才能工作。非常感謝幫助!