小编Aya*_*aev的帖子

如何在Oracle中将CLOB转换为BLOB?

首先,我将图像的BLOB转换为CLOB,然后将该CLOB转换回BLOB。我看不到重新转换的图像。我怎么解决这个问题?

blob_to_clob函数:

CREATE OR REPLACE FUNCTION blob_to_clob (blob_in IN BLOB) RETURN CLOB AS
  v_clob CLOB;
  v_varchar VARCHAR2(32767);
  v_start PLS_INTEGER := 1;
  v_buffer PLS_INTEGER := 32767;
BEGIN
  DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
  FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
  LOOP
    v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
    DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
    v_start := v_start + v_buffer;
  END LOOP;
  RETURN v_clob;
END blob_to_clob;
Run Code Online (Sandbox Code Playgroud)

clob_to_blob函数:

CREATE OR REPLACE FUNCTION clob_to_blob2(p_clob IN CLOB) RETURN BLOB IS
  v_blob BLOB;
  v_offset NUMBER DEFAULT 1;
  v_amount NUMBER DEFAULT 4096;
  v_offsetwrite NUMBER DEFAULT 1;
  v_amountwrite …
Run Code Online (Sandbox Code Playgroud)

oracle plsql

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

oracle ×1

plsql ×1