【发布时间】:2015-08-25 23:24:43
【问题描述】:
我正在从包含 xml 文件的表中提取一些数据。 我正在使用的查询如下,它工作正常。
select RecUid.CD_UID,
Abst2.*
from testtable2 t
cross join xmltable(xmlnamespaces(default 'xxxxxxxxxxxx'),
'records/REC'
passing t.xml_file
columns CD_UID varchar2(200) path 'UID',
--names xmltype path 'static_data/summary'
Abstract xmltype path 'static_data/keywords'
) RecUid
cross join xmltable(--xmlnamespaces(default 'http://scientific.thomsonreuters.com/schema/wok5.4/public/FullRecord'),
'keywords/keyword'
passing RecUid.Abstract
columns keyword varchar2(200) path '.'
) Abst2;
我想将这些字段插入到表中,但我还想用 XML 文件中没有的值更新表字段。
我已尝试使用以下代码:
INSERT INTO WOS_DM_KEYWORD
(
CD_UID
, CD_KEYWORD
, FLAG)
select RecUid.CD_UID
, Abst2.*
from testtable2 t
cross join xmltable(xmlnamespaces(default 'http://scientific.thomsonreuters.com/schema/wok5.4/public/FullRecord'),
'records/REC'
passing t.xml_file
columns CD_UID varchar2(200) path 'UID',
Abstract xmltype path 'static_data/fullrecord_metadata/keywords'
) RecUid
cross join xmltable(xmlnamespaces(default 'http://scientific.thomsonreuters.com /schema/wok5.4/public/FullRecord'),
'keywords/keyword'
passing RecUid.Abstract
columns CD_KEYWORD varchar2(200) path '.',
FLAG '1'
) Abst2
;
但显然它不起作用。
我们正在运行:'Oracle Database 11g Enterprise Edition 11.2.0.4.0 64bit Production'
如何为 FLAG 字段赋值?
谢谢!
【问题讨论】:
-
为什么'显然' - 你还没有告诉我们会发生什么。是否总是要将值 1 分配给标志列?
-
是的,对不起,它不起作用,因为我收到错误
Error report - SQL Error: ORA-00902: invalid datatype 00902. 00000 - "invalid datatype" *Cause: *Action:因为它是一个标志,所以我想将其始终设置为 1。