![](/img/trans.png)
[英]Oracle DB SQL insert base64 string (> 4000 chars) into BLOB column of a table in SQL
[英]How to remove '\r\n' from Base64 string in oracle?
我在Oracle中創建了以下函數,以將字符串轉換為BASE64,並且在64個字符之后得到了新行 。 功能如下
function to_base64(t in varchar2) return varchar2 is
begin
return utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(t)));
end to_base64;
我的輸入是tobase64('ACae23b41949dbcfa8cd2c8b114bb81af4:909f2edb3e9b8c7e9c545d2942aa8576')
我得到的輸出如下,其中在64個字符之后添加了新行。 QUNhZTIzYjQxOTQ5ZGJjZmE4Y2QyYzhiMTE0YmI4MWFmNDo5MDlmMmVkYjNlOWI4 YzdlOWM1NDVkMjk0MmFhODU3Ng==
有人可以建議我如何刪除新行或功能中需要的任何更改嗎?
您可以使用replace()
分別刪除兩個字符:
function to_base64(t in varchar2) return varchar2 is
begin
return replace(
replace(
utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(t))),
chr(10)),
chr(13)
);
end to_base64;
或成對:
function to_base64(t in varchar2) return varchar2 is
begin
return replace(
utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(t))),
chr(13)||chr(10)
);
end to_base64;
然后任一種方式
select to_base64('ACae23b41949dbcfa8cd2c8b114bb81af4:909f2edb3e9b8c7e9c545d2942aa8576')
from dual;
單行給出結果:
QUNhZTIzYjQxOTQ5ZGJjZmE4Y2QyYzhiMTE0YmI4MWFmNDo5MDlmMmVkYjNlOWI4YzdlOWM1NDVkMjk0MmFhODU3Ng==
但是base64值包含它們很常見,並且無論如何解碼都應該忽略它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.