Oracle xmltable解析返回LPX-00209(Oracle xmltable parsing return LPX-00209)

我是Oracle的新手。 现在我试图解析XML并将其放入VK_ACCOUNTS表中。 我的xml示例在这里:

1656672360

general

1

reports

我用下面的函数请求xml,并且据我看到它正确返回xml:

create or replace function GET_CLOBFROMURL(

p_url varchar2,

p_charset varchar2 default 'UTF8'

) return clob

is

req utl_http.req;

resp utl_http.resp;

val varchar2(32547);

a clob;

BEGIN

a:='';

dbms_lob.createtemporary(a,true);

dbms_lob.open(a,dbms_lob.lob_readwrite);

req := utl_http.begin_request(p_url);

utl_http.set_body_charset(req, p_charset);

resp := utl_http.get_response(req);

LOOP

a := a||val;

utl_http.read_text(resp, val, 5000);

END LOOP;

utl_http.end_response(resp);

return a;

EXCEPTION

WHEN utl_http.end_of_body THEN

utl_http.end_response(resp);

return a;

WHEN others then

utl_http.end_response(resp);

raise;

END;

并获取xml到xml_clob

xml_clob := tableau.get_clobFromUrl(REQUEST);

IF xml_clob != EMPTY_CLOB() THEN

insert into tableau.VK_ACCOUNTS(account_id, account_type, account_status, access_role)

SELECT

proc.account_id,

proc.account_type,

proc.account_status,

proc.access_role

FROM XMLTABLE('response/account' passing (select xmltype(xml_clob) resp FROM dual)

columns account_id number path '/account/account_id',

account_type varchar2(20) path '/account/account_type',

account_status number path '/account/account_status',

access_role varchar2(20) path '/account/access_role'

) proc;

COMMIT;

END IF;

END;

最后我得到一个错误:

ORA-31011: XML parsing failed

ORA-19202: Error occurred in XML

LPX-00209: PI names starting with XML are reserved

Error at line 3

ORA-06512: на "SYS.XMLTYPE", line 272

ORA-06512: на line 1

ORA-06512: на "TABLEAU.VK_LOADDATA", line 11

ORA-06512: на line 2

我已经试过的是TRIM函数的XML,但它不帮助我。

有任何想法吗?

i'm newbie in Oracle. Right now i'm trying to parse XML and put it inside VK_ACCOUNTS table. My xml sample is here:

1656672360

general

1

reports

I request xml with function below and as far as i see it returns xml properly:

create or replace function GET_CLOBFROMURL(

p_url varchar2,

p_charset varchar2 default 'UTF8'

) return clob

is

req utl_http.req;

resp utl_http.resp;

val varchar2(32547);

a clob;

BEGIN

a:='';

dbms_lob.createtemporary(a,true);

dbms_lob.open(a,dbms_lob.lob_readwrite);

req := utl_http.begin_request(p_url);

utl_http.set_body_charset(req, p_charset);

resp := utl_http.get_response(req);

LOOP

a := a||val;

utl_http.read_text(resp, val, 5000);

END LOOP;

utl_http.end_response(resp);

return a;

EXCEPTION

WHEN utl_http.end_of_body THEN

utl_http.end_response(resp);

return a;

WHEN others then

utl_http.end_response(resp);

raise;

END;

And get xml to xml_clob

xml_clob := tableau.get_clobFromUrl(REQUEST);

IF xml_clob != EMPTY_CLOB() THEN

insert into tableau.VK_ACCOUNTS(account_id, account_type, account_status, access_role)

SELECT

proc.account_id,

proc.account_type,

proc.account_status,

proc.access_role

FROM XMLTABLE('response/account' passing (select xmltype(xml_clob) resp FROM dual)

columns account_id number path '/account/account_id',

account_type varchar2(20) path '/account/account_type',

account_status number path '/account/account_status',

access_role varchar2(20) path '/account/access_role'

) proc;

COMMIT;

END IF;

END;

Finally i get an error:

ORA-31011: XML parsing failed

ORA-19202: Error occurred in XML

LPX-00209: PI names starting with XML are reserved

