1

私のデータベースには整数からテキストへの暗黙のキャストがあるため、「演算子が一意ではない」という問題が発生しています。演算子を削除しようとしています|| (テキスト、anynonarray)成功しない場合、エラーメッセージは

エラー:データベースシステムのSQL状態で必要なため、演算子||(text、anynonarray)を削除できません:2BP01

この演算子を持たない別のデータベースがあるので、どういうわけか可能だと思います。何百ものクエリに明示的なキャストを追加したり、暗黙的なキャストを削除したりすることはできません。このオペレーターのリモーションを強制する方法はありますか?

4

1 に答える 1

0

わかったようです。秘訣は、pg_operatorテーブルから直接削除することです。

delete from pg_operator where oprname = '||' and (oprleft = 25 or oprleft = 2776 ) and oprleft != oprright

これらの演算子を削除したかったので:

オペレーター||( "テキスト"、anynonarray);

オペレーター||(anynonarray、 "text");

何か影響があるかどうかはわかりませんが、今までは問題ないようです。

于 2012-04-26T20:43:20.100 に答える