将 Xml 数据插入 table 时缺少 select 关键字
Missing select keyword when inserting Xml data into table
我正在尝试使用 Oracle 的 SQL Developer 将 XmlType 变量中的数据插入 table。
我也是Oracle的新手。我正在尝试使用 XML.
将 XML 数据从 SQL 服务器数据库传递到 Oracle
我已经尝试了来自 Stack Overflow 和其他网站的一些解决方案,但似乎没有一个能正常工作。
以下是基于我在 Stack Overflow 上找到的解决方案。我在 Oracles 运行 上 SQL 开发者:
with sample_data as (select xmltype(
'<People>
<Person>
<ID>PP11</ID>
</Person>
<Person>
<ID>PP22</ID>
</Person>
</People>') xml_data from dual)
--INSERT INTO Person (ID)
select x.ID
from sample_data sd
cross join xmltable('/People/Person'
passing sd.xml_data
columns ID varchar2(20) path 'ID') x;
注意 Insert Into 语句被注释掉了。
如果我在 SQL Developer 中 运行 按原样进行,我得到:
ID
--------------------
PP11
PP22
如果我包含 Insert into 语句,我得到:
Error starting at line : 2 in command -
with sample_data as (select xmltype(
'<People>
<Person>
<ID>PP11</ID>
</Person>
<Person>
<ID>PP22</ID>
</Person>
</People>') xml_data from dual)
INSERT INTO Person (ID)
select x.ID
from sample_data sd
cross join xmltable('/People/Person'
passing sd.xml_data
columns ID varchar2(20) path 'ID') x
Error at Command Line : 12 Column : 1
Error report -
SQL Error: ORA-00928: missing SELECT keyword
00928. 00000 - "missing SELECT keyword"
*Cause:
*Action:
谁能告诉我我做错了什么!我已经用 SQL 服务器完成了这个,所以希望 Oracle 能够做到这一点,所以我一定遗漏了一些明显的东西!
我认为正确的顺序是:
INSERT INTO Person (ID)
with sample_data as (select xmltype(
'<People>
<Person>
<ID>PP11</ID>
</Person>
<Person>
<ID>PP22</ID>
</Person>
</People>') xml_data from dual)
select x.ID
from sample_data sd
cross join xmltable('/People/Person'
passing sd.xml_data
columns ID varchar2(20) path 'ID') x
非常感谢您的回复。我无法对其进行测试,因为 SQL 开发人员不再工作了!它正在运行,但我错误地关闭了它,现在它无法连接到 Oracle XE!也就是说,看起来我确实犯了一个简单的错误,我相信一旦 SQL 开发人员再次工作,一切都会好起来的。 TVM!
我正在尝试使用 Oracle 的 SQL Developer 将 XmlType 变量中的数据插入 table。
我也是Oracle的新手。我正在尝试使用 XML.
将 XML 数据从 SQL 服务器数据库传递到 Oracle我已经尝试了来自 Stack Overflow 和其他网站的一些解决方案,但似乎没有一个能正常工作。
以下是基于我在 Stack Overflow 上找到的解决方案。我在 Oracles 运行 上 SQL 开发者:
with sample_data as (select xmltype(
'<People>
<Person>
<ID>PP11</ID>
</Person>
<Person>
<ID>PP22</ID>
</Person>
</People>') xml_data from dual)
--INSERT INTO Person (ID)
select x.ID
from sample_data sd
cross join xmltable('/People/Person'
passing sd.xml_data
columns ID varchar2(20) path 'ID') x;
注意 Insert Into 语句被注释掉了。
如果我在 SQL Developer 中 运行 按原样进行,我得到:
ID
--------------------
PP11
PP22
如果我包含 Insert into 语句,我得到:
Error starting at line : 2 in command -
with sample_data as (select xmltype(
'<People>
<Person>
<ID>PP11</ID>
</Person>
<Person>
<ID>PP22</ID>
</Person>
</People>') xml_data from dual)
INSERT INTO Person (ID)
select x.ID
from sample_data sd
cross join xmltable('/People/Person'
passing sd.xml_data
columns ID varchar2(20) path 'ID') x
Error at Command Line : 12 Column : 1
Error report -
SQL Error: ORA-00928: missing SELECT keyword
00928. 00000 - "missing SELECT keyword"
*Cause:
*Action:
谁能告诉我我做错了什么!我已经用 SQL 服务器完成了这个,所以希望 Oracle 能够做到这一点,所以我一定遗漏了一些明显的东西!
我认为正确的顺序是:
INSERT INTO Person (ID)
with sample_data as (select xmltype(
'<People>
<Person>
<ID>PP11</ID>
</Person>
<Person>
<ID>PP22</ID>
</Person>
</People>') xml_data from dual)
select x.ID
from sample_data sd
cross join xmltable('/People/Person'
passing sd.xml_data
columns ID varchar2(20) path 'ID') x
非常感谢您的回复。我无法对其进行测试,因为 SQL 开发人员不再工作了!它正在运行,但我错误地关闭了它,现在它无法连接到 Oracle XE!也就是说,看起来我确实犯了一个简单的错误,我相信一旦 SQL 开发人员再次工作,一切都会好起来的。 TVM!