Error at line 3

ORA-06512: на "SYS.XMLTYPE", line 272

ORA-06512: на line 1

ORA-06512: на "TABLEAU.VK_LOADDATA", line 11

ORA-06512: на line 2

What i have already tried is TRIM function for XML but it doesn't help me.

Any ideas?

原文:https://stackoverflow.com/questions/41693602

更新时间:2020-01-21 17:28

相关问答

您不需要多次调用XMLTable,您可以将元素选择移动到列路径子句中,并有三个这样的子句: select x.id1, x.id2, x.id3

from tbl t

cross join

xmltable ('/root'

passing t.xml_data

columns id1 varchar2 (100) path 'element[id=1]/data',

id2 varchar2 (100) path 'element[id=2]/data',

...

1)你的secound sopa请求在cdata中有无效的xml。 SELECT A1.Row1

FROM

xml_tab x,

XMLTable(

XMLNamespaces(

'http://schemas.xmlsoap.org/soap/envelope/' AS "SOAP-ENV"

,'urn://oracle.bi.webservices/v6' AS "sawsoap"

...

我做了一个解决方法。 XML:

text

SQL: SELECT XML_TABLE.NAME,

DECODE (XML_TABLE.FIRST_ID, NULL, 0, 1) AS HAS_DOCUMENT

FROM XML_DATA,

XMLTABLE('//root' PASSIN

...

做一个选择(或创建视图)是这样的: CREATE VIEW ptcar AS

SELECT Id, LongNameFrench, LongNameDutch,

TO_DATE(x.ValidFromDate, 'YYYY-MM-DD') as ValidFromDate,

...

FROM XML_Infrastructure,

XMLTABLE(

'$d/*:ptcars/*:ptcar'

PASSING XMLTYPE(XML_Infr

...

由于您只有一个父节点CodigoDATA但是有许多子节点PeriodoDATA ,我建议您将查询分成两个不同的:第一个将提取父信息CodigoDATA ,第二个将PeriodoDATA子节点(类似于您正在做的事情)。 Since you just have one parent node CodigoDATA but many child nodes PeriodoDATA, I suggest you split query into 2 different ones: the first wo

...

不确定你为什么看到这种行为; 实现第一个CTE会停止错误,但不会找到任何数据。 不直接相关,但您可以简化查询,至少对于您显示的数据,只需一次XMLTable调用即可: SELECT au.xml_id,

x.tran_ts as chg_timestr,

to_date(substr(x.tran_ts, 0, 8), 'yyyymmdd') chg_date,

cast(substr(x.tran_ts, 9, 6) as int) chg_time,

...

它应该像这样工作 xml_clob := tableau.Get_Clobfromurl(); s := SUBSTR(xml_clob,INSTR(xml_clob,'

您不需要在xml级别上操作以使列具有sysdate: INSERT INTO tbl_employee tbl

(tbl.emp_id

,tbl.name

,tbl.created_on)

SELECT t.emp_id, t.name, sysdate

FROM xmltable('/employee_info'

passing xmldata

columns

...

更改xpath /v20:ProductionOrder/v201:ProductionOrderSteps/v201:ProductionOrderStep/v201:POStepDetails/v201:InstallationDetails/*[text()] 至 /v20:ProductionOrder/v201:ProductionOrderSteps/v201:ProductionOrderStep/v201:POStepDetails/v201:InstallationDetails

...

您可以通过将steptype xmls与union all交叉连接到主xmls来实现此目的,如下所示: with tab as (

select XMLType(

'

...

oracle 返回 xml解析,Oracle xmltable解析返回LPX-00209(Oracle xmltable parsing return LPX-00209)...相关推荐

  1. android 微信支付返回XML格式数据的解析方法

    此篇主要是为了那些做微信支付需要解析XML的朋友少写代码而创建,直接用即可: 一般我们在请求网络的时候,返回的都是Json格式的字符串,对此我们已经司空见惯,并且基本都知道如何去解析:但是有些情况下, ...

  2. php处理微信返回xml数据,php将微信返回的xml格式转换成数组

    废话不多说直接上代码 代码<?php header("Content-type: text/html; charset=utf-8"); date_default_timez ...

  3. java response返回xml_Spring 返回Xml格式

    一.spring返回xml格式响应 1.1 配置相关 如果需要方法返回xml格式则需要在requestMapping属性中添加application/xml,最好再设置编码,如下代码所示: @Resp ...

  4. Spring Boot 返回 XML 数据,一分钟搞定!

    2019独角兽企业重金招聘Python工程师标准>>> Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击 ...

  5. java 解析http返回的xml_Java解析调用webservice服务的返回XML串详解

    本文由Markdown语法编辑器编辑完成. 1. 需求分析: 已知当在调用某一webservice的服务时,如果调用成功,会接受到该服务的返回XML串.后端在获取了该XML原始串时,需要进行解析,将其 ...

  6. python xml字符串_python -解析字符串,并返回xml格式字符串 急该如何解决

    python --解析字符串,并返回xml格式字符串 急急急. str = """Registrations: ============================= ...

  7. Oracle sql解析类型, 软解析和硬解析浅析

    这篇文章是参考加甲骨论老相老师视频所做的学习笔记: http://www.jiagulun.com/thread-2675-1-1.html Sql 执行的流程分成3部分: 解析部分(Parse): ...

  8. 【Oracle】硬解析、软解析和软软解析

    [Oracle]硬解析.软解析和软软解析 前言   在 Oracle 中,每条 SQL 语句在执行之前都需要经过解析(Parse),根据解析的过程可以分为 3 种类型:硬解析(Hard Parse). ...

  9. 详解ORACLE数据库硬解析、软解析、软软解析

    概述 TOM大叔的调优书中说过一句话,大概意思就是:如果有人让我写本怎样让ORACLE性能最慢的书的话我会将取消绑定变量(bind variable)做为书的第一章和最后一章,可见绑定变量的重要性.而 ...

  10. oracle 内存结构 share pool sql解析的过程

    1.sql解析的过程 oracle首先将SQL文本转化为ASCII字符,然后根据hash函数计算其对应的hash值(hash_value).根据计算出的hash值到library cache中找到对应 ...

最新文章

  1. 程序员因开发速度太慢而遭公司起诉,索赔金额高达90万!
  2. C语言经典例80-猴子分桃
  3. 【NOIP2015】【Luogu2661】信息传递(有向图最小环)
  4. c++ 管理员身份_CATIA的管理员模式和多版本环境变量设置
  5. Emscripten教程之入门指导
  6. OpenCV实现简单人脸检测
  7. python下载网上的文件
  8. .net一个函数要用另一个函数的值_VLOOKUP函数
  9. python常用单词有多少_Python常用单词
  10. junit可执行但控制层无法执行_springboot项目controller接口junit测试
  11. php网页版进销存源码ERP多仓库管理系统源码
  12. matlab中转置操作,如何转置MATLAB表?
  13. python语料库_Python-使用NLTK创建新的语料库
  14. 机器学习常见面试题总结
  15. 四大展会将“亮剑”义乌 谱写贸易交流新“篇章”
  16. crunch的使用方法
  17. android做一个音乐播放器,制作一个简单的Android版的音乐播放器
  18. 阿里巴巴新手,如何入门,该从哪里开始学习-阿里巴巴学习--潭州阿里巴巴
  19. 2022中国公司注册亚马逊欧洲站卖家资质审核(KYC)所需资料料及要求!
  20. 叶绿体基因做跨物种系统发育分析

热门文章

  1. 汽车行业常见术语英文缩写(持续更新...)
  2. FragmentActivity_左右滑动的碎片
  3. css 固定定位失效问题 position: fixed
  4. MATLAB求解矩阵特征值的六种方法
  5. 科学课和计算机整合,信息技术与小学科学课堂整合的现状分析论文
  6. BitBake用户手册-3.语法和操作
  7. 【OpenBMC 系列】3.bitbake介绍
  8. Sun选择Emulex助力完善Blade服务器
  9. Windows 10 下如何显示文件的后缀名
  10. 轻松实现在微信中直接下载APK的方式