close

 

 

 

 

 

 

 

Oracle 資料庫 QRCODE Package 功能說明

(Java Version 0.9)

有購買需求請連繫我!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

環境需求

 

 

資料庫版本 : 10.2.x , 11.x, 11.2.0.2(+), 12.x

註:11.2.01 JDBC無法接受空BLOB傳入.

 

另外,亦開發非DB版本給form /report 10g+使用的qrcode版本,有需求請與我聯繫.

 

部署Schema 必要給予資料庫權限

JAVADEBUGPRIV

JAVAIDPRIV

JAVASYSPRIV

JAVAUSERPRIV

JAVA_DEPLOY

GRANT SELECT ON SYS.DBA_DIRECTORIES TO " Schema " WITH GRANT OPTION;

 

 

XXQRCODE_PKG功能說明

 

/*register_file_dir : 註冊QR影像檔DB儲存之資料夾到公用變數理,方便後續不需重複呼叫

p_DIRECTORY 圖片檔資料庫DIRECTORY

*/

PROCEDURE register_file_dir(p_DIRECTORY IN VARCHAR2);

 

/*register_logo_file : 註冊QR logo影像檔 DB儲存之資料夾及logo 檔案名稱到公用變數理,方便後續不需重複呼叫

p_DIRECTORY 圖片檔資料庫DIRECTORY

*/

PROCEDURE register_logo_file(p_DIRECTORY IN VARCHAR2,P_FILE_NAME IN VARCHAR2);

 

/*encodeQRFILE : 產生qrcode 圖片檔於資料庫對應路徑 ,回傳 0 成功, 1 失敗

p_CONTENT 轉碼文字

p_DIRECTORY 圖片檔資料庫DIRECTORY

p_FILENAME 圖片檔名稱

P_IMAGE_TYPE 圖片格式,合法範圍 png,jpg(預設),bmp ,注意d2k6i 不支援png格式

P_IMAGE_SIZE 圖片大小,合法範圍 1-40, 預設7 (139*139 pixel) 3.68 CM

P_ERRCORRECT 排錯率,合法範圍 L(7%)M(15%)Q(25%)H(30%) ,預設M(15%)

P_LOGO_DIRECTORY LOGO圖片檔資料庫DIRECTORY

p_LOGO_FILENAME LOGO圖片檔名稱

*/

FUNCTION encodeQRFILE(

p_CONTENT IN VARCHAR2,

p_DIRECTORY IN VARCHAR2 ,

p_FILENAME IN VARCHAR2 ,

P_IMAGE_TYPE IN VARCHAR2 DEFAULT 'jpg',

P_IMAGE_SIZE IN PLS_INTEGER DEFAULT 7,

P_ERRCORRECT IN varchar2 DEFAULT 'M',

P_LOGO_DIRECTORY IN VARCHAR2 DEFAULT NULL,

p_LOGO_FILENAME IN VARCHAR2 DEFAULT NULL ) RETURN PLS_INTEGER;

 

 

/*encodeQRBLOB : 產生qrcode 圖片檔回傳BLOB , 失敗回傳空BLOB

p_CONTENT 轉碼文字

P_IMAGE_TYPE 圖片格式,合法範圍 png,jpg(預設),bmp ,注意d2k6i不支援png格式

P_IMAGE_SIZE 圖片大小,合法範圍 1-40, 預設7 (139*139 pixel) 3.68 CM

P_ERRCORRECT 排錯率,合法範圍 L(7%)M(15%)Q(25%)H(30%) ,預設M(15%)

P_LOGO_DIRECTORY LOGO圖片檔資料庫DIRECTORY

p_LOGO_FILENAME LOGO圖片檔名稱

*/

FUNCTION encodeQRBLOB(

p_CONTENT IN VARCHAR2,

P_IMAGE_TYPE IN VARCHAR2 DEFAULT 'jpg',

P_IMAGE_SIZE IN PLS_INTEGER DEFAULT 7,

P_ERRCORRECT IN varchar2 DEFAULT 'M',

P_LOGO_DIRECTORY IN VARCHAR2 DEFAULT NULL,

p_LOGO_FILENAME IN VARCHAR2 DEFAULT NULL ) RETURN BLOB;

 

/*decodeQRFILE : 解析qrcode 資料庫對應路徑圖片 ,回傳解析後文字 , 注意如含logo圖片, 但圖片產生時大小或容錯率設置不當,會造成無法讀取

p_DIRECTORY 圖片檔資料庫DIRECTORY

p_FILENAME 圖片檔名稱

*/

FUNCTION decodeQRFILE(

p_DIRECTORY IN VARCHAR2 DEFAULT NULL,

p_FILENAME IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2;

 

/*decodeQRBLOB : 解析qrcode BLOB物件,回傳解析後文字 , 注意如含logo圖片, 但圖片產生時大小或容錯率設置不當,會造成無法讀取

p_BLOB 圖片檔BLOB 物件

*/

FUNCTION decodeQRBLOB(

p_BLOB IN BLOB) RETURN VARCHAR2;

 

 

 

使用範例

 

SQL 呼叫

select XXQRCODE_PKG.encodeQRBLOB('我是QRCODE檔案') IMAGE from dual

QR圖片預覽

 

 

SQL 含LOGO呼叫 ,變更大小

select XXQRCODE_PKG.encodeQRBLOB(p_CONTENT=>'我是QRCODE檔案',P_IMAGE_SIZE=>14,P_LOGO_DIRECTORY=>'DATA_PUMP_DIR',p_LOGO_FILENAME=>'nolem.gif') image from dual

QR圖片預覽

 

 

QR圖片存入對應table blob 使用Report 6i c/s 直接取出blob執行結果,PS: 因6i 不支援sql 直接回傳lob 物件,只可存入table欄位中取出,另外方式可採路徑直接連接對應圖片,在本文檔後續檔案產生連結範疇.

 

資料庫資料夾檔案產生模式,單獨指定資料夾模式

select XXQRCODE_PKG.encodeQRFILE(p_CONTENT=>'我是QRCODE檔案',p_DIRECTORY=>'DATA_PUMP_DIR',p_FILENAME=>'testfile.jpg') from dual

 

檔案產生位置確認

檔案預覽

Report6i c/s 模式,建立CLINET 單機磁碟連接資料庫DATA_PUMP_DIR磁碟

 

 

 

Report 6i 連接路徑圖片

 

 

 

 

 

 

讀取QRCODE

 

 

檔案讀取模式範例

select XXQRCODE_PKG.decodeQRFILE(p_DIRECTORY=>'DATA_PUMP_DIR',p_FILENAME=>'testfile.jpg') decodecontent from dual

 

 

結果

 

 

BLOB讀取模示範例

select PHOTO_NAME, XXQRCODE_PKG.decodeQRBLOB(PHOTO_RAW) QRCODE FROM MY_EMP_PHOTO

 

arrow
arrow
    文章標籤
    QRCODE Oracle
    全站熱搜

    Nolem 發表在 痞客邦 留言(4) 人氣()