[解決済み] 未知語からテキストへの変換関数が見つかりません。
2023-07-13 06:26:52
質問
select文の1つで、以下のエラーが発生しました。
ERROR: failed to find conversion function from unknown to text
********** Error **********
ERROR: failed to find conversion function from unknown to text
SQL state: XX000
これを修正するのは簡単で
cast
を使えば簡単に直りますが、なぜこのようなことが起こったのか、私にはよくわかりません。私は、2 つの単純なステートメントで私の混乱を説明します。
これはOKです。
select 'text'
union all
select 'text';
これはエラーを返します。
with t as (select 'text')
select * from t
union all
select 'text'
簡単に直せると思っています。
with t as (select 'text'::text)
select * from t
union all
select 'text'
なぜ2番目の例では変換に失敗するのでしょうか?私が理解していないロジックがあるのでしょうか、それともPostgreSQLの将来のバージョンで修正されるのでしょうか?
PostgreSQL 9.1.9
PostgreSQL 9.2.4でも同じ動作です( SQLフィドル )
どのように解決するのですか?
Postgresは、コンテキストから型付けされていない定数の型を検出できれば満足です。しかし、任意のコンテキストが不可能な場合、そして、クエリが単純なものよりも少し複雑な場合、この機構は失敗します。これらのルールはあらゆるSELECT句に特有のものであり、より厳しいものもあればそうでないものもあります。もし私が言えるとしたら、古いルーチンはより寛容で(Oracleとの互換性が高く、初心者への悪影響が少ないため)、最新のものはより寛容ではありません(型エラーへの安全性が高いため)。
テキスト定数のような未知のリテラル定数を扱おうとする提案もありましたが、より多くの理由で却下されました。ですから、私はこの分野での大きな変化は期待していません。この問題は通常、合成テストに関連しており、列の型から型を推測するような実際のクエリにはあまり関係しません。
関連
-
PostgreSQLのJSONBのマッチングと交差の問題について
-
Postgresqlの行から列への高度な応用と要約のアイデア
-
PostgreSQLで文字列が対象の文字列を含むかどうかを判断する様々な方法
-
[解決済み] Psql はサーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません、5432エラー?
-
[解決済み] psqlでデータベースを切り替えるには?
-
[解決済み] 'ユーザー "postgres" のパスワード認証に失敗しました'
-
[解決済み] psqlの代替出力フォーマット
-
[解決済み] PostgreSQLの特定のスキーマのデータベースに格納されているすべての関数のリストを取得するにはどうすればよいですか?
-
[解決済み] 拡張機能は存在するが、uuid_generate_v4 が失敗する
-
[解決済み] MacのMavericksにPG gemをインストールできない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Postgresqlの行から列への高度な応用と要約のアイデア
-
Postgresqlのユーザーログインエラーの回数を制限するサンプルコード
-
PostgresqlのデータベーステーブルのデータをExcel形式にエクスポートする方法(推奨)
-
エクセルテーブルのデータをpostgresqlのデータベースにインポートする方法
-
Postgresql データベース timescaledb timescaledb 問題 大容量データテーブルをスーパーテーブルに変換すること
-
Postgresqlの操作でSQL文の実行効率を表示する
-
PostgreSQL] アクティブリンクのあるデータベースを削除する方法
-
[解決済み] Postgresqlで「大文字小文字を区別しない」クエリを作成する方法は?
-
[解決済み] Postgresqlの場合。パスワード付きで psql を実行するスクリプト
-
[解決済み] PostgreSQL公式Dockerイメージの設定ファイルをカスタマイズする方法とは?