考慮下面的查詢錯誤:的PostgreSQL 9.1.3:「經營者不是唯一的」問題
db=# select 'test' || 123;
ERROR: operator is not unique: unknown || integer
LINE 1: select 'test' || 123;
^
HINT: Could not choose a best candidate operator. You might need to add explicit type casts.
db=# select 'test'::text || 123;
ERROR: operator is not unique: text || integer
LINE 1: select 'test'::text || 123;
^
HINT: Could not choose a best candidate operator. You might need to add explicit type casts.
現在,在pgAdmin的,在爲DB類型轉換我的節點,我已經定義了其中13個,其中一個是:
CREATE CAST (integer AS text)
WITH FUNCTION text(integer)
AS IMPLICIT;
當我們去PG 9.1,我重新隱式轉換後的method described here。
我想知道如果我確實已經創建重複的運營商,如果是這樣,我應該如何去清理它呢?如果沒有,爲什麼我會得到這種錯誤?這似乎是一個相當直接的演員。
謝謝!
選擇 '測試' || 123;是不正確的,你試圖連接文本和整數,選擇「測試」::文本|| 123;是不正確的,你試圖將文本轉換爲文本,然後用整數連接,你需要做的是:select'test'|| 123 ::文本;這工作! – ComputerSaysNo 2012-03-05 02:02:03
這是一個明確的最佳實踐。 – Kuberchaun 2012-03-05 16:31:28