次のクエリエラーを考えてみましょう:の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;
私たちは、私がmethod described here次の暗黙的なキャストを再作成PG 9.1、に行ったとき。
私は実際に重複した演算子を作成したのかどうか、もしそうなら、どうすればそれを掃除するべきなのでしょうか?そうでない場合は、なぜこのようなエラーが発生しますか?それはむしろまっすぐ前方のキャストのようです。
ありがとうございます!
'test'を選択してください。 123;テキストと整数を連結しようとしていますが、 'test'を選択してください:: text || 123; is not correct、テキストをテキストにキャストしてから整数で連結しようとしていますが、あなたがする必要があるのは次のようなものです:select 'test' || 123 :: text;これは動作します! – ComputerSaysNo
明示するのは常にベストプラクティスです。 – Kuberchaun