文档介绍:L_OFFSET PLS_INTEGER :=1; BEGIN -- 判断需替换值是否为空 IF P_WHAT IS NOT NULL THEN WHILE L_OFFSET <(P_CLOB) LOOP L_SEGMENT :=(P_CLOB,32767,L_OFFSET); LOOP L_POS :=(L_SEGMENT,P_WHAT,L_POS+C_WITHLEN); EXIT WHEN (NVL(L_POS,0) = 0) OR (L_POS = 32767-C_WITHLEN); L_SEGMENT :=TO_CLOB((L_SEGMENT,L_POS-1)||P_W ITH||(L_SEGMENT,32767-C_WHATLEN-L_POS-C_WHAT LEN+1,L_POS+C_WHATLEN)); END LOOP; L_RETURN :=L_RETURN||L_SEGMENT; L_OFFSET :=L_OFFSET+32767-C_WHATLEN; END LOOP; END IF; RETURN(L_RETURN); END; BEGIN -- 来源 XML 脚本替换为 Oracle 标准脚本 XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'< 数据集>','<ROWSET>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'</ 数据集>','</ROWSET>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'< 数据体>','<ROW>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'</ 数据体>','</ROW>'); -- 来源 XML 脚本字段替换为目标 DB 表字段 XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'< 名称>','<GDDWMC>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'</ 名称>','</GDDWMC>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'< 日期>','<RQ>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'</ 日期>','</RQ>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'< 最高>','<ZGFH>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'</ 最高>','</ZGFH>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'< 最低>','<ZDFH>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'</ 最低>','</ZDFH>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'< 平均>','<PJFH>'); XML_DOC:=DFN_CLOBREPLACE(XML_DOC,'</ 平均>','</PJFH>'); XML_DOC:=DFN_CLOBREPLACE(XML_DO