sql >> データベース >  >> RDS >> PostgreSQL

16進数のテキスト文字列をbyteaとしてPostgreSQLに挿入する

    decodeを使用して、16進文字列をbyteaに変換できます。 関数(「エンコード」とは、バイナリ値をテキスト値にエンコードすることを意味します)。例:

    select decode('DEADBEEF', 'hex');
          decode      
    ------------------
     \336\255\276\357
    

    これは、9.0のデフォルト出力でより理解しやすくなります:

       decode   
    ------------
     \xdeadbeef
    

    E'\xDE\xAD\xBE\xEF'とだけ言えない理由 これは、byteaではなくテキスト値を作成することを目的としているため、Postgresqlはそれをクライアントエンコーディングからデータベースエンコーディングに変換しようとします。このようにbyteaエスケープ形式を記述できますが、円記号を2倍にする必要があります:E'\\336\\255\\276\\357'::bytea 。 bytea形式が変更されている理由がわかると思います。decode()の私見 関数は、いくらかのオーバーヘッドが含まれていても、入力を書き込むための合理的な方法です。



    1. アクセスアプリをWebベースのアプリに変える理由

    2. cx_Oracleを使用して変数をテーブル名にバインドする

    3. 最後に挿入された行IDを取得します(SQLステートメントを使用)

    4. T-SQLで数値をコンマでフォーマットするにはどうすればよいですか?