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

Oracle PL / SQL:BLOBまたはCLOBが空かどうかを確認します

    Oracle PL / SQLで、BLOBかどうかを確認します またはCLOB 空であるかどうかにかかわらず、dbms_lob.getlength()を使用します 関数またはdbms_lob.compare() 働き。次に例を示します。

    1。 dbms_lob.getlength()関数の使用

    declare
      vblob blob;
      Cursor c_blob
      is
      select content into vblob
          from employee_docs
          where employee_id = 101;
    begin
          
        open c_blob;
        fetch c_blob into vblob;
        close c_blob;
        
        /* if the vblob is empty then the length would be 0 */
        if dbms_lob.getlength(vblob) = 0 then
           raise_application_error(-20001, 'Blob is empty.');
        end if;
        -- do anything with vblob
        
    end;

    2。 dbms_lob.compare()関数の使用

    declare
       vblob blob;
       Cursor c_blob
       is
       select content into vblob
          from employee_docs
          where employee_id = 101;
    begin
          
        open c_blob;
        fetch c_blob into vblob;
        close c_blob;
        
        /* if vblob is equal to an empty_blob, means it is empty */
        if dbms_lob.compare(vblob, empty_blob()) = 0 then
           raise_application_error(-20001, 'Blob is empty.');
        end if;
        -- do anything with vblob
        
    end;

    同様に、空のCLOBをチェックするには 、変数タイプをclobに変更します empty_blob()を置き換えます empty_clob()を使用した関数 上記のPL/SQLコードで機能します。

    関連チュートリアル:

    • PL / SQLでBLOBをファイルとして保存するにはどうすればよいですか?
    • PL / SQLのファイルからBLOBを取得するにはどうすればよいですか?
    • OracleでBLOBからファイルを取得する方法
    • Toadを使用してOracleからBLOBデータを抽出する方法
    • BLOBコンテンツ(PDF、画像)をOracleApexページのリージョンに表示する
    • OracleApexでのCLOBコンテンツの表示
    1. SQLServer2012/2014での隠れたパフォーマンスと管理性の向上

    2. Oracle-クローンテーブル-構造、データ制約、およびすべて

    3. OracleREGEXP_LIKEと単語の境界

    4. Visual C#2008でのtnsnames.oraの解析