久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么創建UNWRAP函數

187次閱讀
沒有評論

共計 4960 個字符,預計需要花費 13 分鐘才能閱讀完成。

本篇內容主要講解“怎么創建 UNWRAP 函數”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“怎么創建 UNWRAP 函數”吧!

創建 UNWRAP 函數

CREATE OR REPLACE PACKAGE AMOSUNWRAPPER IS
 FUNCTION DEFLATE(SRC IN VARCHAR2) RETURN RAW;
 FUNCTION DEFLATE(SRC IN VARCHAR2, QUALITY IN NUMBER) RETURN RAW;
 FUNCTION INFLATE(SRC IN RAW) RETURN VARCHAR2;
CREATE OR REPLACE PACKAGE BODY AMOSUNWRAPPER IS
 FUNCTION DEFLATE(SRC IN VARCHAR2) RETURN RAW IS
 BEGIN
 RETURN DEFLATE(SRC, 6);
 END;
 FUNCTION DEFLATE(SRC IN VARCHAR2, QUALITY IN NUMBER) RETURN RAW AS
 LANGUAGE JAVA NAME  UNWRAPPER.Deflate( java.lang.String, int ) return byte[] 
 FUNCTION INFLATE(SRC IN RAW) RETURN VARCHAR2 AS
 LANGUAGE JAVA NAME  UNWRAPPER.Inflate( byte[] ) return java.lang.String 
/* Formatted on2011/8/18 13:00:16 (QP5 v5.163.1008.3004) */
CREATE OR REPLACE JAVA SOURCE NAMED UNWRAPPER
import java.io.*;
import java.util.zip.*;
public class UNWRAPPER { public static String Inflate(byte[] src) {
 try { ByteArrayInputStream bis = new ByteArrayInputStream(src);
 InflaterInputStream iis = new InflaterInputStream(bis);
 StringBuffer sb = new StringBuffer();
 for(int c = iis.read(); c != -1; c = iis.read()) { sb.append((char)c);
 }
 return sb.toString();
 } catch (Exception e) { }
 return null;
 }
 
 public static byte[] Deflate(String src, int quality) {
 try { byte[] tmp = new byte[src.length() + 100];
 Deflater defl = new Deflater(quality);
 defl.setInput(src.getBytes( UTF-8));
 defl.finish();
 int cnt = defl.deflate(tmp);
 byte[] res = new byte[cnt ];
 for(int i = 0; i   cnt; i++)
 res = tmp;
 return res;
 } catch (Exception e) { }
 return null;
 }
ALTER JAVA SOURCE UNWRAPPER COMPILE
/* Formatted on2011/8/18 13:02:57 (QP5 v5.163.1008.3004) */
-- 為了輸出中文,要修改 java 過程
CREATE OR REPLACE JAVA SOURCE NAMED UNWRAPPER
import java.io.*;
import java.util.zip.*;
 
public class UNWRAPPER { public static String Inflate(byte[] src) {
 try { ByteArrayInputStream bis = new ByteArrayInputStream( src );
 InflaterInputStream iis = new InflaterInputStream( bis );
 StringBuffer sb = new StringBuffer();
 for(int c = iis.read(); c != -1; c = iis.read()) { sb.append((char) c);
 }
 
 String hello = new String(sb.toString().getBytes(iso8859-1),  GBK 
 return hello;
 } catch(Exception e) { }
 return null;
 }
 
