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

Oracle から BLOB の最初の 1kb を読み取る

    BLOB の場合、DBMS_LOB.SUBSTR は RAW を返します。ほとんどの環境では、16 進数でレンダリングされます。DUMP 関数を使用して、他の形式で表示できます。

    select dump(dbms_lob.substr(product_image,10,1),10), 
           dump(dbms_lob.substr(product_image,10,1),16), 
           dump(dbms_lob.substr(product_image,10,1),17) 
    from APEX_DEMO.DEMO_PRODUCT_INFO
    where product_id = 9;
    

    これは、BLOB の最初の 10 バイトを 10 進数 (例:0-255)、16 進数、および文字で返します。後者は、印刷できないガベージを画面にスローする可能性があり、クライアントとデータベースの文字セットが一致しない場合は、何らかの「変換」が行われます。

    UTL_RAW.CAST_TO_VARCHAR2 を使用すると、必要なものが得られる場合があります。

    select utl_raw.cast_to_varchar2(dbms_lob.substr(product_image,10,1)) chr 
    from APEX_DEMO.DEMO_PRODUCT_INFO
    where product_id = 9
    



    1. トリガーpostgresを作成または置換

    2. mysqlselectqueryで2つの日付の間の日付のリストを取得する方法

    3. OracleとのWildFlyjdbc接続

    4. MySqlのSTRING_SPLIT-それを行う方法は?