怎么创建UNWRAP函数

数据库   2024年03月29日 23:05  

本篇内容主要讲解“怎么创建UNWRAP函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么创建UNWRAP函数”吧!

创建 函数CREATEORREPLACEPACKAGEAMOSUNWRAPPERISFUNCTIONDEFLATE(SRCINVARCHAR2)RETURNRAW;FUNCTIONDEFLATE(SRCINVARCHAR2,QUALITYINNUMBER)RETURNRAW;FUNCTIONINFLATE(SRCINRAW)RETURNVARCHAR2;END;/CREATEORREPLACEPACKAGEBODYAMOSUNWRAPPERISFUNCTIONDEFLATE(SRCINVARCHAR2)RETURNRAWISBEGINRETURNDEFLATE(SRC,6);END;FUNCTIONDEFLATE(SRCINVARCHAR2,QUALITYINNUMBER)RETURNRAWASLANGUAGEJAVANAME'UNWRAPPER.Deflate(java.lang.String,int)returnbyte[]';FUNCTIONINFLATE(SRCINRAW)RETURNVARCHAR2ASLANGUAGEJAVANAME'UNWRAPPER.Inflate(byte[])returnjava.lang.String';END;//*Formattedon2011/8/1813:00:16(QP5v5.163.1008.3004)*/CREATEORREPLACEJAVASOURCENAMEDUNWRAPPERASimportjava.io.*;importjava.util.zip.*;publicclassUNWRAPPER{publicstaticStringInflate(byte[]src){try{ByteArrayInputStreambis=newByteArrayInputStream(src);InflaterInputStreamiis=newInflaterInputStream(bis);StringBuffersb=newStringBuffer();for(intc=iis.read();c!=-1;c=iis.read()){sb.append((char)c);}returnsb.toString();}catch(Exceptione){}returnnull;}publicstaticbyte[]Deflate(Stringsrc,intquality){try{byte[]tmp=newbyte[src.length()+100];Deflaterdefl=newDeflater(quality);defl.setInput(src.getBytes("UTF-8"));defl.finish();intcnt=defl.deflate(tmp);byte[]res=newbyte[cnt];for(inti=0;i<cnt;i++)res=tmp;returnres;}catch(Exceptione){}returnnull;}}/ALTERJAVASOURCEUNWRAPPERCOMPILE//*Formattedon2011/8/1813:02:57(QP5v5.163.1008.3004)*/--为了输出中文,要修改java过程CREATEORREPLACEJAVASOURCENAMEDUNWRAPPERASimportjava.io.*;importjava.util.zip.*;publicclassUNWRAPPER{publicstaticStringInflate(byte[]src){try{ByteArrayInputStreambis=newByteArrayInputStream(src);InflaterInputStreamiis=newInflaterInputStream(bis);StringBuffersb=newStringBuffer();for(intc=iis.read();c!=-1;c=iis.read()){sb.append((char)c);}Stringhello=newString(sb.toString().getBytes("iso8859-1"),"GBK");returnhello;}catch(Exceptione){}returnnull;}publicstaticbyte[]Deflate(Stringsrc,intquality){try{byte[]tmp=newbyte[src.length()+100];Deflaterdefl=newDeflater(quality);defl.setInput(src.getBytes("UTF-8"));defl.finish();intcnt=defl.deflate(tmp);byte[]res=newbyte[cnt];for(inti=0;i<cnt;i++)res=tmp;returnres;}catch(Exceptione){}returnnull;}}/ALTERJAVASOURCEUNWRAPPERCOMPILE//*Formattedon2011/8/1813:00:41(QP5v5.163.1008.3004)*/CREATEORREPLACEPROCEDUREUNWRAP(OINVARCHAR,NINVARCHAR,TINVARCHAR)ASVWRAPPEDTEXTVARCHAR2(32767);VTRIMTEXTVARCHAR2(32767);VCHARVARCHAR2(2);VREPCHARVARCHAR2(2);VLZINFLATESTRVARCHAR2(32767);NLENINTEGER;NLOOPINTEGER;NCNTINTEGER;CODEVARCHAR(512);BEGINCODE:='3D6585B318DBE287F152AB634BB5A05F7D687B9B24C228678ADEA4261E03EB176F343E7A3FD2A96A0FE935561FB14D1078D975F6BC4104816106F9ADD6D5297E869E79E505BA84CC6E278EB05DA8F39FD0A271B858DD2C38994C480755E4538C46B62DA5AF322240DC50C3A1258B9C16605CCFFD0C981CD4376D3C3A30E86C3147F533DA43C8E35E1994ECE6A39514E09D64FA5915C52FCABB0BDFF297BF0A76B449445A1DF0009621807F1A82394FC1A7D70DD1D8FF139370EE5BEFBE09B97772E7B254B72AC7739066200E51EDF87C8F2EF412C62B83CDACCB3BC44EC069366202AE88FCAA4208A64557D39ABDE1238D924A1189746B91FBFEC901EA1BF7CE';--sys.idltranslate表内容存到字符数组VTRIMTEXT:='';SELECTCOUNT(*)INTONCNTFROMDBA_SOURCEWHEREOWNER=OANDNAME=NANDTYPE=T;IFNCNT>0ANDNCNT<=5THENFORIIN1..NCNTLOOPIFI=1THENSELECTRTRIM(SUBSTR(TEXT,INSTR(TEXT,CHR(10),1,20)+1),CHR(10))--保存去掉前边20行的BASE64码正文INTOVLZINFLATESTRFROMDBA_SOURCEWHEREOWNER=OANDNAME=NANDTYPE=TANDLINE=I;ELSESELECTTEXTINTOVLZINFLATESTRFROMDBA_SOURCEWHEREOWNER=OANDNAME=NANDTYPE=TANDLINE=I;ENDIF;VTRIMTEXT:=VTRIMTEXT||VLZINFLATESTR;ENDLOOP;ENDIF;VTRIMTEXT:=REPLACE(VTRIMTEXT,CHR(10),'');NLEN:=LENGTH(VTRIMTEXT)/256;VWRAPPEDTEXT:='';FORIIN0..NLENLOOP--ifi<nLenthenVWRAPPEDTEXT:=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);ENDLOOP;--vWrappedtext:=substr(vWrappedtext,41);NLEN:=LENGTH(VWRAPPEDTEXT)/2-1;VLZINFLATESTR:='';FORNLOOPIN20..NLENLOOP--从第41字节开始VCHAR:=SUBSTRB(VWRAPPEDTEXT,NLOOP*2+1,2);VLZINFLATESTR:=VLZINFLATESTR||SUBSTR(CODE,TO_NUMBER(VCHAR,'XX')*2+1,2);--从字符串变量匹配--DBMS_OUTPUT.PUT_LINE(vLZinflatestr);ENDLOOP;--DBMS_OUTPUT.PUT_LINE(vLZinflatestr);DBMS_OUTPUT.PUT_LINE(AMOSUNWRAPPER.INFLATE(VLZINFLATESTR));END;/使用execunwrap('SYS','DBMS_ROWID','PACKAGEBODY');select*fromdba_sourcewherename='DBMS_ROWID';

到此,相信大家对“怎么创建UNWRAP函数”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部