 public static byte[] Deflate(String src, int quality) {
 try { byte[] tmp = new byte[src.length() + 100];
 Deflater defl = new Deflater(quality);
 defl.setInput(src.getBytes( UTF-8));
 defl.finish();
 int cnt = defl.deflate(tmp);
 byte[] res = new byte[cnt];
 for(int i = 0; i   cnt; i++)
 res = tmp;
 return res;
 } catch (Exception e) { }
 return null;
 }
ALTER JAVA SOURCE UNWRAPPER COMPILE
/* Formatted on2011/8/18 13:00:41 (QP5 v5.163.1008.3004) */
CREATE OR REPLACE PROCEDURE UNWRAP(O IN VARCHAR,
 N IN VARCHAR,
 T IN VARCHAR) AS
 VWRAPPEDTEXT VARCHAR2(32767);
 VTRIMTEXT VARCHAR2(32767);
 VCHAR VARCHAR2(2);
 VREPCHAR VARCHAR2(2);
 VLZINFLATESTR VARCHAR2(32767);
 NLEN INTEGER;
 NLOOP INTEGER;
 NCNT INTEGER;
 CODE VARCHAR(512);
BEGIN
 CODE :=  3D6585B318DBE287F152AB634BB5A05F7D687B9B24C228678ADEA4261E03EB176F343E7A3FD2A96A0FE935561FB14D1078D975F6BC4104816106F9ADD6D5297E869E79E505BA84CC6E278EB05DA8F39FD0A271B858DD2C38994C480755E4538C46B62DA5AF322240DC50C3A1258B9C16605CCFFD0C981CD4376D3C3A30E86C3147F533DA43C8E35E1994ECE6A39514E09D64FA5915C52FCABB0BDFF297BF0A76B449445A1DF0009621807F1A82394FC1A7D70DD1D8FF139370EE5BEFBE09B97772E7B254B72AC7739066200E51EDF87C8F2EF412C62B83CDACCB3BC44EC069366202AE88FCAA4208A64557D39ABDE1238D924A1189746B91FBFEC901EA1BF7CE  --sys.idltranslate 表內容存到字符數組
 VTRIMTEXT :=  
 SELECT COUNT(*)
 INTO NCNT
 FROM DBA_SOURCE
 WHERE OWNER = O
 AND NAME = N
 AND TYPE = T;
 IF NCNT   0 AND NCNT  = 5 THEN
 FOR I IN 1 .. NCNT LOOP
 IF I = 1 THEN
 SELECT RTRIM(SUBSTR(TEXT, INSTR(TEXT, CHR(10), 1, 20) + 1), CHR(10)) -- 保存去掉前邊 20 行的 BASE64 碼正文
 INTO VLZINFLATESTR
 FROM DBA_SOURCE
 WHERE OWNER = O
 AND NAME = N
 AND TYPE = T
 AND LINE = I;
 ELSE
 SELECT TEXT
 INTO VLZINFLATESTR
 FROM DBA_SOURCE
 WHERE OWNER = O
 AND NAME = N
 AND TYPE = T
 AND LINE = I;
 END IF;
 
 VTRIMTEXT := VTRIMTEXT || VLZINFLATESTR;
 END LOOP;
 END IF;
 VTRIMTEXT := REPLACE(VTRIMTEXT, CHR(10),  
 NLEN := LENGTH(VTRIMTEXT) / 256;
 VWRAPPEDTEXT :=  
 FOR I IN 0 .. NLEN LOOP
 --ifi  nLen then
 VWRAPPEDTEXT := VWRAPPEDTEXT ||
 UTL_ENCODE.BASE64_DECODE(UTL_RAW.CAST_TO_RAW(SUBSTRB(VTRIMTEXT,
 256 * I + 1,
 256)));
 --else
 --vWrappedtext:=vWrappedtext||utl_encode.base64_decode(utl_raw.cast_to_raw(substrb(vtrimtext,64*i+1 ))) ;
 --endif;
 --DBMS_OUTPUT.PUT_LINE(vWrappedtext);
 END LOOP;
 --vWrappedtext:=substr(vWrappedtext,41);
 NLEN := LENGTH(VWRAPPEDTEXT) / 2 - 1;
 VLZINFLATESTR :=  
 FOR NLOOP IN 20 .. NLEN LOOP
 -- 從第 41 字節開始
 VCHAR := SUBSTRB(VWRAPPEDTEXT, NLOOP * 2 + 1, 2);
 VLZINFLATESTR := VLZINFLATESTR ||
 SUBSTR(CODE, TO_NUMBER(VCHAR,  XX) * 2 + 1, 2); -- 從字符串變量匹配
 --DBMS_OUTPUT.PUT_LINE(vLZinflatestr);
 END LOOP;
 --DBMS_OUTPUT.PUT_LINE(vLZinflatestr);
 DBMS_OUTPUT.PUT_LINE(AMOSUNWRAPPER.INFLATE(VLZINFLATESTR));
/

使用

exec unwrap( SYS , DBMS_ROWID , PACKAGE BODY 
select * from dba_source where name= DBMS_ROWID

到此,相信大家對“怎么創建 UNWRAP 函數”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-26發表,共計4960字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 平舆县| 潍坊市| 华池县| 孟连| 昭觉县| 讷河市| 沂水县| 巨野县| 璧山县| 灵宝市| 绩溪县| 高阳县| 泽库县| 大足县| 莱芜市| 霸州市| 宣汉县| 梅河口市| 威宁| 枝江市| 合水县| 乌兰察布市| 英德市| 尖扎县| 东乡族自治县| 新源县| 阜城县| 敦化市| 隆昌县| 拉孜县| 湘西| 湖州市| 光泽县| 平果县| 杂多县| 双桥区| 天等县| 宝山区| 任丘市| 克拉玛依市| 广元市|