Created
December 19, 2012 19:03
-
-
Save turbanoff/4339500 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
drop table TEST_MD5_WITH_CLOB; | |
create table TEST_MD5_WITH_CLOB | |
(a clob | |
, pk number primary key | |
); | |
declare | |
tmp clob; | |
begin | |
delete from TEST_MD5_WITH_CLOB; | |
tmp := empty_clob(); | |
tmp := tmp || '<REPORT><AGENT>УстДС Слободч</AGENT><FORM>Мониторинг ЗП ДО</FORM><BDATE>2012-11-01</BDATE><KIND>0</KIND><STATE>2</STATE><CHECKED>0</CHECKED><SEND>0</SEND><SUBREPORTS><SUBREPORT><STATE>2</STATE><CHECKED>0</CHECKED><VALUES><VALUE><CODE>М_02_004</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_02_005</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_02_006</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_02_007</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_02_008</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_02_009</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_03_004</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_03_005</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_03_006</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_03_007</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_03_008</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_03_009</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_30_004</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_30_005</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_30_006</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_30_007</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_30_008</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_30_009</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_04_004</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_04_005</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_04_006</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_04_007</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_04_008</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_04_009</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_05_004</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_05_005</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_05_006</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_05_007</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_05_008</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_05_009</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_07_004</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_07_005</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_07_006</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_07_007</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_07_008</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_07_009</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_08_004</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_08_005</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_08_006</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_08_007</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_08_008</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_08_009</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_09_004</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_09_005</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_09_006</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_09_007</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_09_008</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_09_009</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_10_004</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_10_005</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_10_006</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_10_007</CODE><NVAL>5060.00'; | |
tmp := tmp || '</NVAL></VALUE><VALUE><CODE>М_10_008</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_10_009</CODE><NVAL>5060.00</NVAL></VALUE><VALUE><CODE>М_12_001</CODE><NVAL>4.50</NVAL></VALUE><VALUE><CODE>М_12_002</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_003</CODE><NVAL>45.00</NVAL></VALUE><VALUE><CODE>М_12_004</CODE><NVAL>4.00</NVAL></VALUE><VALUE><CODE>М_12_005</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_12_006</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_007</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_008</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_009</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_014</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_015</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_016</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_010</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_011</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_012</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_017</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_018</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_019</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_020</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_021</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_12_022</CODE><NVAL>7.00</NVAL></VALUE><VALUE><CODE>М_13_001</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_002</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_003</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_004</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_005</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_006</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_007</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_008</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_009</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_014</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_015</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_016</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_010</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_011</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_012</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_017</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_018</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_019</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_020</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_021</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_13_022</CODE><NVAL>5.00</NVAL></VALUE><VALUE><CODE>М_15_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_16_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_17_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_18_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_19_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_22_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_23_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_24_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_25_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_33_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_34_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_35_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_26_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_27_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_28_001</CODE><NVAL>9.00</NVAL></VALUE><VALUE><CODE>М_29_001</CODE><NVAL>9.00</NVAL></VALUE></VALUES></SUBREPORT></SUBREPORTS></REPORT>'; | |
tmp:= tmp || chr(13) || chr(10); | |
insert into TEST_MD5_WITH_CLOB(a, pk) values (tmp, 1); | |
commit; | |
end; | |
/ | |
create or replace function TEST_CLOB_TO_BLOB(cREPORT in clob) return blob | |
as | |
blb blob; | |
dest_offset number := 1; | |
src_offset number := 1; | |
lang_context number := 0; | |
warning number; | |
begin | |
dbms_lob.createtemporary(blb, FALSE); | |
dbms_lob.converttoblob( blb, cREPORT, dbms_lob.getlength(cREPORT), dest_offset, src_offset, NLS_CHARSET_ID('CL8MSWIN1251'), lang_context, warning ); | |
return blb; | |
end; | |
/ | |
select rawtohex(DBMS_CRYPTO.HASH(a, 2)) clob_hash | |
, TEST_CLOB_TO_BLOB(a) blob | |
, rawtohex( DBMS_CRYPTO.HASH(TEST_CLOB_TO_BLOB(a), 2)) blob_hash | |
from TEST_MD5_WITH_CLOB | |
; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment