diff options
author | Andrejs Kozlovs <andrejs.kozlovs@zabbix.com> | 2020-11-02 11:57:16 +0300 |
---|---|---|
committer | Andrejs Kozlovs <andrejs.kozlovs@zabbix.com> | 2021-01-13 18:04:33 +0300 |
commit | db8ce4d9e0c055d290091c35ea4b4d716af0db0b (patch) | |
tree | 7bdda935ad520fff066724733233384e49f316c5 /database | |
parent | beeb240823c981f186df193f59cb076658e75ffb (diff) |
....I..... [ZBXNEXT-6285] change spaces to tabs
Diffstat (limited to 'database')
-rw-r--r-- | database/oracle/images.sql | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/database/oracle/images.sql b/database/oracle/images.sql index 82d102a1bf5..c48d84f6506 100644 --- a/database/oracle/images.sql +++ b/database/oracle/images.sql @@ -1,48 +1,48 @@ CREATE OR REPLACE FUNCTION base64decode(p_clob CLOB) RETURN BLOB - IS - C_CHUNK_SIZE CONSTANT INTEGER := 12000; -- should be a multiple of 4 - C_NON_BASE64_SYM_PATTERN CONSTANT VARCHAR2(20) := '[^A-Za-z0-9+/]'; - l_chunk_buf VARCHAR2(12000); - l_chunk_b64_buf RAW(9000); - l_chunk_offset INTEGER := 1; - l_chunk_size INTEGER; - l_blob BLOB; + IS + C_CHUNK_SIZE CONSTANT INTEGER := 12000; -- should be a multiple of 4 + C_NON_BASE64_SYM_PATTERN CONSTANT VARCHAR2(20) := '[^A-Za-z0-9+/]'; + l_chunk_buf VARCHAR2(12000); + l_chunk_b64_buf RAW(9000); + l_chunk_offset INTEGER := 1; + l_chunk_size INTEGER; + l_blob BLOB; - FUNCTION get_next_full_base64_chunk(l_data CLOB, p_cur_pos IN OUT INTEGER, p_desired_size INTEGER, p_cur_size IN OUT INTEGER) RETURN VARCHAR2 IS - l_res VARCHAR2(12000); - l_tail_desired_size INTEGER; - BEGIN - l_res := dbms_lob.substr(l_data, p_desired_size, p_cur_pos); - p_cur_pos := p_cur_pos + p_desired_size; - IF l_res IS NULL THEN - RETURN NULL; - END IF; + FUNCTION get_next_full_base64_chunk(l_data CLOB, p_cur_pos IN OUT INTEGER, p_desired_size INTEGER, p_cur_size IN OUT INTEGER) RETURN VARCHAR2 IS + l_res VARCHAR2(12000); + l_tail_desired_size INTEGER; + BEGIN + l_res := dbms_lob.substr(l_data, p_desired_size, p_cur_pos); + p_cur_pos := p_cur_pos + p_desired_size; + IF l_res IS NULL THEN + RETURN NULL; + END IF; - l_res := regexp_replace(l_res, C_NON_BASE64_SYM_PATTERN, ''); - p_cur_size := p_cur_size + length(l_res); + l_res := regexp_replace(l_res, C_NON_BASE64_SYM_PATTERN, ''); + p_cur_size := p_cur_size + length(l_res); - l_tail_desired_size := 4 - mod(p_cur_size, 4); - IF l_tail_desired_size = 4 THEN - RETURN l_res; - ELSE - RETURN l_res || get_next_full_base64_chunk(l_data, p_cur_pos, l_tail_desired_size, p_cur_size); - END IF; - END; + l_tail_desired_size := 4 - mod(p_cur_size, 4); + IF l_tail_desired_size = 4 THEN + RETURN l_res; + ELSE + RETURN l_res || get_next_full_base64_chunk(l_data, p_cur_pos, l_tail_desired_size, p_cur_size); + END IF; + END; - BEGIN - dbms_lob.createtemporary(l_blob, false); + BEGIN + dbms_lob.createtemporary(l_blob, false); - WHILE true - LOOP - l_chunk_size := 0; - l_chunk_buf := get_next_full_base64_chunk(p_clob, l_chunk_offset, C_CHUNK_SIZE, l_chunk_size); - EXIT WHEN l_chunk_buf IS NULL; - l_chunk_b64_buf := utl_encode.base64_decode(utl_raw.cast_to_raw(l_chunk_buf)); - dbms_lob.writeappend(l_blob, utl_raw.length(l_chunk_b64_buf), l_chunk_b64_buf); - END LOOP; + WHILE true + LOOP + l_chunk_size := 0; + l_chunk_buf := get_next_full_base64_chunk(p_clob, l_chunk_offset, C_CHUNK_SIZE, l_chunk_size); + EXIT WHEN l_chunk_buf IS NULL; + l_chunk_b64_buf := utl_encode.base64_decode(utl_raw.cast_to_raw(l_chunk_buf)); + dbms_lob.writeappend(l_blob, utl_raw.length(l_chunk_b64_buf), l_chunk_b64_buf); + END LOOP; - RETURN l_blob; - END; + RETURN l_blob; + END; / DECLARE l_clob CLOB; @@ -1144,4 +1144,4 @@ KLvrnTI+Niy90hkFAPOiNWvWKBszjEX2NMlZTlAObN7ODTAR0n9gIQDs8LJixtPPPvuWPweHqweWRQwD INSERT INTO images VALUES (187,1,'Zabbix_server_3D_(96)',base64decode(l_clob)); END; / -DROP FUNCTION base64decode;
\ No newline at end of file +DROP FUNCTION base64decode; |