ORA-31167: XML nodes over 64K in size cannot be inserted
Hi there,
we have just recently upgraded our database from 9i r2 to 10g (Oracle Database 10g Enterprise Edition Release 10.2.0.3.0).
The following code was working fine in 9i but is now failing with the error listed in the subject of this thread. I am not actually inserting data at all but merely parsing it. Is there any way I can avoid this error while still performing the parse in PL/SQL?
begin
select test.b2c(xml) into xml_clob
from sde.gdb_usermetadata, admin.sn_resource_metadata
where id = rm_mdid
and rm_rid = resource_id;
v_parser := xmlparser.newParser;
XMLParser.parseClob(v_parser,xml_clob);
xml_doc := xmlparser.getDocument(v_parser);
xmlparser.freeParser(v_parser);
dbms_lob.freetemporary(xml_clob);
end;
The code actually fails at the line XMLParser.parseClob(v_parser,xml_clob);
Many thanks,
David
Message was edited by:
dverna
Hi A_Non,
many thanks for that. I'd already seen that posting and was just wondering if there was still any way to parse XML within a PL/SQL procedure rather than exporting a CLOB to a client or other server side program.
Currently, the parse is being done to provide information to an ASP web application. Based on Mark's suggestion i'd have to export the clob to the ASP and perform the processing using the MSXML object. Not a huge inconvenience in this case but i'd prefer to have everything contained in the DB.
I have other procedures that parse the same XML documents and load relational tables based on the data contained therein. As these are all scheduled to run overnight in Oracle i'd rather not have to rewrite the code in other languages when Oracle was handling it quite nicely in 9i (it's annoying because there is only 1 node >64k which I don't actually need anyway).
Anyway, thanks for the pointer and if you or anyone else has further ideas they'd be much appreciated. I think an upgrade to 11g may be someway off!
Cheers,
David
Similar Messages
-
ORA-31167: XML nodes over 64K in size cannot be inserted -rdbms 10.2.0.4
Hi.
trying to load large XML onto a 10.2.0.4 database - using sqlldr. The logfile shows:
Record 1: Rejected - Error on table LOAD_BS_XML.
ORA-31167: XML nodes over 64K in size cannot be inserted
ORA-06512: at "SYS.XMLTYPE", line 5
My XSD:
<xs:element name="Orders" minOccurs="0" maxOccurs="unbounded">
<xs:element name="Picture" type="xs:base64Binary" minOccurs="0" xdb:SQLType="BLOB"/>
..Is there a way to circumvent this limit - without upgrading to 11gR2?
/Claus
Edited by: user500977 on Dec 6, 2011 8:41 AM
Edited by: user500977 on Dec 6, 2011 8:42 AM
Edited by: user500977 on Dec 6, 2011 8:43 AMHello,
I am also running into this problem using and Oracle 10.1.0.5 version of the database. Unfortunately I do not see our customer updating their version in the near future.
I am inserting customer data into a table with an XMLType column. There is currently no problem with inserting the data and as far as I can tell this data is not being truncated. However, when fetching this data I get the ORA-31167 error. It seems that when I execute the parser to fetch, using the extractvalue method to sort the result set based on nodes in the XMLType column.
My solutions seem limited as I must present the data in a user defined order, I can not change the content of the XML and the customer will not be updating their version of oracle soon. Is there another way around this problem ? -
Truncate Node: ORA-31167: XML nodes over 64K in size cannot be inserted
I'm trying to migrate from a mysql platform to oracle. Mostly because the spatial engine from mysql sucks.
I'm using Oracle-XE. I'm trying to import GeoCaching gpx files. The file contains 500 waypoints and one of the waypoints has a description greater than 64K. Since a palm pda can't handle that much text in CacheMate I'm fine with truncating the node.
Is there a way to tell XMLType to truncate any node over 64K?
Thanks.Hello,
I am also running into this problem using and Oracle 10.1.0.5 version of the database. Unfortunately I do not see our customer updating their version in the near future.
I am inserting customer data into a table with an XMLType column. There is currently no problem with inserting the data and as far as I can tell this data is not being truncated. However, when fetching this data I get the ORA-31167 error. It seems that when I execute the parser to fetch, using the extractvalue method to sort the result set based on nodes in the XMLType column.
My solutions seem limited as I must present the data in a user defined order, I can not change the content of the XML and the customer will not be updating their version of oracle soon. Is there another way around this problem ? -
ORA-31167: 64k size limit for XML node
Hi,
I have an application that archives XML documents provided by another organization. The other organization, a government regulatory body, controls the format and content of the documents. Many of the documents have large text nodes consisting of hundreds of kilobytes of CSV data.
This application was developed against Oracle 9i and runs fine on that product. Testing against Oracle 10g, I get "ORA-31167: XML nodes over 64K in size cannot be inserted".
As I read it, 64k is a fixed limit in Oracle10g. This limit did not seem to appear in Oracle9i however?
What are my options for upgrading this application to Oracle10g? I can think of:
1) Stay on 9i.
2) Mess around with the XML content. This kind of compromises the purpose of the application, which is to archive the documents unchanged.
3) Store the documents as CLOBs and forego the XML DB features.
4) Abandon Oracle and use another XML database???!
I've been really impressed with Oracle XML DB to date. I find this limitation quite hard to believe. I'm really hoping there is a simple alternative that I'm missing.
Any ideas?
John Hurst
Wellington, New ZealandI inherited an application that was developed against Oracle 9.2.0.8, and which was recently upgraded to Oracle 10.2.0.3. I get "ORA-31167: XML nodes over 64K in size cannot be inserted" on about 5% of the documents, unfortunately they are the most important documents.
Since the only data retrieval is with getCLOB(), I have attempted the xmlparse workaround xmlparse(DOCUMENT someCLOB WELLFORMED) yet still receive the ORA-31167 error.
@ After more deugging, the getXMLFromFile() causes the error not the insert, while a getFileContent()successfully completes.
Can you suggest another way to extract the values from the XML?
Any chance of a 10g patch for this limit?
Thanks,
Procedure SQL:
BEGIN
freeCLOBOnExit := tempCLOB IS NULL;
DBMS_LOB.createTemporary(tempCLOB, TRUE, DBMS_LOB.SESSION);
xmlFileContent := xdb_utilities.getXMLFromFile(fileName, directoryName, tempCLOB=>tempCLOB);
x_assetid := xmlFileContent.extract('/cds:document/cds:document-spec/cds:asset-id/text()', 'xmlns:cds="http://cds.central"').getStringVal();
x_sourceid := xmlFileContent.extract('/cds:document/cds:document-spec/cds:source-id/text()', 'xmlns:cds="http://cds.central"').getStringVal();
x_synopsis := xmlFileContent.extract('/cds:document/cds:document-spec/cds:synopsis/text()', 'xmlns:cds="http://cds.central"').getStringVal();
x_date := xmlFileContent.extract('/cds:document/cds:document-spec/cds:update-date/text()', 'xmlns:cds="http://cds.central"').getStringVal();
o_date := get_xml_date(x_date);
x_audience := xmlFileContent.extract('/cds:document/cds:document-spec/cds:audience/text()', 'xmlns:cds="http://cds.central"').getStringVal();
x_collection := xmlFileContent.extract('/cds:document/cds:document-spec/cds:collection-name/text()', 'xmlns:cds="http://cds.central"').getStringVal();
DELETE from INFODOC where asset_id = x_assetid;
INSERT INTO INFODOC VALUES( x_assetid, x_sourceid, x_synopsis, o_date, x_audience, x_collection, xmlparse(DOCUMENT tempCLOB WELLFORMED));
COMMIT;
IF (freeCLOBOnExit) THEN
dbms_lob.freeTemporary(tempCLOB);
ELSE
dbms_lob.trim(tempCLOB, 0);
END IF;
END;
Table DDL:
CREATE TABLE "SYSTEM"."INFODOC"
( "ASSET_ID" VARCHAR2(35 BYTE),
"SOURCE_ID" VARCHAR2(25 BYTE) NOT NULL ENABLE,
"SYNOPSIS" VARCHAR2(256 BYTE) NOT NULL ENABLE,
"UPDATE_DATE" DATE NOT NULL ENABLE,
"AUDIENCE" VARCHAR2(15 BYTE) NOT NULL ENABLE,
"COLLECTION_NAME" VARCHAR2(20 BYTE) NOT NULL ENABLE,
"XMLDOC" "SYS"."XMLTYPE" NOT NULL ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "INFODOC"
XMLTYPE COLUMN "XMLDOC" STORE AS CLOB (
TABLESPACE "INFODOC" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
NOCACHE LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)) ;
Message was edited by:
dauza
Message was edited by:
dauza -
HI,
Is 64k still the limit size for an XML NODE in oracle 10g version.
Thanks,You keep asking all these XML questions...
Have you considered asking on the XML DB forum?
XML DB
That's usually the best place for XML issues. -
Increase UDP sending size over 64k bytes and get error -113,sending buffer not enough
Dear all,
I have a case that I must send a data over 64k bytes in a socket with UDP . I got a error-113 shows "A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram was smaller than the datagram itself.".I searched for this issue and got the closest answer as below:
http://digital.ni.com/public.nsf/allkb/D5AC7E8AE545322D8625730100604F2D?OpenDocument
It said I have to change buffer size with Wsock.dll. I used the same mathod to increaes the send buffer to 131072 bytes by choice optionname to so_sndbuf (x1001) and give it value with 131072 and it worked fine without error. However I still got an error 113 while sending data with " UDP Write.vi ". It seems UDP write.vi reset the buffer size? Are there any other things cause the error?
I attached example code. In UDP Sender.vi you can see I change send buffer size to 131072 and send date included a 65536 bytes data.There is also a UDP receiver.vi and there is some missing VI which you can get from the LINK. But it's not necessary.
Attachments:
UDP Sender.vi 14 KB
UDP Receiver.vi 16 KB
UDP_set_send_buffer.vi 16 KBThe header for a UDP packet includes a 16 bit field that defines the size of the UDP message (HEADER AND DATA)
16 bits limits you to a total size of 65635 bytes, minus the header sizes; a minimum of 20 bytes are required to define an IP packet and 8 bytes for UDP leaving an effective data payload of 65507
bytes.
LabVIEW is not the issue...
http://en.wikipedia.org/wiki/User_Datagram_Protocol#Packet_structure
Now is the right time to use %^<%Y-%m-%dT%H:%M:%S%3uZ>T
If you don't hate time zones, you're not a real programmer.
"You are what you don't automate"
Inplaceness is synonymous with insidiousness -
Xs:group refs and "ORA-30936: Maximum number (1) of XML nodes exceeded'
We registered a subset of the IBM DITA schemas in Oracle XDB. These schemas contain a lot of xs:group definitions where references to these groups contain "minOccurs" and "maxOccurs" atttributes, for instance:
<xs:group name="category">
<xs:sequence>
<xs:element ref="category"/>
</xs:sequence>
</xs:group>
<xs:complexType name="metadata.class">
<xs:sequence>
<xs:group ref="audience" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="category" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="keywords" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="prodinfo" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="othermeta" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="mapkeyref" type="xs:string"/>
<xs:attributeGroup ref="global-atts"/>
<xs:attribute ref="class" default="- topic/metadata "/>
</xs:complexType>
When we create an instance document that contains more than one "category" element under the element "metadata" element, like:
<metadata>
<audience type="purchaser" othertype="" job="using" otherjob="" experiencelevel="general"/>
<category/>
<category/>
</metadata>
we get the error: ORA-30936: Maximum number (1) of 'category' XML node elements exceeded
This error is not consistent with the schema and XML parsers like Xerces and the Oracle "XDK parser" think the instance is fine.
When we skip the reference to the group and reference the element definition "category" directly the problem is gone:
<xs:complexType name="metadata.class">
<xs:sequence>
<xs:group ref="audience" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="category" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="keywords" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="prodinfo" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="othermeta" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="mapkeyref" type="xs:string"/>
<xs:attributeGroup ref="global-atts"/>
<xs:attribute ref="class" default="- topic/metadata "/>
</xs:complexType>
In this case the problems for the other group references like "audience" remain.
It looks like Oracle XDB doesn't honor the cardinality attributes "minOccurs" and "maxOccurs" on xs:group elements that are references. Does anyone experienced similar problems?
Thanks,
MaartenThis sounds like bug 5204107. You'll need to open a tar with Oracle Support if you need a fix for this..
It happens when a group is used once without a maxOccurs and then later with a maxOccurs.
The workaround is 'in-line' the group before registering the XML Schema. This can be done as follows (assuming the group definition and reference are in the same XML Schema)..
procedure expandGroup(xmlschema in out xmltype, groupName varchar2,xsdDirectory varchar2)
is
xsdSchemaPath varchar2(512);
groupModel xmltype;
sequenceModel xmlType := xmlType('<xsd:sequence ' || xdb_namespaces.XMLSCHEMA_PREFIX_XSD || '><xsd:sequence/></xsd:sequence>');
maxOccursValue binary_integer;
begin
-- FInd the Group Definition
if xmlSchema.existsNode('/xsd:schema//xsd:group[@ref="' || groupName || '"]',NAMESPACES) = 1 then
if xmlSchema.existsNode('/xsd:schema/xsd:group[@name="' || groupName || '"]',NAMESPACES) = 1 then
select extract
xmlSchema,
'/xsd:schema/xsd:group[@name="' || groupName || '"]',
NAMESPACES
into groupModel
from dual;
else
dbms_output.put_line('xsdDirectory = ' || xsdDirectory);
select PATH,
extract
CONTENTS,
'/xsd:schema/xsd:group[@name="' || groupName || '"]',
NAMESPACES
into xsdSchemaPath, groupModel
from (
select PATH, xdburitype(path).getXML() CONTENTS
from PATH_VIEW
where under_path(res,xsdDirectory) = 1
where existsNode
CONTENTS,
'/xsd:schema/xsd:group[@name="' || groupName || '"]',
NAMESPACES
) = 1;
dbms_output.put_line('Resolved ' || groupModel.extract('/xsd:group/@name',NAMESPACES).getStringVal() || ' in Schema ' || xsdSchemaPath);
end if;
if groupModel.existsNode('/xsd:group/xsd:annotation',NAMESPACES) = 1 then
select deleteXML
groupModel,
'/xsd:group/xsd:annotation',
NAMESPACES
into groupModel
from dual;
end if;
-- create a sequence that can be placed in-line in the XML Schema to replace the <group ref=""/>
groupModel := groupModel.extract('/xsd:group/*',NAMESPACES);
select updateXML
sequenceModel,
'/xsd:sequence/xsd:sequence',
groupModel,
NAMESPACES
into sequenceModel
from dual;
if xmlSchema.existsNode('/xsd:schema//xsd:group[@ref="' || groupName || '" and not(@maxOccurs)]',NAMESPACES) = 1 then
select updateXML
xmlSchema,
'/xsd:schema//xsd:group[@ref="' || groupName || '" and not(@maxOccurs)]',
sequenceModel,
NAMESPACES
into xmlSchema
from dual;
end if;
select insertChildXML
sequenceModel,
'/xsd:sequence',
'@maxOccurs',
'unbounded',
NAMESPACES
into sequenceModel
from dual;
if xmlSchema.existsNode('/xsd:schema//xsd:group[@ref="' || groupName || '" and @maxOccurs="unbounded"]',NAMESPACES) = 1 then
select updateXML
xmlSchema,
'/xsd:schema//xsd:group[@ref="' || groupName || '" and @maxOccurs="unbounded"]',
sequenceModel,
NAMESPACES
into xmlSchema
from dual;
end if;
while xmlschema.existsNode('/xsd:schema//xsd:group[@ref="' || groupName || '"]',NAMESPACES) = 1 loop
maxOccursValue := xmlSchema.extract('/xsd:schema//xsd:group[@ref="' || groupName || '"]/@maxOccurs').getNumberVal();
select updateXML
sequenceModel,
'/xsd:sequence/@maxOccurs',
maxOccursValue,
NAMESPACES
into sequenceModel
from dual;
select updateXML
xmlSchema,
'/xsd:schema//xsd:group[@ref="' || groupName || '" and @maxOccurs="' || maxOccursValue || '"]',
sequenceModel,
NAMESPACES
into xmlSchema
from dual;
end loop;
end if;
end;
-- -
TP Agreement Not Found -- OAGIS XML document over AS2
Hi,
I am getting TP Agreement not found error while receiving OAGIS XML document over AS2. Below is error message.
Agreement not found for trading partners: FromTP SOALocal, ToTP Powell with document type PROCESS_INVOICE_002-null-INBOUND
I am not sure why it says null-INBOUND. It appears like it is not able to identify Document Version. DOCTYPE_REVISION=7.2.1 is being passed in the AS2 transport headers but still it does not recognize the version.
I am not sure what is missing. Please give some ideas hints.
Below is the Business Message:----
Id AC12149513F1F78141400000E7DEDE00
Message Id AC12149513F1F78136200000E7DED800
Refer To Message Refer To Message
Sender Type AS2 Identifier
Sender Value SOALocal
Receiver Type AS2 Identifier
Receiver Value PowellIndustries
Sender SOALocal
Receiver Powell
Agreement Id
Agreement
Document Type PROCESS_INVOICE_002
Document Protocol OAG
Document Version 7.2.1
Message Type REQ
Direction INBOUND
State MSG_ERROR
Acknowledgement Mode NONE
Response Mode ASYNC
Send Time Stamp 06/07/2013 11:28:49 AM
Receive Time Stamp 06/07/2013 11:28:50 AM
Document Retry Interval(Channel) 0
Document Remaining Retry(Channel) 0
Document Retry Interval(Agreement)
Document Remaining Retry(Agreement)
Native Message Size 10788
Translated Message Size
Business Action Name
Business Transaction Name
Xpath Name1
Xpath Value1
Xpath Expression1
Xpath Name2
Xpath Value2
Xpath Expression2
Xpath Name3
Xpath Value3
Xpath Expression3
Correlation From XPath Name
Correlation From XPath Value
Correlation From XPath Expression
Correlation To XPath Name
Correlation To XPath Value
Correlation To XPath Expression
Wire Message Wire Message
Application Message Application Message
Payload Storage Payload Storage
Attachment Attachment
Label
Collaboration Id AC12149513F1F7813BF00000E7DEDB00
Collabration Name
Collabration Version
Business Action Name
Exchange Protocol Name AS2
Exchange Protocol Version 1.1
Interchange Control Number
Group Control Number
Transaction Set Control Number
Error Code B2B-50547
Error Description Machine Info: (pwl.pri) Agreement not found for trading partners: FromTP SOALocal, ToTP Powell with document type PROCESS_INVOICE_002-null-INBOUND.
Error Level ERROR_LEVEL_COLLABORATION
Error Severity ERROR
Error Text Agreement not found for trading partners: FromTP SOALocal, ToTP Powell with document type PROCESS_INVOICE_002-null-INBOUND.
Below is the Wire Message:----
Id AC12149513F1F78115400000E7DED600
Message Id AC12149513F1F78115400000E7DED600
Business Message AC12149513F1F78141400000E7DEDE00
Packed Message Packed Message
Payload Payload
Protocol Message Id <38383939373331343630313931303737@SOALocal>
Refer To Protocol Message Id
Protocol Collaboration Id
Protocol Transport Binding ChannelName=SOALocal dcID=CHANNEL_nlzbB-7511847722850817684 AS2-To=PowellIndustries DOCTYPE_NAME=PROCESS_INVOICE_002 TE=trailers, deflate, gzip, compress DOCTYPE_REVISION=7.2.1 Date=Fri, 07 Jun 2013 16:28:49 GMT AS2-Version=1.1 Accept-Encoding=gzip, x-gzip, compress, x-compress AS2-From=SOALocal url=http://pwl.pri/b2b/transportServlet Content-Transfer-Encoding=binary Message-ID=<38383939373331343630313931303737@SOALocal> Content-type=application/pkcs7-mime; smime-type="enveloped-data" MSG_RECEIVED_TIME=Fri Jun 07 11:28:49 CDT 2013 ECID-Context=1.71b9d2a41e5aaef0:-10db6371:13f1ee6cb74:-8000-000000000000276d;khvE MIME-version=1.0 tpName=PowellIndustries User-Agent=AS2 Server Oracle HTTPClient Version 10h Content-Length=13663 Host=pwl.pri:8001 Connection=close, TE useProxy=false From=SOALocal additionalHeaders=DOCTYPE_NAME=PROCESS_INVOICE_002#DOCTYPE_REVISION=7.2.1
Message Digest Message Digest
Digest Algorithm md5
Transport Protocol HTTP
Transport Protocol Version 1.1
Url http://pwl.pri:8001/b2b/transportServlet
security
Transport Headers ChannelName=SOALocal dcID=CHANNEL_nlzbB-7511847722850817684 AS2-To=PowellIndustries DOCTYPE_NAME=PROCESS_INVOICE_002 TE=trailers, deflate, gzip, compress DOCTYPE_REVISION=7.2.1 Date=Fri, 07 Jun 2013 16:28:49 GMT AS2-Version=1.1 Accept-Encoding=gzip, x-gzip, compress, x-compress AS2-From=SOALocal url=http://pwl.pri:8001/b2b/transportServlet Content-Transfer-Encoding=binary Message-ID=<38383939373331343630313931303737@SOALocal> Content-type=application/pkcs7-mime; smime-type="enveloped-data" MSG_RECEIVED_TIME=Fri Jun 07 11:28:49 CDT 2013 ECID-Context=1.71b9d2a41e5aaef0:-10db6371:13f1ee6cb74:-8000-000000000000276d;khvE MIME-version=1.0 tpName=PowellIndustries User-Agent=AS2 Server Oracle HTTPClient Version 10h Content-Length=13663 Host=pwl.pri:8001 Connection=close, TE useProxy=false From=SOALocal additionalHeaders=DOCTYPE_NAME=PROCESS_INVOICE_002#DOCTYPE_REVISION=7.2.1
certificates certificates
State ERROR
Reattempt Count
Error Code B2B-50547
Error Description Machine Info: (pwl.pri) Agreement not found for trading partners: FromTP SOALocal, ToTP Powell with document type PROCESS_INVOICE_002-null-INBOUND.
Error Text Agreement not found for trading partners: FromTP SOALocal, ToTP Powell with document type PROCESS_INVOICE_002-null-INBOUND.
exchangeRetryInterval
exchangeRemainingRetry
Message Size 10788
Thanks
Ismail M.Hi Anuj,
Here is the payload from the wire message. We are using 11.1.1.6.0
<?xml version = '1.0' encoding = 'UTF-8'?>
<PROCESS_INVOICE_002 xmlns="http://www.openapplications.org/171_process_invoice_002">
<CNTROLAREA xmlns="">
<BSR>
<VERB value="PROCESS">PROCESS</VERB>
<NOUN value="INVOICE">INVOICE</NOUN>
<REVISION value="002">002</REVISION>
</BSR>
<SENDER>
<LOGICALID>POWELLIND</LOGICALID>
<COMPONENT>B2B</COMPONENT>
<TASK/>
<REFERENCEID/>
<CONFIRMATION>0</CONFIRMATION>
<LANGUAGE>ENG</LANGUAGE>
<CODEPAGE/>
<AUTHID>oracle B2B</AUTHID>
</SENDER>
<DATETIME qualifier="CREATION">
<YEAR/>
<MONTH/>
<DAY/>
<HOUR/>
<MINUTE/>
<SECOND/>
<SUBSECOND/>
<TIMEZONE/>
</DATETIME>
</CNTROLAREA>
<DATAAREA xmlns="">
<PROCESS_INVOICE>
<INVHEADER>
<AMOUNT qualifier="DOCUMENT" type="T" index="1">
<VALUE>5413</VALUE>
<NUMOFDEC>2</NUMOFDEC>
<SIGN>+</SIGN>
<CURRENCY>USD</CURRENCY>
<DRCR>D</DRCR>
</AMOUNT>
<DATETIME qualifier="DOCUMENT" index="1">
<YEAR>2013</YEAR>
<MONTH>03</MONTH>
<DAY>15</DAY>
<HOUR>00</HOUR>
<MINUTE>00</MINUTE>
<SECOND>00</SECOND>
<SUBSECOND>0000</SUBSECOND>
<TIMEZONE>-0500</TIMEZONE>
</DATETIME>
<DOCUMENTID>1000182</DOCUMENTID>
<DESCRIPTN/>
<DOCTYPE/>
<PAYMETHOD/>
<REASONCODE/>
<USERAREA/>
<PARTNER>
<NAME index="1">Powell US Operating Unit</NAME>
<ONETIME/>
<PARTNRID/>
<PARTNRTYPE>Supplier</PARTNRTYPE>
<SYNCIND/>
<ACTIVE/>
<CURRENCY/>
<DESCRIPTN/>
<DUNSNUMBER/>
<GLENTITYS/>
<NAME index="1">Powell US Operating Unit</NAME>
<PARENTID/>
<PARTNRIDX/>
<PARTNRRATG/>
<PARTNRROLE/>
<PAYMETHOD/>
<TAXEXEMPT/>
<TAXID/>
<TERMID/>
<USERAREA/>
<CONTACT>
<NAME index="1">No Sales Credit</NAME>
<CONTCTTYPE/>
<DESCRIPTN/>
<EMAIL/>
<FAX index="1"/>
<TELEPHONE index="1"/>
<USERAREA/>
</CONTACT>
</PARTNER>
<PARTNER>
<NAME index="1">PO Box 843823, Dallas, Dallas, TX, 75284-3823, United States</NAME>
<ONETIME/>
<PARTNRID/>
<PARTNRTYPE>RemitTo</PARTNRTYPE>
<SYNCIND/>
<ACTIVE/>
<CURRENCY/>
<DESCRIPTN/>
<DUNSNUMBER/>
<GLENTITYS/>
<NAME index="1">PO Box 843823, Dallas, Dallas, TX, 75284-3823, United States</NAME>
<PARENTID/>
<PARTNRIDX/>
<PARTNRRATG/>
<PARTNRROLE/>
<PAYMETHOD/>
<TAXEXEMPT/>
<TAXID/>
<TERMID/>
<USERAREA/>
<ADDRESS>
<ADDRLINE index="1">PO Box 843823</ADDRLINE>
<ADDRTYPE/>
<CITY>Dallas</CITY>
<COUNTRY>United States</COUNTRY>
<COUNTY>Dallas</COUNTY>
<DESCRIPTN/>
<FAX index="1"/>
<POSTALCODE/>
<REGION/>
<STATEPROVN>TX</STATEPROVN>
<TAXJRSDCTN/>
<TELEPHONE index="1"/>
<URL/>
<USERAREA/>
</ADDRESS>
<CONTACT>
<NAME index="1"/>
<CONTCTTYPE/>
<DESCRIPTN/>
<EMAIL/>
<FAX index="1"/>
<TELEPHONE index="1"/>
<USERAREA/>
</CONTACT>
</PARTNER>
<PARTNER>
<NAME index="1"/>
<ONETIME/>
<PARTNRID/>
<PARTNRTYPE>Carrier</PARTNRTYPE>
<SYNCIND/>
<ACTIVE/>
<CURRENCY/>
<DESCRIPTN/>
<DUNSNUMBER/>
<GLENTITYS/>
<NAME index="1"/>
<PARENTID/>
<PARTNRIDX/>
<PARTNRRATG/>
<PARTNRROLE/>
<PAYMETHOD/>
<TAXEXEMPT/>
<TAXID/>
<TERMID/>
<USERAREA/>
<ADDRESS>
<ADDRLINE index="1"/>
<ADDRTYPE/>
<CITY/>
<COUNTRY/>
<COUNTY/>
<DESCRIPTN/>
<FAX index="1"/>
<POSTALCODE/>
<REGION/>
<STATEPROVN/>
<TAXJRSDCTN/>
<TELEPHONE index="1"/>
<URL/>
<USERAREA/>
</ADDRESS>
<CONTACT>
<NAME index="1"/>
<CONTCTTYPE/>
<DESCRIPTN/>
<EMAIL/>
<FAX index="1"/>
<TELEPHONE index="1"/>
<USERAREA/>
</CONTACT>
</PARTNER>
<DOCUMNTREF>
<DOCTYPE>INV</DOCTYPE>
<DOCUMENTID>10005:21009</DOCUMENTID>
<PARTNRID/>
<PARTNRTYPE>Supplier</PARTNRTYPE>
<DESCRIPTN/>
<DOCUMENTRV/>
<LINENUM/>
<NOTES index="1"/>
<SCHLINENUM/>
<SUBLINENUM/>
<USERAREA/>
</DOCUMNTREF>
<INVTAX>
<AMOUNT qualifier="TAX" type="T" index="1">
<VALUE>413</VALUE>
<NUMOFDEC>2</NUMOFDEC>
<SIGN>+</SIGN>
<CURRENCY>USD</CURRENCY>
<DRCR>D</DRCR>
</AMOUNT>
<AMOUNT qualifier="TAXBASE" type="T" index="1">
<VALUE>5413</VALUE>
<NUMOFDEC>2</NUMOFDEC>
<SIGN>+</SIGN>
<CURRENCY>USD</CURRENCY>
<DRCR>D</DRCR>
</AMOUNT>
<QUANTITY qualifier="PERCENT">
<VALUE/>
<NUMOFDEC/>
<SIGN/>
<UOM/>
</QUANTITY>
<DESCRIPTN/>
<LINENUM/>
<TAXCODE/>
<TAXJRSDCTN/>
<USERAREA/>
</INVTAX>
<PYMTTERM>
<AMOUNT qualifier="DISCNT" type="T" index="1">
<VALUE/>
<NUMOFDEC/>
<SIGN/>
<CURRENCY/>
<DRCR/>
</AMOUNT>
<DATETIME qualifier="DISCNT" index="1">
<YEAR/>
<MONTH/>
<DAY/>
<HOUR/>
<MINUTE/>
<SECOND/>
<SUBSECOND/>
<TIMEZONE/>
</DATETIME>
<DATETIME qualifier="DUE" index="1">
<YEAR>2013</YEAR>
<MONTH>04</MONTH>
<DAY>14</DAY>
<HOUR>00</HOUR>
<MINUTE>00</MINUTE>
<SECOND>00</SECOND>
<SUBSECOND>0000</SUBSECOND>
<TIMEZONE>-0500</TIMEZONE>
</DATETIME>
<DATETIME qualifier="PYMTTERM" index="1">
<YEAR>1952</YEAR>
<MONTH>01</MONTH>
<DAY>01</DAY>
<HOUR>00</HOUR>
<MINUTE>00</MINUTE>
<SECOND>00</SECOND>
<SUBSECOND>0000</SUBSECOND>
<TIMEZONE>-0600</TIMEZONE>
</DATETIME>
<DESCRIPTN>Net Due in 30 Days</DESCRIPTN>
<TERMID>30 NET</TERMID>
<USERAREA>
<AMOUNT qualifier="TOTAL" type="T" index="1">
<VALUE>5413</VALUE>
<NUMOFDEC>2</NUMOFDEC>
<SIGN>+</SIGN>
<CURRENCY/>
<DRCR>D</DRCR>
</AMOUNT>
</USERAREA>
</PYMTTERM>
</INVHEADER>
<INVLINE>
<AMOUNT qualifier="EXTENDED" type="T" index="1">
<VALUE>50</VALUE>
<NUMOFDEC/>
<SIGN>+</SIGN>
<CURRENCY/>
<DRCR>D</DRCR>
</AMOUNT>
<OPERAMT qualifier="UNIT" type="T">
<VALUE>5</VALUE>
<NUMOFDEC/>
<SIGN>+</SIGN>
<CURRENCY/>
<UOMVALUE>1</UOMVALUE>
<UOMNUMDEC>0</UOMNUMDEC>
<UOM/>
</OPERAMT>
<QUANTITY qualifier="ITEM">
<VALUE>10</VALUE>
<NUMOFDEC/>
<SIGN>+</SIGN>
<UOM/>
</QUANTITY>
<LINENUM>1</LINENUM>
<DESCRIPTN>11GA SHEET STEEL HOT ROLLED-PICKLED-OILED COMMERCIAL QUALITY.</DESCRIPTN>
<ITEM>11GA SHEET STEEL HOT ROLLED-PICKLED-OILED COMMERCIAL QUALITY.</ITEM>
<ITEMTYPE/>
<ITEMX>11HRPO</ITEMX>
<OPENITEM/>
<PROJACTVTY/>
<UNIT>LB</UNIT>
<UPC/>
<USERAREA/>
<DOCUMNTREF>
<DOCTYPE>LINE</DOCTYPE>
<DOCUMENTID>10005:21009:19019</DOCUMENTID>
<PARTNRID/>
<PARTNRTYPE>Supplier</PARTNRTYPE>
<DESCRIPTN/>
<USERAREA/>
</DOCUMNTREF>
<DOCUMNTREF>
<DOCTYPE>SalesOrder</DOCTYPE>
<DOCUMENTID>600813</DOCUMENTID>
<PARTNRID/>
<PARTNRTYPE/>
<DESCRIPTN/>
<USERAREA/>
</DOCUMNTREF>
<DOCUMNTREF>
<DOCTYPE>PurchaseOrder</DOCTYPE>
<DOCUMENTID>TEST123</DOCUMENTID>
<PARTNRID>N/A</PARTNRID>
<PARTNRTYPE>Customer</PARTNRTYPE>
<DESCRIPTN/>
<DOCUMENTRV/>
<LINENUM/>
<SCHLINENUM/>
</DOCUMNTREF>
</INVLINE>
</PROCESS_INVOICE>
</DATAAREA>
</PROCESS_INVOICE_002> -
ORA-31185 DOM NODES DO NOT BELONG TO THE SAME DOCUMENT
Hi all,
I developed an Oracle function that returns a XMLTYPE. In this function, I first created a node <ROOT> and I would like to append children nodes to this root node.
To create children nodes I loop on a cursor and each iteration of this loop "build" a XMLTYPE node. I would like append this XMLTYPE node to the root node but for now I get the ORA-31185 error !
Here is the code of my function (simplified version (without use of cursor)):
CREATE OR REPLACE
FUNCTION GET_MEDOC2 RETURN XMLTYPE IS
parent_document DBMS_XMLDOM.DOMDOCUMENT;
parent_rootnode DBMS_XMLDOM.DOMNODE;
child_document DBMS_XMLDOM.DOMDOCUMENT;
child_rootnode DBMS_XMLDOM.DOMNODE;
rootXML XMLTYPE;
subXML XMLTYPE;
countLOOP NUMBER;
BEGIN
SELECT XMLELEMENT("ROOT") INTO rootXML FROM DUAL;
parent_document := DBMS_XMLDOM.newDOMDocument(rootXML);
parent_rootnode := DBMS_XMLDOM.makeNode(DBMS_XMLDOM.getDocumentElement(parent_document));
FOR countLOOP IN 1..10 LOOP
SELECT XMLELEMENT("CHILD", countLOOP) INTO subXML FROM DUAL;
child_document := DBMS_XMLDOM.newDOMDocument(subXML);
child_rootnode := DBMS_XMLDOM.makeNode(DBMS_XMLDOM.getDocumentElement(child_document));
child_rootnode := DBMS_XMLDOM.appendchild(parent_rootnode, child_rootnode);
END LOOP;
RETURN rootXML;
END GET_MEDOC2;When I execute the following :
SELECT GET_MEDOC2() FROM DUAL;I get the beautiful ORA-31185 DOM NODES DO NOT BELONG TO THE SAME DOCUMENT
What I expect is an XML like this :
<ROOT>
<CHILD>1</CHILD>
<CHILD>2</CHILD>
<CHILD>3</CHILD>
<CHILD>4</CHILD>
<CHILD>5</CHILD>
<CHILD>6</CHILD>
<CHILD>7</CHILD>
<CHILD>8</CHILD>
<CHILD>9</CHILD>
<CHILD>10</CHILD>
</ROOT>Can someone help me please ? (I'm on Oracle 10.1.0.5.0)
ThanksHi,
I get the beautiful ORA-31185 DOM NODES DO NOT BELONG TO THE SAME DOCUMENTYou need function importNode (or adoptNode) to copy nodes across different documents.
But, do not use DOM manipulation in this case.
A single query using SQL/XML functions is certainly simpler and more performant :
SELECT XMLElement("ROOT",
XMLAgg(
XMLelement("CHILD",
XMLForest(
empno
, ename
) order by empno
) as result
FROM (
-- your query goes here, e.g. :
SELECT empno, ename
FROM scott.emp
<ROOT>
<CHILD>
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
</CHILD>
<CHILD>
<EMPNO>7499</EMPNO>
<ENAME>ALLEN</ENAME>
</CHILD>
<CHILD>
<EMPNO>7521</EMPNO>
<ENAME>WARD</ENAME>
</CHILD>
<CHILD>
<EMPNO>7566</EMPNO>
<ENAME>JONES</ENAME>
</CHILD>
<CHILD>
<EMPNO>7654</EMPNO>
<ENAME>MARTIN</ENAME>
</CHILD>
<CHILD>
<EMPNO>7698</EMPNO>
<ENAME>BLAKE</ENAME>
</CHILD>
<CHILD>
<EMPNO>7782</EMPNO>
<ENAME>CLARK</ENAME>
</CHILD>
<CHILD>
<EMPNO>7839</EMPNO>
<ENAME>KING</ENAME>
</CHILD>
<CHILD>
<EMPNO>7844</EMPNO>
<ENAME>TURNER</ENAME>
</CHILD>
<CHILD>
<EMPNO>7900</EMPNO>
<ENAME>JAMES</ENAME>
</CHILD>
<CHILD>
<EMPNO>7902</EMPNO>
<ENAME>FORD</ENAME>
</CHILD>
<CHILD>
<EMPNO>7934</EMPNO>
<ENAME>MILLER</ENAME>
</CHILD>
</ROOT> -
Upadting a XML node value to another table
Hi guys,
Can you please tell me, what is wrong with the below query
update csabcd cs set (cs.ELEMENT,cs.ELEMENT2,cs.ELEMENT3) =
(select x.* from abcde a, xmltable ('.' passing XMLTYPE(a.xml)
columns mort1 varchar2 (80) path '/alert/tab1/details/Element',
mort2 varchar2 (80) path '/alert/tab1/details/Element2',
mort3 varchar2 (80) path '/alert/tab1/details/Element3'
) x where cs.aid = a.aid);i get this error
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00229: input source is empty
Error at line 0
ORA-06512: at "SYS.XMLTYPE", line 254
ORA-06512: at line 1Edited by: Depakjan on Oct 21, 2010 1:35 PMWell from that sample, the XMLTABLE works ok...
SQL> ed
Wrote file afiedt.buf
1 with abcde as (select '<?xml version="1.0" encoding="UTF-8"?>
2 <alert>
3 <tab0 comment="section in XSL component" name="Initial Information">
4 <details>
5 <Priority>0001</Priority>
6 <DateVRUClaimInitiated>2010-06-29</DateVRUClaimInitiated>
7 </details>
8 <contacts comment="grid in XSL component">
9 many child nodes here
10 </contacts>
11 </tab0>
12 <tab1 comment="section in XSL component" name="Additional Information">
13 <details comment="list collection in XSL component">
14 <Channel1>123</Channel1>
15 <Element>1234</Element>
16 <Element2>1234</Element2>
17 <Element3>1234</Element3>
18 </details>
19 <IPAddresses>
20 Many child nodes here
21 </IPAddresses>
22 <ANIPhones>
23 Many child nodes here
24 </ANIPhones>
25 </tab1>
26 </alert>' as xml from dual)
27 --
28 --
29 --
30 select x.*
31 from abcde a
32 ,xmltable ('.'
33 passing xmltype(a.xml)
34 columns mort1 varchar2 (80) path '/alert/tab1/details/Element'
35 ,mort2 varchar2 (80) path '/alert/tab1/details/Element2'
36 ,mort3 varchar2 (80) path '/alert/tab1/details/Element3'
37* ) x
SQL> /
MORT1 MORT2 MORT3
1234 1234 1234
SQL>There must be something else in the XML that's causing the problem.
What happens if you just do:
select xmltype(xml) from abcde(add appropriate where clause for particular ID if necessary)
Is it able to convert the xml strings to xmltype ok? -
Convertion of XML node to string using Xquery transformation in OSB
How to convert XML node to string using a built in function using Xquery transformation in OSB? In BPEL we have the Xpath extension function ora:getContentAsString() to do the same.
fn:bea-serialize() function converts xml node to string. but it assigns namespace prefix in every xml node during the conversion. So is there any function to remove the namespace prefix from XML node using Xquery built in function?
-
How to binding incoming xml node list to the tree control as dataProvider
Recently, I faced into one issue: I want to binding incoming xml node (it's not avaliable at start) list to the tree control as a dataProvider.
Since the incoming xml node list is not avaliable at beginning but I needs to bind it to the tree, so I create one virtual one in the xml, and prepare to remove it before the tree is shown. (ready for the actual node adding). But It did not work.
Please see the presudo-code here:
1. Model layer(CsModel.as)
public class CsModel
[Bindable]
public var treeXML:XML=<nodes><car label="virtualOne" id="1">
</car></nodes>;
(Here, I want to build binding relationship on the <car/> node,
one 'virtual/stub' node is set here with lable="virtualOne".
But this node will be deleted after IdTree
control is created completely.)
[Bindable]
public var treeData:XMLList =new XMLListCollection(treeXML.car);
2. view layer(treePage.mxml)
private var _model:CsModel = new CsModel();
private function addNode():void
var newNode:XML=<car/>;
newNode.@label="newOne";
newNode.@id=1;
_model.treeXML.appendChild(newNode);
private function cleanData():void
delete _model.treeXML.car;
<mx:VBox height="100%" width="100%">
<mx:Button label="AddNode" click="addNode()" />
<mx:Tree id="IdTree" labelField="@label"
creationComplete="cleanData()"
dataProvider="{_model}"/>
</mx:VBox>
3. Top view layer (App.Mxml)
<mx:application>
<treePage />
</mx:application>
For method: cleanData(),It's expected that when the treePage is shown, we first delete the virutalOne to provide one 'clear' tree since we don't want show virtualOne to the user. The virutalOne node just for building the relationship between treeData and treeXML at beginning. But the side effect of this method, I found, is that the relationship between treeXML and treeData was cut off. And this leads to that when I added new node (by click the 'addNode' button) to the xmlXML, the xmlData was not affected at all !
So Is there any other way to solve this issue or bind the incoming xml node list to the xmlListCollection which will be used as Tree control's dataProvider ?If u want to display the name : value then u can do like this
<xsl:eval>this.selectSingleNode("name").nodeName</xsl:eval> : <xsl:value-of select="name" /> -
How do I open up a .7z file just over 1gb in size? I have just downloaded this as an upgrade from Adobe Photoshop Elements 8 to version 12. I cannot see any sign of the Akamai program on my computer that is supposed to open and install the two files that I downloaded.
Thanks Hans
I don’t mind mountain climbing but anything serious to do with a computer scares me silly.
I installed the 64 bit version of 7zip and once I figured out how to tell the computer to use the right application within that to open the 7zip file, the big file opened and I was able to apply the .exe file to get things going and installed. In the end the default location the installation chose was program files x86 which I think is the 32 bit folder but it all seems to be ok now.
Many thanks again for your response.
Cheers
Peter -
Calling Web Service from PL/SQL (ORA-31011: XML parsing failed)
hi all,
i want to invoke a web service from PL/SQL.
i found a soap_api package from "Tim Hall".
but it gives error in "ealtas.soap_api.invoke function"
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00007: unexpected end-of-file encountered
ORA-06512: at "SYS.XMLTYPE", line 48
ORA-06512: at "EALTAS.SOAP_API", line 135
ORA-06512: at line 44
set scan off;
declare
P_ADRES_WS VARCHAR2(100) := 'http://<host>:<port>/dswsbobje/qaawsservices/biws?wsdl=1&cuid=AVhBxL14I2dDjz8yFoznRLY';
P_ENVELOPE VARCHAR2(32767);
P_FNC VARCHAR2(256) := 'runQueryAsAService';
ol_req ealtas.soap_api.t_request;
ol_resp ealtas.soap_api.t_response;
message varchar2(500);
BEGIN
p_envelope := '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:db="DB_SUBS_BUDGET">
<soapenv:Body>
<db:runQueryAsAService>
<db:login>DWH_BO</db:login>
<db:password>Pass1234</db:password>
</db:runQueryAsAService>
</soapenv:Body>
</soapenv:Envelope>
ol_req := ealtas.soap_api.new_request(P_FNC, 'xmlns="'||P_ADRES_WS||'"');
ol_resp := ealtas.soap_api.invoke(ol_req, P_ADRES_WS, p_fnc,P_ENVELOPE);
ealtas.soap_api.show_envelope(p_envelope);
message := ealtas.soap_api.get_return_value(ol_resp, 'Db_Timeid', 'xmlns:m="'||P_ADRES_WS||'"');
DBMS_OUTPUT.PUT_LINE('AAAA -'||message);
end;
thanks.
ealtas.AlexAnd thanks for your help.
ACL is ok.
can you help me about how can i edit this function. i tried many times but i could not do it :( .
web service url : <host>:<port>/dswsbobje/qaawsservices/biws?WSDL=1&cuid=AVhBxL14I2dDjz8yFoznRLY
what must be these variables values ?
l_url :=
l_namespace :=
l_method :=
l_soap_action :=
l_result_name :=
this is the xml;
<?xml version="1.0" encoding="UTF-8" ?>
- <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="DB_SUBS_BUDGET" xmlns:tns1="dsws.businessobjects.com" targetNamespace="DB_SUBS_BUDGET" xmlns="http://schemas.xmlsoap.org/wsdl/" name="queryasaservice">
- <types>
- <s:schema elementFormDefault="qualified" targetNamespace="DB_SUBS_BUDGET">
- <s:element name="runQueryAsAService">
- <s:complexType>
- <s:sequence>
<s:element name="login" type="s:string" />
<s:element name="password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:complexType name="Row">
- <s:sequence>
<s:element name="Db_Timeid" type="s:string" nillable="true" />
<s:element name="Db_Tariff" type="s:string" nillable="true" />
<s:element name="Grossadds" type="s:double" nillable="true" />
<s:element name="Cancellations" type="s:double" nillable="true" />
<s:element name="Netadds" type="s:double" nillable="true" />
<s:element name="Subs" type="s:double" nillable="true" />
<s:element name="Churn_P" type="s:double" nillable="true" />
</s:sequence>
</s:complexType>
- <s:complexType name="Table">
- <s:sequence>
<s:element name="row" maxOccurs="unbounded" type="s0:Row" />
</s:sequence>
</s:complexType>
- <s:element name="runQueryAsAServiceResponse">
- <s:complexType>
- <s:sequence>
<s:element name="table" type="s0:Table" />
<s:element name="message" type="s:string" />
<s:element name="creatorname" type="s:string" />
<s:element name="creationdate" type="s:dateTime" />
<s:element name="creationdateformated" type="s:string" />
<s:element name="description" type="s:string" />
<s:element name="universe" type="s:string" />
<s:element name="queryruntime" type="s:int" />
<s:element name="fetchedrows" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="QaaWSHeader">
- <s:complexType>
- <s:sequence>
<s:element name="sessionID" type="s:string" minOccurs="0" maxOccurs="1" nillable="true" />
<s:element name="serializedSession" type="s:string" minOccurs="0" maxOccurs="1" nillable="true" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
- <message name="runQueryAsAServiceSoapIn">
<part name="parameters" element="s0:runQueryAsAService" />
<part name="request_header" element="s0:QaaWSHeader" />
</message>
- <message name="runQueryAsAServiceSoapOut">
<part name="parameters" element="s0:runQueryAsAServiceResponse" />
</message>
- <portType name="QueryAsAServiceSoap">
- <operation name="runQueryAsAService">
<documentation>Get Web Service Provider server info</documentation>
<input message="s0:runQueryAsAServiceSoapIn" />
<output message="s0:runQueryAsAServiceSoapOut" />
</operation>
</portType>
- <binding name="QueryAsAServiceSoap" type="s0:QueryAsAServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
- <operation name="runQueryAsAService">
<soap:operation soapAction="DB_SUBS_BUDGET/runQueryAsAService" style="document" />
- <input>
- <soap:header message="s0:runQueryAsAServiceSoapIn" part="request_header" use="literal">
<soap:headerfault message="s0:runQueryAsAServiceSoapIn" part="request_header" use="literal" />
</soap:header>
<soap:body use="literal" parts="parameters" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
</binding>
- <service name="DB_SUBS_BUDGET">
<documentation />
- <port name="QueryAsAServiceSoap" binding="s0:QueryAsAServiceSoap">
<soap:address location="http://<host>:<port>/dswsbobje/qaawsservices/queryasaservice?&cuid=AVhBxL14I2dDjz8yFoznRLY&authType=secEnterprise&locale=en_US&timeout=60&ConvertAnyType=false" />
</port>
</service>
</definitions> -
SQL Server Agent Failed to decrypt protected XML node
I'm getting the below error when trying to run sql server agent to run an SSIS package. I've updated folder security to allow sql server agent access, but cannot get the package to execute within SQL Management Studio. The package runs find in SSIS.
11.0.2100.60 for 64-bit Copyright (C) Microsoft Corporation. All rights reserved. Started: 12:12:00 PM Error: 2014-11-30 12:12:02.65 Code: 0xC0016016 Source: LoadStgProspects Description:
Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that
the correct key is available. End Error Error: 2014-11-30 12:12:03.88 Code: 0xC0016016 Source: LoadStgProspects Description: Failed to decrypt protected XML node "DTS:Password" with error
0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available. End Error Error: 2014-11-30
12:12:04.74 Code: 0xC0209303 Source: LoadStgProspects Connection manager "Excel Connection Manager" Description: The requested OLE DB provider Microsoft.Jet.OLEDB.4.0 is not registered. If the 64-bit driver
is not installed<c/> run the package in 32-bit mode. Error code: 0x00000000. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".
End Error Error: 2014-11-30 12:12:04.74 Code: 0xC020801C Source: Load prospect files Prospect xls [231] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection
method call to the connection manager "Excel Connection Manager" failed with error code 0xC0209303. There may be error messages posted before this with more information on why the AcquireConnection method call failed. End Error Error:
2014-11-30 12:12:04.74 Code: 0xC0047017 Source: Load prospect files SSIS.Pipeline Description: Prospect xls failed validation and returned error code 0xC020801C. End Error Error: 2014-11-30 12:12:04.74
Code: 0xC004700C Source: Load prospect files SSIS.Pipeline Description: One or more component failed validation. End Error Error: 2014-11-30 12:12:04.74 Code: 0xC0024107 Source:
Load prospect files Description: There were errors during task validation. End Error Error: 2014-11-30 12:12:04.74 Code: 0xC00220DE Source: LoadStgProspects Description: Error
0xC0012050 while loading package file "C:\Users\Jim\Documents\Visual Studio 2010\Projects\SSISTraining\SSISTraining\LoadStgProspects.dtsx". Package failed validation from the ExecutePackage task. The package cannot run. . End Error DTExec:
The package execution returned DTSER_FAILURE (1). Started: 12:12:00 PM Finished: 12:12:04 PM Elapsed: 4.337 seconds. The package execution failed. The step failed.,00:00:04,0,0,,,,0Hi selfdestruct80,
According to your description, you created SSIS package and it works fine. But you got the error message when the SSIS package was called from a SQL Server Agent job.
According to my knowledge, the package may not run in the following scenarios:
The current user cannot decrypt secrets from the package.
A SQL Server connection that uses integrated security fails because the current user does not have the required permissions.
File access fails because the current user does not have the required permissions to write to the file share that the connection manager accesses.
A registry-based SSIS package configuration uses the HKEY_CURRENT_USER registry keys. The HKEY_CURRENT_USER registry keys are user-specific.
A task or a connection manager requires that the current user account has correct permissions.
According to the error message, the SSIS Package ProtectionLevel property to EncryptSensitiveWithPassword as ArthurZ mentioned. To solve the problem, you need to go to Command Line tab, manually specify the paassword in SQL Agent Job with the command like below:
/FILE "\"C:\Users\xxxx\Documents\SQL Server Management Studio\SSIS\Package.dtsx\"" /DECRYPT somepassword /CHECKPOINTING OFF /REPORTING E
If you have any more questions, please feel free to ask.
Thanks,
Wendy Fu
Wendy Fu
TechNet Community Support
Maybe you are looking for
-
Question about Alert Framework in Solution Manager
Hi all, We are planning to use Solution Manager as Central Monitoring Server, so I want to know what the advantage to use Solution Manager is, especially in Alerting. We can define auto-reaction methods for monitors to send CCMS alerts to Alert Frame
-
I'm editing a band by deleting songs I do not like on iTunes on my PC. When I believe I'm deleting a song it ends up deleting ALL of the songs by that band (this is after I've deleted many individual songs sucessfully)! This has happened twice since
-
How do i delete all personal info on my macbook air before i sell it?
I`m about to sell my macbook air and want to delete all personal info on the computer (pictures, files, music and so on) how do I do this? Want the computer to start as it did when it was new... Regards Kris
-
Photoshop CS6 crashes when files with type are opened
I installed a bunch of fonts and ever since then Photoshop has been crashing. So I deleted all fonts except for the required system fonts I believe. Here is the most recent crash log: Process: Adobe Photoshop CS6 [539] Path: /Appli
-
Upgrade from OS 10.4.11 to OS X 5
Hi, I'm getting ready to upgrade to OS X.5. I have 4 gigs of memory and over 600 gigs of free HD space. I have a complete, bootable back-up. Everything is working fine. My question: Will doing an 'up-grade' work, or do I need to do an 'archive and in