Oracle 从VARCHAR2中转换的BLOB中提取子字符串

Oracle 从VARCHAR2中转换的BLOB中提取子字符串,oracle,casting,substring,blob,varchar2,Oracle,Casting,Substring,Blob,Varchar2,我在Oracle中有一个灵活的搜索: select UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(p_targetCarts, 4000,1)) from {OrderProposal} 结果是: �sr  java.util.ArrayListx��A.�Isizexpwt 0000031072x �sr  java.util.ArrayListx��A.�Isizexpwt 0000031087x �sr  java.util.ArrayList

我在Oracle中有一个灵活的搜索:

select UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(p_targetCarts, 4000,1)) 
from {OrderProposal}
结果是:

�sr  java.util.ArrayListx��A.�Isizexpwt 0000031072x

�sr  java.util.ArrayListx��A.�Isizexpwt 0000031087x

�sr  java.util.ArrayListx��A.�Isizexpwt 0000032360x

�sr  java.util.ArrayListx��A.�Isizexpwt 0000040099x

�sr  java.util.ArrayListx��A.�Isizexpwt 00000 40100X

现在,我将提取其中的代码。代码是以“00000”开头并在“x”字符之前结束的数字

有一种可能的方法可以做到这一点吗?

这样行吗

select REGEXP_REPLACE(UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(p_targetCarts, 4000,1)),'[[:alpha:]]')
  from {OrderProposal}

我通过以下方式找到了解决方案:

select UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(p_targetCarts, 11,60)) 
from {OrderProposal}
通过这种方式,我将代码字符串修剪为我的选择。
我希望这对您有所帮助。

使用substr,从字符串的前0到结尾OK我找到了解决方案:从{orderproval}中选择UTL_RAW.CAST_to_VARCHAR2(DBMS_LOB.substr(p_targetCarts,11,60))等等,仍然有一些奇怪的字符。我通过{OrderProposal}中的select UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(p_targetCarts,11,60))提案找到了解决方案