Base64與BLOB 轉換函式
Base64 介紹
Base64是一種基於64個可列印字元來表示二進位制資料的表示方法。由於2的6次方等於64,所以每6個為一個單元,對應某個可列印字元。三個有24個位元,對應於4個Base64單元,即3個位元組需要用4個可列印字元來表示。它可用來作為電子郵件的傳輸編碼。在Base64中的可列印字元包括字母A-Z、a-z、數字0-9,這樣共有62個字元,此外兩個可列印符號在不同的系統中而不同。一些如的其他編碼方法,和之後的版本使用不同的64字符集來代表6個二進位制數字,但是它們不叫Base64。
Base64常用於在通常處理文字資料的場合,表示、傳輸、儲存一些二進位制資料。包括MIME的email,email via MIME,在XML中儲存複雜資料.
Base64轉BLOB
CREATE OR REPLACE FUNCTION base64encode(p_blob IN BLOB)
RETURN CLOB
-- -----------------------------------------------------------------------------------
-- File Name :
-- Author : Tim Hall
-- Description : Encodes a BLOB into a Base64 CLOB.
-- Last Modified: 09/11/2011
-- -----------------------------------------------------------------------------------
IS
l_clob CLOB;
l_step PLS_INTEGER := 12000; -- make sure you set a multiple of 3 not higher than 24573
BEGIN
FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_blob) - 1 )/l_step) LOOP
l_clob := l_clob || UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(DBMS_LOB.substr(p_blob, l_step, i * l_step + 1)));
END LOOP;
RETURN l_clob;
END;
/
BLOB轉base64
CREATE OR REPLACE FUNCTION base64decode(p_clob CLOB)
RETURN BLOB
-- -----------------------------------------------------------------------------------
-- File Name :
-- Author : Tim Hall
-- Description : Decodes a Base64 CLOB into a BLOB
-- Last Modified: 09/11/2011
-- -----------------------------------------------------------------------------------
IS
l_blob BLOB;
l_raw RAW(32767);
l_amt NUMBER := 7700;
l_offset NUMBER := 1;
l_temp VARCHAR2(32767);
BEGIN
BEGIN
DBMS_LOB.createtemporary (l_blob, FALSE, DBMS_LOB.CALL);
LOOP
DBMS_LOB.read(p_clob, l_amt, l_offset, l_temp);
l_offset := l_offset + l_amt;
l_raw := UTL_ENCODE.base64_decode(UTL_RAW.cast_to_raw(l_temp));
DBMS_LOB.append (l_blob, TO_BLOB(l_raw));
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
RETURN l_blob;
END;
/
轉自於:oracle-base
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-1147139/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- javascript 將URL轉換為Blob、base64JavaScript
- Oracle blob型別資料轉換成 base64編碼Oracle型別
- Mysql BLOB、BLOB與TEXT區別及效能影響、將BLOB型別轉換成VARCHAR型別MySql型別
- 8.轉換文字函式函式
- Oracle OCP(05):轉換函式Oracle函式
- Blob實現與File DataURL canvas相互轉換示例詳解Canvas
- PDF 和 base64 的轉換
- 初探JavaScript PDF blob轉換為Word docx方法JavaScript
- GaussDB: db2->gaussdb 函式轉換DB2函式
- python函式每日一講 - float函式型別轉換詳解Python函式型別
- 獲取剪下板的圖片 -> File -> Base64 -> Blob -> url -> Image,以及它們之間的各種相互轉換
- base64編碼原理和函式函式
- 前端圖片canvas,file,blob,DataURL等格式轉換前端Canvas
- sql server 資料型別轉換函式SQLServer資料型別函式
- 函式匹配和實參型別轉換函式型別
- C++型別轉換建構函式C++型別函式
- 將數值轉換為字串的函式字串函式
- 【複變函式與積分變換】02. 解析函式函式
- Android 中 Base64 轉換成 圖片Android
- 字串與數字轉換函式 | 全方位認識 sys 系統庫字串函式
- 建構函式定義的隱式型別轉換函式型別
- 複變函式與積分變換函式
- base64 , blob,url圖片的處理方式
- 將你的Gradle依賴轉換為函式Gradle函式
- js顯式轉換和隱式轉換JS
- 小程式把圖片轉換成base64
- [Uniapp] APP拍照後轉換Base64上傳APP
- 2018-06-15: Java 將網路圖片SRC轉換為Base64, Base64轉 MultipartFileJava
- Kubernetes 與 OpenYurt 無縫轉換(命令式)
- 神經網路啟用函式=生物轉換器?神經網路函式
- EXCEL中日期格式轉換為文字格式-函式TEXTExcel函式
- scala簡明教程:偏函式、高階函式、Future非同步程式設計、隱式轉換函式非同步程式設計
- Django筆記二十四之資料庫函式之比較和轉換函式Django筆記資料庫函式
- 【翻譯】影像到Base64字串轉換字串
- oid轉blob問題
- c++中幾種常見的型別轉換。int與string的轉換,float與string的轉換以及string和long型別之間的相互轉換。to_string函式的實現和應用。C++型別函式
- 前端預覽圖片的兩種方式:轉Base64預覽或轉本地blob的URL預覽,並再重新轉回去前端
- java隱式轉換Java
- javascript 隱式轉換JavaScript