[英]How to insert data in the CLOB column (Oracle)
我有表:TBL_SAMPLE
SAMPLE_ID - Primary Key
SAMPLE_CD - String
statusDateTime - DateTime
DATA_AREA - CLOB
我有这个架构:
<schema>
<parameterizationId label="Samp Id" mapField="SAMPLE_ID" dataType="string"/>
<statusDateTime required="true" dataType="dateTime" default="%CurrentDateTime" mapField="STATUS_UPD_DTTM"/>
<user default="%CurrentUser" mapField="USER_ID" dataType="string"/>
<dataArea type="group" mapXML="DATA_AREA">
<accountId dataType="string"/>
<saId dataType="string"/>
<saTypeCode dataType="string"/>
<endDate dataType="date"/>
<beginBalAmt dataType="number"/>
</dataArea>
我需要填充 DATE_AREA CLOB 列,应该如下所示:(预期)
<accountId>0854215</accountId><saId>745152</saId><saTypeCode>TES</saTypeCode><endDate>16-Dec-2019</endDate><beginBalAmt>10525</beginBalAmt>
我有这个现有的 SQL:
INSERT INTO TBL_DIFF
SELECT
SA.ACCT_ID,SA.SA_ID,SA.SA_TYPE_CD,'31-DEC-16',0
FROM CI_SA SA
我想使用上面提供的预期 output 语句使用此 sql 语句填充 DATA_AREA 列。 怎么做?
您只需要按如下方式使用串联:
INSERT INTO TBL_DIFF
SELECT
'<accountId>' || SA.ACCT_ID || '</accountId><saId>' || SA.SA_ID || '</saId><saTypeCode>' || SA.SA_TYPE_CD || '</saTypeCode><endDate>'
|| END_DATE || '</endDate><beginBalAmt>' || BEGINBALAMT || '</beginBalAmt>'
FROM
(
SELECT
SA.ACCT_ID,
SA.SA_ID,
SA.SA_TYPE_CD,
'31-DEC-16' END_DATE,
0 BEGINBALAMT
FROM
CI_SA SA
WHERE
SA.SA_TYPE_CD = 'LOAN'
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.