Oracle Blob轉成字串

2021-09-01 19:51:24 字數 1516 閱讀 1140

oracle資料庫中的blob欄位轉成字串的函式:

1、utl_raw.cast_to_varchar2(blob_var)只支援blob長度小於2000的字段:

--mysql

select count(*) from score_news_online a where a.onlineflag=1 and trim(unhex(hex(a.onetitle)))=trim(unhex('d5aec8a8'))

and a.newstype='news_sc_newstype_yxdt' and (a.asstitle between '10000000' and '50000000')

--oracle

select count(*) from bp_winner_ticketphoto a where convert(utl_raw.cast_to_varchar2(a.photodata), 'utf8', 'zhs16gbk')='債權'

and a.newstype='news_hub_newstype_yxdt' and (a.asstitle between '10000000' and '50000000')

2、blob_to_varchar 自定義函式支援blob長度大於2000的字段:

--only for oracle 注意字段資料型別轉換

create or replace function blob_to_varchar (blob_in in blob) return varchar2

isv_varchar varchar2(4000);

v_start pls_integer := 1;

v_buffer pls_integer := 4000;

begin

if dbms_lob.getlength(blob_in) is null then

return '';

end if;

for i in 1..ceil(dbms_lob.getlength(blob_in) / v_buffer) loop

--當轉換出來的字串亂碼時,可嘗試用注釋掉的函式

--v_varchar := utl_raw.cast_to_varchar2(utl_raw.convert(dbms_lob.substr(blob_in, v_buffer, v_start),'simplified chinese_china.zhs16gbk', 'american_the netherlands.utf8'));

v_varchar := utl_raw.cast_to_varchar2(dbms_lob.substr(blob_in, v_buffer, v_start));

v_start := v_start + v_buffer;

end loop;

return v_varchar;

end blob_to_varchar;

字串轉成整數

實現atoi這個函式,將乙個字串轉換為整數。如果沒有合法的整數,返回0。如果整數超出了32位整數的範圍,返回int max 2147483647 如果是正整數,或者int min 2147483648 如果是負整數。該題目較為複雜,需要分類討論多種情況。題意為將字串中出現的第乙個完整的整數返回,包括...

整數轉成字串

1.使用itoa函式 char itoa int value char string,int radix 原型說明 value 欲轉換的資料。radix 轉換後的進製數,可以是2進製 8進製 10進製 16進製制等。exmaple include include int main void 2.不利...

dart轉成字串 Dart 字串型別

字串資料型別表示字串行。dart字串是由utf16編碼單元組成的序列。dart中的字串值可以用單引號 雙引號或三引號表示。單行字串用單引號或雙引號表示。三引號用於表示多行字串。在dart中表示字串值的語法如下所示 語法string variable name value orstring varia...