1: clob超過2的15次方時,隱式字元轉換會失效,導致無法拼接數字至clob
我用如下指令碼做了測試,當
clob
超過32767
的時候拼接數字就是出現問題
.**字元轉換失效
.需要對數字進行轉換才能拼接成功
,32767
應該是clob
乙個儲存塊的大小吧.
具體原因還需要查閱
clob
相關文件
.有更多測試請補充.
declare
l_buff
clob;
i
number
:= 0;
begin
while
i <=
40000
loop
begin if
i =32768
then
l_buff :=l_buff ||
'1';
else
l_buff :=l_buff || 1;
endif;
exception
when
others
then
dbms_output.put_line(i);
exit;
end;
i := i + 1;
endloop;
end;
2:clob寫入檔案,如果不超過一定的2的15次方,可以直接把clob作為varchar2直接寫入檔案.
但是需要注意寫入檔案時檔案buff大小同樣不能超過2的15次方.超過的部分無法寫入.需要定時進行buff寫入
function clob_to_file(o_error_message in out rtk_errors.rtk_text%type,
o_clob_buff in out clob,
o_file in out utl_file.file_type)
return boolean is
l_program varchar2(255) := 'cmx_zpwfepos_pub_pkg.clob_to_file';
n_offset integer;
n_clob_size integer;
v_buf varchar2(4000);
v_buf_long integer := 1000;
begin
n_clob_size := dbms_lob.getlength(o_clob_buff);
n_offset := 1;
while n_offset <= n_clob_size loop
v_buf := dbms_lob.substr(lob_loc => o_clob_buff,
amount => v_buf_long,
offset => n_offset);
utl_file.put(o_file, v_buf);
utl_file.fflush(v_file);
n_offset := n_offset + v_buf_long;
end loop;
return true;
exception
when others then
o_error_message := sql_lib.create_msg('package_error',
sqlerrm,
l_program,
to_char(sqlcode));
return false;
end clob_to_file;
處理語法高亮的一些問題
首先 不得不說,我乙個web後台工程獅,每天都在做前端的事,吐槽 吐槽 唉 嘿嘿 高亮.使用外掛程式 highlight.js 用法 官網api blog.csdn.net spy19881201 article details 38866033 寫的比較簡單易懂 查了不少文件總結 裡面寫你需要的 ...
antD vue 遇到的一些問題處理
1.maxlength 50 v decorator realname initialvalue info.realname invalid prop type check failed for prop maxlength expected number with value 50,got str...
關於異常的處理一些問題之我見
1.異常處理的好處在絕大多數的情況下都是大於壞處,請盡量使用異常處理.2.如果要針對單獨一種異常進行了try.catch處理後,最好外面再要外包一層try.catch去捕捉未知的異常 或者用乙個try,多個catch,而最後乙個catch就是用來catch未知異常 因為你永遠都不不能保證你的程式在 ...