[[11g] many XMLSCHEMA for a given binary XML table
Hi,
--1-----------------------------------
I cannot create a table associated with several xmlschemas.
create table "VALIDATE_XML_SCHEMA" of XMLTYPE
XMLTYPE STORE AS BASICFILE BINARY XML
XMLSCHEMAS (XMLSCHEMA "http://www.binary.com/root.xsd" ELEMENT "ROOT",
XMLSCHEMA "http://www.different.com/root.xsd" ELEMENT "ROOT") DISALLOW NONSCHEMA;
==> ORA 22853
Does this syntax is wrong?
--2----------------------------------
What about add and remove an existing associated xmlschma ?
ALTER table "VALIDATE_XML_SCHEMA"
REMOVE XMLSCHEMAS (XMLSCHEMA "http://www.different.com/root.xsd" ELEMENT "ROOT");
ALTER table "VALIDATE_XML_SCHEMA"
ADD XMLSCHEMAS (XMLSCHEMA "http://www.different.com/root.xsd" ELEMENT "ROOT") DISALLOW NONSCHEMA;
---------------------------------
OK, so here it goes ...
TEST1.xsd
<?xml version = "1.0" encoding = "UTF-8"?>
<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
elementFormDefault = "qualified">
<xsd:element name = "TEST1XML">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref = "ID"/>
<xsd:element ref = "Description"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name = "ID">
<xsd:simpleType>
<xsd:restriction base = "xsd:string">
<xsd:length value = "4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name = "Description">
<xsd:simpleType>
<xsd:restriction base = "xsd:string">
<xsd:maxLength value = "35"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:schema>TEST2.xsd
<?xml version = "1.0" encoding = "UTF-8"?>
<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
elementFormDefault = "qualified">
<xsd:element name = "TEST2XML">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref = "ID"/>
<xsd:element ref = "AccessedOn"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name = "ID">
<xsd:simpleType>
<xsd:restriction base = "xsd:string">
<xsd:length value = "4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name = "AccessedOn" type="xsd:dateTime" />
</xsd:schema>and the offending script
SET TIMING ON;
BEGIN
DBMS_XMLSCHEMA.REGISTERSCHEMA(
SCHEMAURL => 'http://localhost/xsd/TEST1.xsd',
SCHEMADOC => BFILENAME('XML_FILES_DIR','TEST1.xsd'),
LOCAL => TRUE,
GENTYPES => FALSE,
GENBEAN => FALSE,
GENTABLES => FALSE,
FORCE => FALSE,
CSID => NLS_CHARSET_ID('AL32UTF8'),
OPTIONS => DBMS_XMLSCHEMA.REGISTER_BINARYXML);
END;
BEGIN
DBMS_XMLSCHEMA.REGISTERSCHEMA(
SCHEMAURL => 'http://localhost/xsd/TEST2.xsd',
SCHEMADOC => BFILENAME('XML_FILES_DIR','TEST2.xsd'),
LOCAL => TRUE,
GENTYPES => FALSE,
GENBEAN => FALSE,
GENTABLES => FALSE,
FORCE => FALSE,
CSID => NLS_CHARSET_ID('AL32UTF8'),
OPTIONS => DBMS_XMLSCHEMA.REGISTER_BINARYXML);
END;
CREATE TABLE XML_TEST_TBL OF XMLTYPE
XMLTYPE STORE AS SECUREFILE BINARY XML
XMLSCHEMAS( XMLSCHEMA "http://localhost/xsd/TEST1.xsd" ELEMENT "TEST1XML",
XMLSCHEMA "http://localhost/xsd/TEST2.xsd" ELEMENT "TEST2XML")
DISALLOW NONSCHEMA;
COMMIT;After running the script, I get
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.45
PL/SQL procedure successfully completed.
Elapsed: 00:00:01.47
CREATE TABLE XML_TEST_TBL OF XMLTYPE
XMLTYPE STORE AS SECUREFILE BINARY XML
XMLSCHEMAS( XMLSCHEMA "http://localhost/xsd/TEST1.xsd" ELEMENT "TEST1XML",
XMLSCHEMA "http://localhost/xsd/TEST2.xsd" ELEMENT "TEST2XML")
DISALLOW NONSCHEMA
Error at line 28
ORA-22853: invalid LOB storage option specificationSo, I am indeed hitting the issue !
And to complement the posts made so far, all the other errors (ALTER TABLE syntax, multiple schemas for OBJECT RELATIONAL storage) mentioned still occur in 11.1.0.7 ....
Maybe Mark can advise on how to proceed with this. I must say though that I am not too happy creating SRs... It might give a bad impression about me AND about the product and that would be unfair on both counts.
Best Regards
Philip
Similar Messages
-
Migrate B-Tree Indexes of XML O-R Table to XMLIndex on Binary XML Table
We need slight help on how to migrate existing B-TREE Indexes from XML Obj-Rel Tables to XMLIndex on new XML Binary Tables
We use searches on Nested Collection Elements (defined unbounded in XSD)
and related DDL for XML Obj-Rel Tables is shown below:
CREATE TABLE TNMAB_AGREEMENT_XML
AGREEMENT_XML xmltype,
CREATE_BY VARCHAR2(15) NULL ,
CREATE_DT_GMT TIMESTAMP NULL ,
CREATE_CLIENT_ID VARCHAR2(65) NULL ,
UPDATE_BY VARCHAR2(15) NULL ,
UPDATE_DT_GMT TIMESTAMP NULL ,
UPDATE_CLIENT_ID VARCHAR2(65) NULL ,
PIC_VERSION_NUM NUMBER(20) NULL
XMLTYPE COLUMN AGREEMENT_XML XMLSCHEMA "AB_Agreement_V1_XMLDB.xsd" ELEMENT "Agreement"
VARRAY AGREEMENT_XML.XMLDATA."SHIPPING_PARTY_GROUPS"
STORE AS TABLE SHIPPING_PARTY_GROUPS_NT
(PRIMARY KEY (NESTED_TABLE_ID, ARRAY_INDEX) ENABLE)
VARRAY SHIPPING_PARTIES
STORE AS TABLE SHIPPING_PARTIES_NT
(PRIMARY KEY (NESTED_TABLE_ID, ARRAY_INDEX) ENABLE)
VARRAY AGREEMENT_XML.XMLDATA."SALES_OFFICE_CODES"."STRING_WRAPPERS"
STORE AS TABLE SALES_OFFICE_CODES_NT
(PRIMARY KEY (NESTED_TABLE_ID, ARRAY_INDEX) ENABLE)
TABLESPACE TNMAB_XMLDB_ME_DATA;
Table has PK and Unique Index which for the Binary XML Table, it will be setup on Virtual Columns (to enforce
Unique Constraints)
We have 6 more Normal Indexes on this Table, some created on Nested Elements as shown below:
-- 4 Normal B-TREE Indexes on Leaf level Elements
create index TNMAB_AGREEMENT_XML_IDX1 on TNMAB_AGREEMENT_XML (AGREEMENT_XML.XMLDATA."AGREEMENT_VERSION")
tablespace TNMAB_XMLDB_ME_INDX;
create index TNMAB_AGREEMENT_XML_IDX2 on TNMAB_AGREEMENT_XML (AGREEMENT_XML.XMLDATA."LAST_UPDATED_BY")
tablespace TNMAB_XMLDB_ME_INDX;
create index TNMAB_AGREEMENT_XML_IDX3 on TNMAB_AGREEMENT_XML (AGREEMENT_XML.XMLDATA."LAST_UPDATED")
tablespace TNMAB_XMLDB_ME_INDX;
create index TNMAB_AGREEMENT_XML_IDX4 on TNMAB_AGREEMENT_XML (AGREEMENT_XML.XMLDATA."CREATION_DATE")
tablespace TNMAB_XMLDB_ME_INDX;
--2 Indexes created on Nested Table (Collection)
create index TNMAB_AGREEMENT_XML_NT_IDX1 on SALES_OFFICE_CODES_NT NT(NT.STR_VAL, NT.NESTED_TABLE_ID)
tablespace TNMAB_XMLDB_ME_INDX;
create index TNMAB_AGREEMENT_XML_NT_IDX2 on SHIPPING_PARTIES_NT NT(NT.CUSTOMER_HOLDER.SAP_ID, NT.NESTED_TABLE_ID)
tablespace TNMAB_XMLDB_ME_INDX;
Could you please let us know how we should migrate above Indexes to XMLIndex format.
Specifically, not sure how the last 2 Indexes on Nested Tables is to be defined.
Any help or resources pointing to this would be greatly appreciated.
Thanks for the help,
AuroCan't tell due to using XMLDATA pseudocolumn. Would need a sample XML document structure that can be used to define the XPATH structure and ALSO need the database version you are using (ALL digits) to see if you would need / can use STRUCTURED or UNSTRUCTURED XMLINDEX indexes.
See the XML Index section (http://www.liberidu.com/blog/?page_id=441) on for guidance and/or of course the XMLDB Developers Guide for your database version
http://www.liberidu.com/blog/?page_id=441
XMLIndex (part 1) – The Concepts
XMLIndex (Part 2) – XMLIndex Path Subsetting
XMLIndex (Part 3) – XMLIndex Syntax Dissected
XMLIndex Performance and Fuzzy XPath Searches
Structured XMLIndex (Part 1) – Rules of Numb
Structured XMLIndex (Part 2) – Howto build a structured XMLIndex
Structured XMLIndex (Part 3) – Building Multiple XMLIndex Structures -
Why Isn't xmlindex being used in slow query on binary xml table eval?
I am running a slow simple query on Oracle database server 11.2.0.1 that is not using an xmlindex. Instead, a full table scan against the eval binary xml table occurs. Here is the query:
select -- /*+ NO_XMLINDEX_REWRITE no_parallel(eval)*/
defid from eval,
XMLTable(XMLNAMESPACES(DEFAULT 'http://www.cigna.com/acme/domains/eval/2010/03',
'http://www.cigna.com/acme/domains/derived/fact/2010/03' AS "ns7"),
'$doc/eval/derivedFacts/ns7:derivedFact' passing eval.object_value as "doc" columns defid varchar2(100) path 'ns7:defId'
) eval_xml
where eval_xml.defid in ('59543','55208'); The predicate is not selective at all - the returned row count is the same as the table row count (325,550 xml documents in the eval table). When different values are used bringing the row count down to ~ 33%, the xmlindex still isn't used - as would be expected in a purely relational nonXML environment.
My question is why would'nt the xmlindex be used in a fast full scan manner versus a full table scan traversing the xml in each eval table document record?
Would a FFS hint be applicable to an xmlindex domain-type index?
Here is the xmlindex definition:
CREATE INDEX "EVAL_XMLINDEX_IX" ON "EVAL" (OBJECT_VALUE)
INDEXTYPE IS "XDB"."XMLINDEX" PARAMETERS
('XMLTable eval_idx_tab XMLNamespaces(DEFAULT ''http://www.cigna.com/acme/domains/eval/2010/03'',
''http://www.cigna.com/acme/domains/derived/fact/2010/03'' AS "ns7"),''/eval''
COLUMNS defId VARCHAR2(100) path ''/derivedFacts/ns7:derivedFact/ns7:defId''');Here is the eval table definition:
CREATE
TABLE "N98991"."EVAL" OF XMLTYPE
CONSTRAINT "EVAL_ID_PK" PRIMARY KEY ("EVAL_ID") USING INDEX PCTFREE 10
INITRANS 4 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT
1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1
FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE
DEFAULT) TABLESPACE "ACME_DATA" ENABLE
XMLTYPE STORE AS SECUREFILE BINARY XML
TABLESPACE "ACME_DATA" ENABLE STORAGE IN ROW CHUNK 8192 CACHE NOCOMPRESS
KEEP_DUPLICATES STORAGE(INITIAL 106496 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT)
ALLOW NONSCHEMA ALLOW ANYSCHEMA VIRTUAL COLUMNS
"EVAL_DT" AS (SYS_EXTRACT_UTC(CAST(TO_TIMESTAMP_TZ(SYS_XQ_UPKXML2SQL(
SYS_XQEXVAL(XMLQUERY(
'declare default element namespace "http://www.cigna.com/acme/domains/eval/2010/03"; (::)
/eval/@eval_dt'
PASSING BY VALUE SYS_MAKEXML(128,"XMLDATA") RETURNING CONTENT ),0,0,
16777216,0),50,1,2),'SYYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM') AS TIMESTAMP
WITH
TIME ZONE))),
"EVAL_CAT" AS (CAST(SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(XMLQUERY(
'declare default element namespace "http://www.cigna.com/acme/domains/eval/2010/03";/eval/@category'
PASSING BY VALUE SYS_MAKEXML(128,"XMLDATA") RETURNING CONTENT ),0,0,
16777216,0),50,1,2) AS VARCHAR2(50))),
"ACME_MBR_ID" AS (CAST(SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(XMLQUERY(
'declare default element namespace "http://www.cigna.com/acme/domains/eval/2010/03";/eval/@acmeMemberId'
PASSING BY VALUE SYS_MAKEXML(128,"XMLDATA") RETURNING CONTENT ),0,0,
16777216,0),50,1,2) AS VARCHAR2(50))),
"EVAL_ID" AS (CAST(SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(XMLQUERY(
'declare default element namespace "http://www.cigna.com/acme/domains/eval/2010/03";/eval/@evalId'
PASSING BY VALUE SYS_MAKEXML(128,"XMLDATA") RETURNING CONTENT ),0,0,
16777216,0),50,1,2) AS VARCHAR2(50)))
PCTFREE 0 PCTUSED 80 INITRANS 4 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0
FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
TABLESPACE "ACME_DATA" ; Sample cleansed xml snippet:
<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?><eval createdById="xxxx" hhhhMemberId="37e6f05a-88dc-41e9-a8df-2a2ac6d822c9" category="eeeeeeee" eval_dt="2012-02-11T23:47:02.645Z" evalId="12e007f5-b7c3-4da2-b8b8-4bf066675d1a" xmlns="http://www.xxxxx.com/vvvv/domains/eval/2010/03" xmlns:ns2="http://www.cigna.com/nnnn/domains/derived/fact/2010/03" xmlns:ns3="http://www.xxxxx.com/vvvv/domains/common/2010/03">
<derivedFacts>
<ns2:derivedFact>
<ns2:defId>12345</ns2:defId>
<ns2:defUrn>urn:mmmmrunner:Medical:Definition:DerivedFact:52657:1</ns2:defUrn>
<ns2:factSource>tttt Member</ns2:factSource>
<ns2:origInferred_dt>2012-02-11T23:47:02.645Z</ns2:origInferred_dt>
<ns2:factValue>
<ns2:type>boolean</ns2:type>
<ns2:value>true</ns2:value>
</ns2:factValue>
</ns2:derivedFact>
<ns2:derivedFact>
<ns2:defId>52600</ns2:defId>
<ns2:defUrn>urn:ddddrunner:Medical:Definition:DerivedFact:52600:2</ns2:defUrn>
<ns2:factSource>cccc Member</ns2:factSource>
<ns2:origInferred_dt>2012-02-11T23:47:02.645Z</ns2:origInferred_dt>
<ns2:factValue>
<ns2:type>string</ns2:type>
<ns2:value>null</ns2:value>
</ns2:factValue>
</ns2:derivedFact>
<ns2:derivedFact>
<ns2:defId>59543</ns2:defId>
<ns2:defUrn>urn:ddddunner:Medical:Definition:DerivedFact:52599:1</ns2:defUrn>
<ns2:factSource>dddd Member</ns2:factSource>
<ns2:origInferred_dt>2012-02-11T23:47:02.645Z</ns2:origInferred_dt>
<ns2:factValue>
<ns2:type>string</ns2:type>
<ns2:value>INT</ns2:value>
</ns2:factValue>
</ns2:derivedFact>
With the repeating <ns2:derivedFact> element continuing under the <derivedFacts>The Oracle XML DB Developer's Guide 11g Release 2 isn't helping much...
Any assitance much appreciated.
Regards,
Rick Blanchardodie 63, et. al.;
Attached is the reworked select query, xmlindex, and 2ndary indexes. Note: though namespaces are used; we're not registering any schema defns.
SELECT /*+ NO_USE_HASH(eval) +/ --/*+ NO_QUERY_REWRITE no_parallel(eval)*/
eval_xml.eval_catt, df.defid FROM eval,
--df.defid FROM eval,
XMLTable(XMLNamespaces( DEFAULT 'http://www.cigna.com/acme/domains/eval/2010/03',
'http://www.cigna.com/acme/domains/derived/fact/2010/03' AS "ns7" ),
'/eval' passing eval.object_value
COLUMNS
eval_catt VARCHAR2(50) path '@category',
derivedFact XMLTYPE path '/derivedFacts/ns7:derivedFact')eval_xml,
XMLTable(XMLNamespaces('http://www.cigna.com/acme/domains/derived/fact/2010/03' AS "ns7",
DEFAULT 'http://www.cigna.com/acme/domains/eval/2010/03'),
'/ns7:derivedFact' passing eval_xml.derivedFact
COLUMNS
defid VARCHAR2(100) path 'ns7:defId') df
WHERE df.defid IN ('52657','52599') AND eval_xml.eval_catt LIKE 'external';
--where df.defid = '52657';
SELECT /*+ NO_USE_HASH(eval +/ --/*+ NO_QUERY_REWRITE no_parallel(eval)*/
eval_xml.eval_catt, df.defid FROM eval,
--df.defid FROM eval,
XMLTable(XMLNamespaces( DEFAULT 'http://www.cigna.com/acme/domains/eval/2010/03',
'http://www.cigna.com/acme/domains/derived/fact/2010/03' AS "ns7" ),
'/eval' passing eval.object_value
COLUMNS
eval_catt VARCHAR2(50) path '@category',
derivedFact XMLTYPE path '/derivedFacts/ns7:derivedFact')eval_xml,
XMLTable(XMLNamespaces('http://www.cigna.com/acme/domains/derived/fact/2010/03' AS "ns7",
DEFAULT 'http://www.cigna.com/acme/domains/eval/2010/03'),
'/ns7:derivedFact' passing eval_xml.derivedFact
COLUMNS
defid VARCHAR2(100) path 'ns7:defId') df
WHERE df.defid IN ('52657','52599') AND eval_xml.eval_catt LIKE 'external';
--where df.defid = '52657'; create index defid_2ndary_ix on eval_idx_tab_II (defID);
eval_catt VARCHAR2(50) path ''@CATEGORY''');
create index eval_catt_2ndary_ix on eval_idx_tab_I (eval_catt);The xmlindex is getting picked up but a couple of problesm:
1. In the developemnt environment, no xml source records for defid '52657' or '52599' are being displayed - just an empty output set occurs; in spite of these values being present and stored in the source xml.
This really has me stumped, as can query the eval table to see the actual xml defid vaues '52657' and '52599' exist. Something appears off with the query - which didn't return records even before the corrresponding xml index was created.
2. The query still performs slowly, in spite of using the xmlindex. The execution plan shows a full table scan of eval occurring whether or not a HASH JOIN or MERGE JOIN (gets used in place of the HASH JOIN when the NO_USE_HASH(eval) int is used.
3. Single column 2ndary indexes created respectively for eval_catt and defid are not used in the execution plan - which may be expected upon further consideration.
In the process of running stats at this moment, to see if performance improves....
At this point, really after why item '1.' is occurring?
Edited by: RickBlanchardSRSCigna on Apr 16, 2012 1:33 PM -
Errors creating indexes on Binary XML Tables
Hi,
Oracle details are as follows:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
"CORE 11.2.0.2.0 Production"
TNS for IBM/AIX RISC System/6000: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
I'm currently having an issue when attempting to create a suitable index on a binary xml table. I have a Binary xml table that stores a number of xml documents. I have created an index on this table as follows:
create index TEST_WQI_idx_1 on TEST_WEB_QUOTE_INDX1(OBJECT_VALUE)
INDEXTYPE IS XDB.XMLINDEX
PARAMETERS ('PATHS (INCLUDE
(/webPolicy/QuoteId))');
Querying the table with the following:
SQL> l
1 select xmlcast(xmlquery('/webPolicy/Sections/interopSection[1]/PolicyItems/item/Version/text()' PASSING OBJECT_VALUE RETURNING CONTENT)
2 as number) "VERSION",
3 xmlcast(xmlquery('/webPolicy/QuoteId/text()' PASSING OBJECT_VALUE RETURNING CONTENT)
4 as number) "QUOTEID"
5 FROM TEST_WEB_QUOTE_INDX1
6 where xmlcast(xmlquery('/webPolicy/QuoteId/text()' PASSING OBJECT_VALUE RETURNING CONTENT)
7* as number) = 22824
SQL> /
VERSION QUOTEID
1 22824
Execution Plan
Plan hash value: 3559428808
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 545 | 1071K| 1030 (1)| 00:00:19 |
| 1 | SORT AGGREGATE | | 1 | 3022 | | |
|* 2 | TABLE ACCESS BY INDEX ROWID | SYS895336_TEST_WQI__PATH_TABLE | 1 | 3022 | 2 (0)| 00:00:01 |
|* 3 | INDEX RANGE SCAN | SYS895336_TEST_WQI__PIKEY_IX | 1 | | 1 (0)| 00:00:01 |
|* 4 | FILTER | | | | | |
| 5 | TABLE ACCESS FULL | TEST_WEB_QUOTE_INDX1 | 545 | 1071K| 4 (0)| 00:00:01 |
| 6 | SORT AGGREGATE | | 1 | 3022 | | |
|* 7 | TABLE ACCESS BY INDEX ROWID| SYS895336_TEST_WQI__PATH_TABLE | 1 | 3022 | 2 (0)| 00:00:01 |
|* 8 | INDEX RANGE SCAN | SYS895336_TEST_WQI__PIKEY_IX | 1 | | 1 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - filter(SYS_XMLI_LOC_ISTEXT("SYS_P0"."LOCATOR","SYS_P0"."PATHID")=1)
3 - access("SYS_P0"."RID"=:B1 AND "SYS_P0"."PATHID"=HEXTORAW('5E6C') )
4 - filter(CAST( (SELECT "SYS"."STRAGG"("SYS_P2"."VALUE") FROM
"WEB_STAGING"."SYS895336_TEST_WQI__PATH_TABLE" "SYS_P2" WHERE "SYS_P2"."PATHID"=HEXTORAW('5E6C') AND
"SYS_P2"."RID"=:B1 AND SYS_XMLI_LOC_ISTEXT("SYS_P2"."LOCATOR","SYS_P2"."PATHID")=1) AS number)=22824)
7 - filter(SYS_XMLI_LOC_ISTEXT("SYS_P2"."LOCATOR","SYS_P2"."PATHID")=1)
8 - access("SYS_P2"."RID"=:B1 AND "SYS_P2"."PATHID"=HEXTORAW('5E6C') )
Note
- dynamic sampling used for this statement (level=2)
- Unoptimized XML construct detected (enable XMLOptimizationCheck for more information)
However, I also need to add an additional field to this index to allow appropriate queries against the data in the table, version number. This field can be seen from the statement above (VERSION) which runs OK and returns the data I’d expect. However, when I attempt to add this index using the following statement I get an error returned and the index becomes corrupted:
alter index TEST_WQI_idx_1 rebuild
parameters ('PATHS (INCLUDE ADD
(/webPolicy/Sections/interopSection[1]/PolicyItems/item/Version))');
After some investigation, the issue seems to revolve around the use of the [1] condition in the statement /interopSection[1]. I can create the index by removing the [1] condition, but this does not return the expected result. In actual fact, as there are 2 interopSection elements in the xml file, both with a version number of 1, the statement returns 11, which would appear to be the two version numbers concatenated together. I need to be able to reference the version number from the first interopSection in the queries against the table, and I need to be able to index this column correctly for performance issues.
I'm unsure why this xpath statement is not working correctly in the alter index statement, but returns ok when used within the query against the table and was wondering if you would be able to help me to have a working index against this element.
Thanks in advance for any help you can provide in relation to this.Sorry, here is the error:
Error starting at line 20 in command:
alter index TEST_WQI_idx_1 rebuild
parameters ('PATHS (INCLUDE ADD
(/webPolicy/Sections/interopSection[1]/PolicyItems/item/Version))')
Error report:
SQL Error: ORA-29858: error occurred in the execution of ODCIINDEXALTER routine
ORA-64131: XMLIndex Metadata: failure during the looking up of the dictionary
ORA-30968: invalid XPATH or NAMESPACE option for XML Index
29858. 00000 - "error occurred in the execution of ODCIINDEXALTER routine"
*Cause: Failed to successfully execute the ODCIIndexAlter routine.
*Action: Check to see if the routine has been coded correctly. -
[11g] adding a virtual col to a binary XML table?
Hi
Is it possible to add a virtual col to an existing binay XML table ?
CREATE TABLE compagnie_binaryXML OF XMLType
XMLTYPE STORE AS BINARY XML
VIRTUAL COLUMNS
(vircolcomp AS (EXTRACTVALUE(OBJECT_VALUE,'/compagnie/comp')),
vircolnomcomp AS (EXTRACTVALUE(OBJECT_VALUE,'/compagnie/nomComp')),
vircolnompil AS (EXTRACTVALUE(OBJECT_VALUE,'/compagnie/pilotes/pilote/nom')),
vircolbrevpil AS (EXTRACTVALUE(OBJECT_VALUE,'/compagnie/pilotes/pilote/@brevet')));
OK, but
ALTER TABLE compagnie_binaryXML ADD vircolsalpil AS (EXTRACTVALUE(OBJECT_VALUE,'/compagnie/pilotes/pilote/s
alaire'));
ORA-22856: impossible d'ajouter des colonnes à des tables objetHi
IMHO this has nothing to do with XMLType... They simply forget to change the checks performed before adding a column... In fact, this is a "known problem" with object tables.
SQL> create type ttt as object (n number);
2 /
SQL> create table t of ttt;
SQL> alter table t add v as (to_char(n));
alter table t add v as (to_char(n))
ERROR at line 1:
ORA-22856: cannot add columns to object tables
oracle@helicon:~/ [DBA11106] oerr ora 22856
22856, 00000, "cannot add columns to object tables"
// *Cause: An attempt was made to add columns to an object table. Object
// tables cannot be altered to add columns since its
// definition is based on an object type.
// *Action: Create a new type with additional attributes, and use the new
// type to create an object table. The new object table will have
// the desired columns.In summary, I would open an SR and let fix the problem.
HTH
Chris -
Add a unique constraint on binary XML table
How add a unique constraint of "brevet" field?
The following INSERT failed
SQL Error: ORA-19025: EXTRACTVALUE renvoie la valeur d'un seul noeud
19025. 00000 - "EXTRACTVALUE returns value of only one node"
If the ALTER is made after the INSERT is done, INSERT is valid but ALTER failed with the same error message!
/* copy the file compavions.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<compagnie>
<comp>AB</comp>
<flotte>
<avion immat="F-WTSS" capacite="90">
<typeAv>Concorde</typeAv>
</avion>
<avion immat="F-GFDR" capacite="145">
<typeAv>A320</typeAv>
</avion>
<avion immat="F-GTYA" capacite="150">
<typeAv>A320</typeAv>
</avion>
</flotte>
<nomComp>Air Blagnac</nomComp>
<pilotes>
<pilote>
<brevet>PL-1</brevet>
<nom>C. Sigaudes</nom>
</pilote>
<pilote>
<brevet>PL-2</brevet>
<nom>P. Filloux</nom>
</pilote>
</pilotes>
</compagnie>
in C:\...
--DROP DIRECTORY repxml;
--CREATE DIRECTORY repxml AS 'C:\...';
DROP TABLE pilote_binary_xml5;
CREATE TABLE pilote_binary_xml5 OF XMLType
XMLTYPE STORE AS BINARY XML
VIRTUAL COLUMNS
(col AS (EXTRACTVALUE(OBJECT_VALUE, '/compagnie/pilotes/pilote/brevet')));
ALTER TABLE pilote_binary_xml5 ADD CONSTRAINT brevet_unique UNIQUE (col);
INSERT INTO pilote_binary_xml5 VALUES (XMLType(BFILENAME ('REPXML','compavions.xml'), NLS_CHARSET_ID ('AL32UTF8')));
--ALTER TABLE pilote_binary_xml5 ADD CONSTRAINT brevet_unique UNIQUE (col);You could try something like
(extract(OBJECT_VALUE,compagnie/pilotes/pilote/brevet').getStringVal());
but this is probably unadvisable.
I suggest an alternative is for you to look at XMLINDEX so that you can bring the 'proper' XML functions into play like XMLTABLE etc. -
Cannot display complete document in binary XML XMLType column
I've been trying to get a query to work that will display the complete XML document stored in a column of XMLType, binary XML storage.
<b/>
I"m using Toad 10.6.1.3.
<b/>
I'm running Oracle client:
{code}Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production{code}
<b/>
The table is defined:
{code}CREATE TABLE AUDITED_EVENT_XML_MIN (
AUDITED_EVENT_XML_PK_ID NUMBER(10) PRIMARY KEY,
/* The time the audit record was created. */
CREATED_TIME TIMESTAMP(6) WITH LOCAL TIME ZONE NOT NULL,
/* Well-formed XML message */
XML_EVENT_CONTENT XMLType
XMLTYPE COLUMN "XML_EVENT_CONTENT" STORE AS BINARY XML;
{code}
<b/>
The XML has no namespace. The SQL that I tried is:
{code}select e.xml_event_content.extract('/') from AUDITED_EVENT_XML e;{code}
<b/>
I also tried a simpler approach.
{code}select * from AUDITED_EVENT_XML e;{code}
<b/>
and got this error:
{code}ORA-21500: internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]{code}
<b/>
I'm a newbie; I'm sure there is a simple way to do this; but I can't find it in the Oracle XML DB Developers Guide.
It would also be helpful to know how to do this for documents that have a declared namespace (without a xsd schema)...
Thanks in advance...
Edited by: flyeagle5683 on Sep 4, 2012 3:18 PMWhen ran from the Command window in PL/SQL Developer
Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0
SQL>
SQL> CREATE TABLE AUDITED_EVENT_XML_MIN (
2 AUDITED_EVENT_XML_PK_ID NUMBER(10) PRIMARY KEY,
3 /* The time the audit record was created. */
4 CREATED_TIME TIMESTAMP(6) WITH LOCAL TIME ZONE NOT NULL,
5 /* Well-formed XML message */
6 XML_EVENT_CONTENT XMLType
7 )
8 XMLTYPE COLUMN "XML_EVENT_CONTENT" STORE AS BINARY XML;
Table created
SQL> insert into audited_event_xml_min values (1, systimestamp, xmltype('<root><child1>Val1</child1></root>'));
1 row inserted
SQL> commit;
Commit complete
SQL> select * from AUDITED_EVENT_XML_MIN e;
AUDITED_EVENT_XML_PK_ID CREATED_TIME XML_EVENT_CONTENT
1 05-SEP-12 09.24.36.546435 AM <root>
<child1>Val1</child1>
</root>
SQL> select e.xml_event_content.extract('/') from AUDITED_EVENT_XML_MIN e;
E.XML_EVENT_CONTENT.EXTRACT('/
<root>
<child1>Val1</child1>
</root>
SQL> I also ran the two SELECT statements from SQL*Plus, (11.2.0.3 32-bit Instant Client) and received the exact same results.
I'm guessing your version of Toad (or something between it and the DB) does not like XMLType data types being returned.
Try
select e.xml_event_content.extract('/').getStringVal() from AUDITED_EVENT_XML_MIN e;or .getClobVal() if the XML is large and see what happens. -
Online Redefinition of Binary XML column not possible?
DB version 11.2.0.1 x64 (still working on upgrading to 11.2.0.3)
create table redef_test (
id number(19,0) not null,
xml XMLType,
primary key (id)
XMLTYPE COLUMN "XML" STORE AS CLOB;
table REDEF_TEST created.
exec dbms_redefinition.can_redef_table( 'USER', 'redef_test' );
anonymous block completed
drop table redef_test;
create table redef_test (
id number(19,0) not null,
xml XMLType,
primary key (id)
XMLTYPE COLUMN "XML" STORE AS BINARY XML;
table REDEF_TEST dropped.
table REDEF_TEST created.
exec dbms_redefinition.can_redef_table( 'USER', 'redef_test' );
Error starting at line 1 in command:
exec dbms_redefinition.can_redef_table( 'USER', 'redef_test' )
Error report:
ORA-12090: Kan de tabel "USER"."REDEF_TEST" online niet opnieuw definiëren.
ORA-06512: in "SYS.DBMS_REDEFINITION", regel 139
ORA-06512: in "SYS.DBMS_REDEFINITION", regel 1782
ORA-06512: in regel 1
12090. 00000 - "cannot online redefine table \"%s\".\"%s\""
*Cause: An attempt was made to online redefine a table that is either a
clustered table, AQ table, temporary table, IOT overflow table
or table with FGA/RLS enabled.
*Action: Do not attempt to online redefine a table that is a
clustered table, AQ table, temporary table, IOT overflow table
or table with FGA/RLS enabled.Also came across ORA-42040 on the internet while searching for a solution:
ORA-42040 cannot online redefine table "string"."string" with column of binary XML type
Cause: Do not attempt to online redefine a table with a column of binary XML type.
Action: An attempt was made to redefine a table with a column of binary XML type.
Why this limitation to binary xml? I was under the impression that binary xml was put forward by oracle as the 'format of the future'; yet an important feature as online redefinition cannot be used anymore it seems.
My reason for this question: I have a table that should have been partitioned (based on a virtual column derived from an xpath in the xml column) but isn't at this moment. I'm trying to use online redefinition to partition the existing table, but all the suggested ways of doing this don't seem to work.
Another thing i tried was a 'CTAS', but those seem to have problems with virtual columns.
CREATE TABLE d_new (
id,
xml,
PRIMARY KEY (id)
XMLTYPE COLUMN xml STORE AS SECUREFILE BINARY XML
VIRTUAL COLUMNS
timestamp AS (TO_TIMESTAMP(extractvalue(xml,'/e:d/c:dHeader/c:creationTime',
'xmlns:e="http://www.example.com/myproject/schema/e/nl"
xmlns:c="http://www.example.com/myunidoc/schema/common"'),'YYYY-MM-DD"T"HH24:MI:SS'))
PARTITION BY RANGE (timestamp)
PARTITION p2010_09 VALUES LESS THAN (TO_DATE('1-10-2010','DD-MM-YYYY')),
PARTITION p2012_05 VALUES LESS THAN (TO_DATE('1-6-2012','DD-MM-YYYY')),
PARTITION px VALUES LESS THAN (MAXVALUE)
as
select id,xml from d_table;
Error at Command Line:40 Column:19
Error report:
SQL Error: ORA-54014: De resultatentabel van een CTAS-bewerking bevat een of meer virtuele kolommen.I would have tested it myself but my current version (11.2.0.3) has a bug regarding virtual columns...
One thing you can try is :
1) Create your new empty partitioned table (D_NEW) with only one partition
2) Perform an ALTER TABLE EXCHANGE PARTITION between old and new tables
3) Drop old table
4) SPLIT PARTITIONs on the new table -
[11g] XML Schema full validation with binary XML ?
Hi,
Oracle's doc quotes " Loading XML data into XML schema-based binary XML storage causes full validation against the target XML schemas. ".
After registering this XML Schema which indicates that a company must have at least a code, name and pilotes element :
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb"
xdb:storeVarrayAsTable="true" version="1.0">
<xsd:element name="compagnie" type="compagnieType"/>
<xsd:complexType name="compagnieType">
<xsd:sequence>
<xsd:element name="comp" type="compType" minOccurs="1" xdb:SQLName="COMP"/>
<xsd:element name="pilotes" type="pilotesType" minOccurs="1" xdb:SQLName="PILOTES"/>
<xsd:element name="nomComp" type="nomCompType" minOccurs="1" xdb:SQLName="NOMCOMP"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="pilotesType">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="unbounded"
name="pilote" type="piloteType" xdb:SQLName="PILOTE"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="piloteType">
<xsd:sequence>
<xsd:element name="nom" type="nomType" xdb:SQLName="NOM"/>
<xsd:element name="salaire" type="salaireType" minOccurs="0"
xdb:SQLName="SALAIRE"/>
</xsd:sequence>
<xsd:attribute name="brevet" xdb:SQLName="BREVET">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
I can therefore insert a row no valid into this table
CREATE TABLE compagnie_binaryXML_grammaire OF XMLType
XMLTYPE STORE AS BINARY XML
XMLSCHEMA "http://www.soutou.net/compagnies3.xsd"
ELEMENT "compagnie"
ALLOW NONSCHEMA
VIRTUAL COLUMNS (vircolcomp AS (EXTRACTVALUE(OBJECT_VALUE,'/compagnie/comp')));
SQL> INSERT INTO compagnie_binaryXML_grammaire VALUES
2 (XMLTYPE.CREATEXML('<?xml version="1.0" encoding="ISO-8859-1"?>
3 <compagnie>
4 <pilotes></pilotes>
5 <nomComp>No pilot and no comp!</nomComp>
6 </compagnie>').CREATESCHEMABASEDXML('http://www.soutou.net/compagnies3.xsd'
1 ligne crÚÚe.
Unless the following instruction is done, no valid XML file can be added.
ALTER TABLE compagnie_binaryXML_grammaire
ADD CONSTRAINT valide_compagniebinaryXML
CHECK (XMLIsValid(OBJECT_VALUE) = 1);
Where is the difference between the behaviour of an object-relational table ?My guess is that the virtual column spoils the soup (could you check).
The following works for me on 11.1.0.6.0.
connect / as sysdba
drop user test cascade;
create user test identified by test;
grant xdbadmin, dba to test;
connect test/test
spool encoding_test01.txt
var schemaPath varchar2(256)
var schemaURL varchar2(256)
set long 100000000
col SCHEMA_URL FOR a60
col object_name for a50
select * from v$version;
purge recyclebin;
alter session set recyclebin=OFF;
drop table VALIDATE_XML_SCHEMA;
prompt Create Folder for TEST schema, user
declare
retb boolean;
begin
retb := dbms_xdb.createfolder('/test');
end;
prompt =================================================================
prompt Register Relational XML SChema
prompt =================================================================
prompt XML SChema
begin
:schemaURL := 'http://www.relational.com/root.xsd';
:schemaPath := '/test/root_relational.xsd';
end;
prompt Cleaning up
call DBMS_XMLSCHEMA.deleteSchema(:schemaURL,4);
commit;
prompt XSD Schema
declare
res boolean;
xmlSchema xmlType := xmlType(
'<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb"
xmlns="http://www.relational.com/root.xsd" targetNamespace="http://www.relational.com/root.xsd"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xdb:storeVarrayAsTable="true">
<xs:element name="ROOT" xdb:defaultTable="ROOT_TABLE" xdb:maintainDOM="false">
<xs:annotation>
<xs:documentation>Example XML Schema</xs:documentation>
</xs:annotation>
<xs:complexType xdb:maintainDOM="false">
<xs:sequence>
<xs:element name="ID" type="xs:integer" xdb:SQLName="ID"/>
<xs:element ref="INFO"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="INFO" xdb:SQLName="INFO_TYPE">
<xs:complexType xdb:maintainDOM="false">
<xs:sequence>
<xs:element name="INFO_ID" type="xs:integer" xdb:SQLName="TYPE_INFO_ID"/>
<xs:element name="INFO_CONTENT"
xdb:SQLName="TYPE_INFO_CONTENT" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>');
begin
if (dbms_xdb.existsResource(:schemaPath)) then
dbms_xdb.deleteResource(:schemaPath);
end if;
res := dbms_xdb.createResource(:schemaPath,xmlSchema);
end;
alter session set events='31098 trace name context forever';
BEGIN
DBMS_XMLSCHEMA.registerSchema
(SCHEMAURL => :schemaURL,
SCHEMADOC => xdbURIType(:schemaPath).getClob(),
LOCAL => TRUE, -- local
GENTYPES => FALSE, -- generate object types
GENBEAN => FALSE, -- no java beans
GENTABLES => FALSE, -- generate object tables
OWNER => USER);
END;
commit;
prompt =================================================================
prompt Register Binary XML SChema
prompt =================================================================
prompt XML SChema
begin
:schemaURL := 'http://www.binary.com/root.xsd';
:schemaPath := '/test/root_binary.xsd';
end;
prompt Cleaning up
call DBMS_XMLSCHEMA.deleteSchema(:schemaURL,4);
commit;
prompt XSD Schema
declare
res boolean;
xmlSchema xmlType := xmlType(
'<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb"
xmlns="http://www.binary.com/root.xsd" targetNamespace="http://www.binary.com/root.xsd"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xdb:storeVarrayAsTable="true">
<xs:element name="ROOT" xdb:defaultTable="ROOT_TABLE" xdb:maintainDOM="false">
<xs:annotation>
<xs:documentation>Example XML Schema</xs:documentation>
</xs:annotation>
<xs:complexType xdb:maintainDOM="false">
<xs:sequence>
<xs:element name="ID" type="xs:integer" xdb:SQLName="ID"/>
<xs:element ref="INFO"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="INFO" xdb:SQLName="INFO_TYPE">
<xs:complexType xdb:maintainDOM="false">
<xs:sequence>
<xs:element name="INFO_ID" type="xs:integer" xdb:SQLName="TYPE_INFO_ID"/>
<xs:element name="INFO_CONTENT"
xdb:SQLName="TYPE_INFO_CONTENT" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>');
begin
if (dbms_xdb.existsResource(:schemaPath)) then
dbms_xdb.deleteResource(:schemaPath);
end if;
res := dbms_xdb.createResource(:schemaPath,xmlSchema);
end;
alter session set events='31098 trace name context forever';
BEGIN
DBMS_XMLSCHEMA.registerSchema
(SCHEMAURL => :schemaURL,
SCHEMADOC => xdbURIType(:schemaPath).getClob(),
LOCAL => TRUE, -- local
GENTYPES => FALSE, -- generate object types
GENBEAN => FALSE, -- no java beans
GENTABLES => FALSE, -- generate object tables
OPTIONS => DBMS_XMLSCHEMA.REGISTER_BINARYXML,
OWNER => USER);
END;
commit;
prompt =================================================================
prompt Register SECOND Binary XML SChema
prompt =================================================================
prompt XML SChema
begin
:schemaURL := 'http://www.different.com/roots.xsd';
:schemaPath := '/test/roots.xsd';
end;
prompt Cleaning up
call DBMS_XMLSCHEMA.deleteSchema(:schemaURL,4);
commit;
prompt XSD Schema
declare
res boolean;
xmlSchema xmlType := xmlType(
'<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb"
xmlns="http://www.different.com/roots.xsd" targetNamespace="http://www.different.com/roots.xsd"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xdb:storeVarrayAsTable="true">
<xs:element name="ROOTS" xdb:maintainDOM="false">
<xs:annotation>
<xs:documentation>Example XML Schema</xs:documentation>
</xs:annotation>
<xs:complexType xdb:maintainDOM="false">
<xs:sequence>
<xs:element name="ID" type="xs:integer" xdb:SQLName="ID"/>
<xs:element ref="INFO"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="INFO" xdb:SQLName="INFO_TYPE">
<xs:complexType xdb:maintainDOM="false">
<xs:sequence>
<xs:element name="INFO_ID" type="xs:integer" xdb:SQLName="TYPE_INFO_ID"/>
<xs:element name="INFO_CONTENT"
xdb:SQLName="TYPE_INFO_CONTENT" type="xs:string"/>
</xs:sequence> </xs:complexType>
</xs:element>
</xs:schema>');
begin
if (dbms_xdb.existsResource(:schemaPath)) then
dbms_xdb.deleteResource(:schemaPath);
end if;
res := dbms_xdb.createResource(:schemaPath,xmlSchema);
end;
alter session set events='31098 trace name context forever';
BEGIN
DBMS_XMLSCHEMA.registerSchema
(SCHEMAURL => :schemaURL,
SCHEMADOC => xdbURIType(:schemaPath).getClob(),
LOCAL => TRUE, -- local
GENTYPES => FALSE, -- generate object types
GENBEAN => FALSE, -- no java beans
GENTABLES => FALSE, -- generate object tables
OPTIONS => DBMS_XMLSCHEMA.REGISTER_BINARYXML,
OWNER => USER);
END;
commit;
prompt =================================================================
prompt END Registration Process
prompt =================================================================
select xmlType(xdbURIType ('/test/root.xsd').getClob())
from dual;
alter session set events='31098 trace name context forever';
select schema_url, binary
from user_xml_schemas;
select * from tab;
select object_name, object_type from user_objects;
prompt =================================================================
prompt BASICFILE - XMLSCHEMA (default) - DISALLOW NONSCHEMA
prompt =================================================================
drop table "VALIDATE_XML_SCHEMA";
create table "VALIDATE_XML_SCHEMA" of XMLTYPE
XMLTYPE STORE AS BASICFILE BINARY XML
XMLSCHEMA "http://www.binary.com/root.xsd"
ELEMENT "ROOT";
prompt No schema defined
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
prompt Bogus, noexistent schema defined
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns="http://www.bogus.com/root.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
prompt Binary schema defined
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns="http://www.binary.com/root.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
prompt Binary schema with different location path
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOTS xmlns="http://www.different.com/roots.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOTS>'))
prompt Binary schema with incorrect "root(s)"
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns="http://www.different.com/roots.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
prompt Relational registered schema
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns="http://www.relational.com/root.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
prompt =================================================================
prompt BASICFILE - XMLSCHEMA - ALLOW NONSCHEMA
prompt =================================================================
drop table "VALIDATE_XML_SCHEMA";
create table "VALIDATE_XML_SCHEMA" of XMLTYPE
XMLTYPE STORE AS BASICFILE BINARY XML
XMLSCHEMA "http://www.binary.com/root.xsd"
ELEMENT "ROOT"
ALLOW NONSCHEMA;
prompt No schema defined
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
prompt Bogus, noexistent schema defined
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns="http://www.bogus.com/root.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
prompt Binary schema defined
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns="http://www.binary.com/root.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
prompt Binary schema with different location path
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOTS xmlns="http://www.different.com/roots.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOTS>'))
prompt Binary schema with incorrect "root(s)"
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns="http://www.different.com/roots.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
prompt Relational registered schema
insert into "VALIDATE_XML_SCHEMA"
values
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns="http://www.relational.com/root.xsd">
<ID>0</ID>
<INFO>
<INFO_ID>0</INFO_ID>
<INFO_CONTENT>Text</INFO_CONTENT>
</INFO>
</ROOT>'))
-- Output
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
5 rows selected.
Recyclebin purged.
Session altered.
drop table VALIDATE_XML_SCHEMA
ERROR at line 1:
ORA-00942: table or view does not exist
Create Folder for TEST schema, user
declare
ERROR at line 1:
ORA-31003: Parent / already contains child entry test
ORA-06512: at "XDB.DBMS_XDB", line 316
ORA-06512: at line 4
=================================================================
Register Relational XML SChema
=================================================================
XML SChema
PL/SQL procedure successfully completed.
Cleaning up
call DBMS_XMLSCHEMA.deleteSchema(:schemaURL,4)
ERROR at line 1:
ORA-31000: Resource 'http://www.relational.com/root.xsd' is not an XDB schema document
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 106
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 102
ORA-06512: at line 1
Commit complete.
XSD Schema
PL/SQL procedure successfully completed.
Session altered.
PL/SQL procedure successfully completed.
Commit complete.
=================================================================
Register Binary XML SChema
=================================================================
XML SChema
PL/SQL procedure successfully completed.
Cleaning up
call DBMS_XMLSCHEMA.deleteSchema(:schemaURL,4)
ERROR at line 1:
ORA-31000: Resource 'http://www.binary.com/root.xsd' is not an XDB schema document
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 106
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 102
ORA-06512: at line 1
Commit complete.
XSD Schema
PL/SQL procedure successfully completed.
Session altered.
PL/SQL procedure successfully completed.
Commit complete.
=================================================================
Register SECOND Binary XML SChema
=================================================================
XML SChema
PL/SQL procedure successfully completed.
Cleaning up
call DBMS_XMLSCHEMA.deleteSchema(:schemaURL,4)
ERROR at line 1:
ORA-31000: Resource 'http://www.different.com/roots.xsd' is not an XDB schema document
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 106
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 102
ORA-06512: at line 1
Commit complete.
XSD Schema
PL/SQL procedure successfully completed.
Session altered.
PL/SQL procedure successfully completed.
Commit complete.
=================================================================
END Registration Process
=================================================================
Session altered.
SCHEMA_URL BIN
http://www.relational.com/root.xsd NO
http://www.binary.com/root.xsd YES
http://www.different.com/roots.xsd YES
3 rows selected.
no rows selected
no rows selected
=================================================================
BASICFILE - XMLSCHEMA (default) - DISALLOW NONSCHEMA
=================================================================
drop table "VALIDATE_XML_SCHEMA"
ERROR at line 1:
ORA-00942: table or view does not exist
Table created.
No schema defined
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
ERROR at line 3:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LSX-00021: undefined element "ROOT"
Bogus, noexistent schema defined
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
ERROR at line 3:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LSX-00023: unknown namespace URI "http://www.bogus.com/root.xsd"
Binary schema defined
1 row created.
Binary schema with different location path
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
ERROR at line 3:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LSX-00023: unknown namespace URI "http://www.different.com/roots.xsd"
Binary schema with incorrect "root(s)"
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
ERROR at line 3:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LSX-00023: unknown namespace URI "http://www.different.com/roots.xsd"
Relational registered schema
(xmltype('<?xml version="1.0" encoding="UTF-8"?>
ERROR at line 3:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LSX-00023: unknown namespace URI "http://www.relational.com/root.xsd"
=================================================================
BASICFILE - XMLSCHEMA - ALLOW NONSCHEMA
=================================================================
Table dropped.
Table created.
No schema defined
1 row created.
Bogus, noexistent schema defined
1 row created.
Binary schema defined
1 row created.
Binary schema with different location path
1 row created.
Binary schema with incorrect "root(s)"
1 row created.
Relational registered schema
1 row created. -
11g-[nQSError: 42029] Subquery contains too many values for the IN predicat
Hi,
I am having 2 reports one is for subquery which returns inputs to Main report. Actually the report was working fine in 10g. But in 11g we are gettting following error:
View Display Error
Odbc driver returned an error (SQLExecDirectW).
Error Details
Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 42029] Subquery contains too many values for the IN predicate.Please have your System Administrator look at the log for more details on this error. (HY000)
Please have your System Administrator look at the log for more details on this error.
Getting same error after modofying the parameter value MAX_EXPANDED_SUBQUERY_PREDICATES to 12000
Please suggest what could be the other reason it may fail or any other settings we need to check.
Regards,
ckengckeng,
Normally the IN clause has restriction of 10000 values in general sql/plsql we will go with inline queries i think model your rpd to generate inner queries
select * from emp where dept_id in (Select distinct dept_id from dept);
or have a condition/filter on sub report and make one more inner report with sub-filter but definitely it will cause performance issues.
thanks,
Saichand.v -
I have iphone5 and now been given Nokia lumia 520 for work. How can I ensure that my calendars all sync in real time between each phone? Many thanks for any advice
Well if you got the Phone Pggray43 at a Local Corporate store in your Area) you should be able to return it as long as you have all the contents.! Phone, Charger and any other accessories that came with it the Box of Course.. As long as you have not went past the 14 Day return.. the store can go over what you used as in Air Time and Data..
Now if you've went past the 14 Day return you be Liable to pay a E.T.F = Early Termination Fee the fee for this is around $300 so hopefully you have not went past the 14 Day return window the Manager if Available is the one I would talk to tell them your on Social Security and you just can't afford a phone as this I'm sure they'll work with you to get something solved..
Hope ya have Good Luck.! b33 -
11g - configuring inbound for no grup and/or no interchange headers
Due to the fact that I was unable to find useful documentation for this theme, I trying to search for unconventional wisdom.
The question is quite simple : how to configure b2b 11g ( strictly ) to be able to receive and understand a b2b doc ( desadv, ostrpt, hanmov, op-something :at your choice ) when there is no grup and no interchange headers and the protocol is ftp or file ( generic ) .
To give an example lets try this one :
<h5>
UNH+188196+OSTRPT:D:04B:UN:EAN004'
BGM+348::9+2073850+9'
DTM+137:201004060650:203'
RFF+CR:100'
NAD+SU+5940475078003::9'
NAD+ST+5949014211000::9'
NAD+LSP+5949012999986::9'
DOC+220+2073850'
LIN+1++5942002000877:SRV'
PIA+1+PROMO:NB'
DTM+36:100406:102'
QTY+46:576'
RFF+LI:22641352'
LIN+2++5942002001270:SRV'
PIA+1+PROMO:NB'
DTM+36:100406:102'
QTY+46:576'
RFF+LI:22641353'
UNT+29+188196'
</h5>
( yes : the segment number is not correct ; does not matter to me )
What I did so far :
- the document definition : ecs and xsd;
- define the document in b2b - administration-document as EDI_EDIFACT-D04B-OSTRPT-ver1
- define partners with "name" attribute
- give these partners chanels ( generic file ) and document ( with no grup and no interchange headers ); as extra : the document definition *"Override Version Param"* and add extra delimiters : 0x27 0x0D 0x0A
- define an agreement as : inbound, no validate, no translate, no fa ; deploy it
- a generic file listening channel
The result is consistentlty :
...TPAProcessor: processTPA(): party info [[
initial : null
from : TPName: null Type: null Value: null
to : TPName: null Type: null Value: null
final : null
and more :
...RepoDataAccessor: queryAgreementMO: direction OUTBOUND
and finally :
Informational -: B2B-50014: General Error: Informational -: B2B-50029: B2B runtime error[[
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1283)
at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:738)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3077)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2706)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:540)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:200)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Caused by: Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:363)
at oracle.tip.b2b.tpa.TPAProcessor.processOutgoingTPA(TPAProcessor.java:196)
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1223)
... 8 more
Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:363)
at oracle.tip.b2b.tpa.TPAProcessor.processOutgoingTPA(TPAProcessor.java:196)
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1223)
at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:738)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3077)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2706)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:540)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:200)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Informational -: B2B-50014: General Error: Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1283)
at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:738)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3077)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2706)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:540)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:200)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Caused by: Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:363)
at oracle.tip.b2b.tpa.TPAProcessor.processOutgoingTPA(TPAProcessor.java:196)
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1223)
... 8 more
The result is that b2b reports " message error" with no document protocol and no tp data identified.
What is so wrong that b2b finds nothing right about this document?
The 11g documentation keeps mentioning the b2b-config.xml file which I did not find; where is it?
What are the properties to be set in web b2b interface to succesfully process an inbound file in the conditions mentioned.
Thank you for any meaningful information.Thank you for your quick response.
1. the use is more a test case : the minimum requirments for an inbound flow.The bare minimum! Further process of the file is acceptable; for example the use of operating system script to complete the needing parts or use of callout that can transform the input file in a more usefull one ( further used as input ). The real world example can be one of a poor information system of the trading partner or a old one or just one trapped in a legacy system . In fact examples perhaps are not quite just fantasy. This will lead to the minimum requirements a possible partner should fullfil to qualify as b2b partner.
In other words : what are the conditions required ( and configurations needed ) in which is still possible to succesfully process an inbound file that start at UNH and ends at UNT? Isn't it interesting?
2. Yes endeed; the fact that system understand my configuration as " outbound" is dazzling! This is why I mentioned it.
3. Further . more detailed information .. don't no what to say more about it.
- there a two partners
- the agreement clearly state the use of channels, which are "generic file " with the same file system directory for both
-the inbound direction is given by the use of document : the partner is sending it and the host is receiving.
The missing documentation makes very difficult to trace any further.The b2b-config.xml file should by good enough but is missing.
If b2b server would be able to read the file it will find there the protocol ( OSTRPT ); after that only identifying partners by the channels can be used ( "how" is still a problem too ) .
Follows a trimmed server-diagnostic.log :
[SRC_METHOD: synchedLog_J Wed Apr 21 16:35:30 EEST 2010: oracle.tip.b2b.transport.AppInterfaceListenertransportToIPtmsg.getProtocol():File
[SRC_METHOD: synchedLog_J Wed Apr 21 16:35:30 EEST 2010: oracle.tip.b2b.transport.AppInterfaceListeneronMessagebefore iptoapp conversion
[SRC_METHOD: synchedLog_J Wed Apr 21 16:35:30 EEST 2010: oracle.tip.b2b.transport.AppInterfaceListeneripToAppMessageconverting with UTF8
[SRC_METHOD: synchedLog_J Wed Apr 21 16:35:30 EEST 2010: oracle.tip.b2b.transport.AppInterfaceListeneronMessageprint app Message : oracle.tip.b2b.message.AppMessage@3dfe90c2
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: createObject: Enter:
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: createObject: Got RTP Context and added
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: createObject: Exit
[SRC_METHOD: synchedLog_J Wed Apr 21 16:35:30 EEST 2010: oracle.tip.b2b.transport.AppInterfaceListeneronMessagecalling processOutgoingMessage
[SRC_METHOD: synchedLog_J Wed Apr 21 16:35:30 EEST 2010: oracle.tip.b2b.transport.AppInterfaceListeneronMessage[JTA Calling Commit User Transaction
[SRC_METHOD: log enter enqueueEvent(eventType, eventId, id)
[SRC_METHOD: log enter enqueueEvent(eventType, eventId, id, delay)
[SRC_METHOD: log enter enqueueEventWLS(eventType, eventId, id, delay)
[SRC_METHOD: log eventType = 3, eventId = 28
[SRC_METHOD: log create queue connection
[SRC_METHOD: log create queue session
[SRC_METHOD: log create text message
[SRC_METHOD: log send the event
[SRC_METHOD: log leave enqueueEventWLS(eventType, eventId, id, delay)
[SRC_METHOD: log leave enqueueEvent(eventType, eventId, id)
[SRC_METHOD: synchedLog_J Wed Apr 21 16:35:30 EEST 2010: oracle.tip.b2b.transport.AppInterfaceListeneronMessagesend outgoing_apps_message
[SRC_METHOD: log B2BEVENT = Event ID: 28 ID: C0A8002A1282094A04B000005F935CE8 Event Type: 3
[SRC_METHOD: synchedLog_J Engine: processEvents: Enter
[SRC_METHOD: synchedLog_J Engine: handleMessageEvent: Enter
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Enter appMsg id = C0A8002A1282094A04B000005F935CE8
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Got [1 messages for AppMessage ID C0A8002A1282094A04B000005F935CE8
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Exit
[SRC_METHOD: synchedLog_J Engine: handleMessageEvent: Setting payload with UTF8 encoding
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessage: Enter
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: Enter
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: Set the creation time for the messge as Wed Apr 21 16:35:31 EEST 2010
[SRC_METHOD: synchedLog_J calling setFromPartyId() changing from null to TPName: null Type: null Value: null
[SRC_METHOD: synchedLog_J calling setToPartyId() changing from null to TPName: null Type: null Value: null
[SRC_METHOD: synchedLog_J calling setInitiatingPartyId() changing from null to TPName: null Type: null Value: null
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: To TP Namenull
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: From TP Namenull
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: business action name: null
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: doctype name: null
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: doctype revision: null
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: Got AppMsg from ipmsg
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: ipmsg.get_MSG_TYPE = 1
[SRC_METHOD: synchedLog_J calling setInitiatingPartyId() changing from TPName: null Type: null Value: null to TPName: null Type: null Value: null
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: using appMsgId as b2bMsgId
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: B2B Message ID is C0A8002A1282094A04B000005F935CE9
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: RefTo B2B Message ID is null
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: isSignalMsg() == false; call outgoingTPA
[SRC_METHOD: synchedLog_J TPAProcessor: processOutgoingTPA(): Begin TPA Processing..
[SRC_METHOD: synchedLog_J QueryManager: getMDSSession: Enter Label null
[SRC_METHOD: synchedLog_J TPAProcessor: processTPA(): direction is outgoing
[SRC_METHOD: synchedLog_J TPAProcessor: processTPA(): calling processparty with : TPName: null Type: null Value: null
[SRC_METHOD: synchedLog_J TPAProcessor: processTPA(): party info [[
initial : null
from : TPName: null Type: null Value: null
to : TPName: null Type: null Value: null
final : null
[SRC_METHOD: synchedLog_J calling setInitiatingPartyId() changing from TPName: null Type: null Value: null to TPName: null Type: null Value: null
[SRC_METHOD: synchedLog_J QueryManager: getMDSSession: Enter Label null
[SRC_METHOD: synchedLog_J TPAProcessor: processTPA(): TPA Name : null
[SRC_METHOD: synchedLog_J RepoDataAccessor: getAgreementDetails - msg: Enter
[SRC_METHOD: synchedLog_J RepoDataAccessor: getAgreementDetails - msg: create empty msg
[SRC_METHOD: synchedLog_J RepoDataAccessor: getAgreementDetails - msg: Query Agreement
[SRC_METHOD: synchedLog_J RepoDataAccessor: queryAgreementMO: Enter
[SRC_METHOD: synchedLog_J RepoDataAccessor: queryAgreementMO: direction OUTBOUND
[SRC_METHOD: synchedLog_J RepoDataAccessor: queryAgreementMO: fromParty TPName: null Type: null Value: null
[SRC_METHOD: synchedLog_J RepoDataAccessor: queryAgreementMO: toParty TPName: null Type: null Value: null
[SRC_METHOD: synchedLog_J QueryManager: getMDSSession: Enter Label null
[SRC_METHOD: synchedLog_J RepoDataAccessor: processParty: tpName United
[SRC_METHOD: synchedLog_J RepoDataAccessor: processParty: tpName null
[SRC_METHOD: synchedLog_J RepoDataAccessor: processParty: TP not specified, getting it from TP list.
[SRC_METHOD: synchedLog_J RepoDataAccessor: processParty: Given Doc/Ex null/null
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessageImpl: general exception ERROR
Informational -: B2B-50029: B2B runtime error[[
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:363)
at oracle.tip.b2b.tpa.TPAProcessor.processOutgoingTPA(TPAProcessor.java:196)
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1223)
at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:738)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3077)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2706)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:540)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:200)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:363)
at oracle.tip.b2b.tpa.TPAProcessor.processOutgoingTPA(TPAProcessor.java:196)
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1223)
at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:738)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3077)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2706)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:540)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:200)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
[SRC_METHOD: log] msgKey = B2B-50014
Informational -: B2B-50014: General Error: Informational -: B2B-50029: B2B runtime error[[
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1283)
at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:738)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3077)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2706)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:540)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:200)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Caused by: Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:363)
at oracle.tip.b2b.tpa.TPAProcessor.processOutgoingTPA(TPAProcessor.java:196)
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1223)
... 8 more
[SRC_METHOD: synchedLog_J DbAccess:updateWireBusinessToErrorState
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Enter
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Got 0messages for field messageId with value C0A8002A1282094A04B000005F935CE9
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Exit
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: findWireMessageByB2BMessageId: querying for id = C0A8002A1282094A04B000005F935CE9
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: findWireMessageByB2BMessageId: Got null BusinessMessage
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: findWireMessageByB2BMessageId: Returning null
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Enter
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Got 0messages for field messageId with value C0A8002A1282094A04B000005F935CE9
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Exit
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Enter appMsg id = C0A8002A1282094A04B000005F935CE8
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Got [1 messages for AppMessage ID C0A8002A1282094A04B000005F935CE8
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Exit
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.DbAccess: insertMsgTblRowImpl: Setting receive timestamp: Wed Apr 21 16:35:31 EEST 2010
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.DbAccess: insertMsgTblRowImpl: Setting send timestamp: Wed Apr 21 16:35:31 EEST 2010
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.DbAccess: insertMsgTblRowImpl: hdr.getMessageInfo().getFromRole() null
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.DbAccess: insertMsgTblRowImpl: hdr.getMessageInfo().getToRole() null
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: createObject: Enter:
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: createObject: Got RTP Context and added
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: createObject: Exit
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: updateObject: Enter:
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: updateObject: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: updateObject: Exit
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Enter appMsg id = C0A8002A1282094A04B000005F935CE8
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Got [1 messages for AppMessage ID C0A8002A1282094A04B000005F935CE8
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: getAppMessageById: Exit
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: updateObject: Enter:
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: updateObject: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: updateObject: Exit
Informational -: B2B-50014: General Error: Informational -: B2B-50029: B2B runtime error[[
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1283)
at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:738)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3077)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2706)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:540)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:200)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Caused by: Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:363)
at oracle.tip.b2b.tpa.TPAProcessor.processOutgoingTPA(TPAProcessor.java:196)
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1223)
... 8 more
Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:363)
at oracle.tip.b2b.tpa.TPAProcessor.processOutgoingTPA(TPAProcessor.java:196)
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1223)
at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:738)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3077)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2706)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:540)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:200)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Informational -: B2B-50014: General Error: Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1283)
at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:738)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3077)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2706)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:540)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:200)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Caused by: Informational -: B2B-50029: B2B runtime error
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:363)
at oracle.tip.b2b.tpa.TPAProcessor.processOutgoingTPA(TPAProcessor.java:196)
at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1223)
... 8 more
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: updateObject: Enter:
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: updateObject: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: updateObject: Exit
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Enter
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Got 1messages for field messageId with value C0A8002A1282094A04B000005F935CE9
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Exit
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: findWireMessageByB2BMessageId: querying for id = C0A8002A1282094A04B000005F935CE9
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: findWireMessageByB2BMessageId: Returning null
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.DbAccess: updateNativeEvtTblRow: DbAccess:updateNativeEvtTblRowGot WireMessage with B2BMessage ID C0A8002A1282094A04B000005F935CE9
[SRC_METHOD: synchedLog_J Notification: notifyApp: Enter
[SRC_METHOD: synchedLog_J Notification: notifyApp: payload = <Exception xmlns="http://integration.oracle.com/B2B/Exception" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">[[
<correlationId>C0A8002A1282094A04B000005F935CE8</correlationId>
<b2bMessageId>C0A8002A1282094A04B000005F935CE9</b2bMessageId>
<errorCode>B2B-50014</errorCode>
<errorText>
<![CDATA[General Error
]]>
</errorText>
<errorDescription>
<![CDATA[Machine Info: (otzio.euro.ro)
Description: General Error
]]>
</errorDescription>
<errorSeverity>3</errorSeverity>
</Exception>
[SRC_METHOD: synchedLog_J Notification: notifyApp: Enqueue the exception message:[[
<Exception xmlns="http://integration.oracle.com/B2B/Exception" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<correlationId>C0A8002A1282094A04B000005F935CE8</correlationId>
<b2bMessageId>C0A8002A1282094A04B000005F935CE9</b2bMessageId>
<errorCode>B2B-50014</errorCode>
<errorText>
<![CDATA[General Error
]]>
</errorText>
<errorDescription>
<![CDATA[Machine Info: (otzio.euro.ro)
Description: General Error
]]>
</errorDescription>
<errorSeverity>3</errorSeverity>
</Exception>
[SRC_METHOD: synchedLog_J Notification: deliverException: Send message to endpoint IP_IN_QUEUE
[SRC_METHOD: log URL ===== aq://IP_IN_QUEUE@jdbc/SOADataSource
[SRC_METHOD: synchedLog_J Notification: notifyApp: Exit
[SRC_METHOD: log class oracle.tip.b2b.metric.B2BMessageProperties[[
fromTP : United
toTP : null
DocumentProtocol : null
DocumentProtocolVersion : null
DocumentType : null
Agreement : null
MessageSize : 0.0
MessageState : ERROR
FromEndpoint : null
FromEndpointProtocol : null
FromEndpointStatus : null
ToEndpoint : null
ToEndpointProtocol : null
ToEndpointStatus : null
Application : null
Application : null
Composite : null
CompositeVersion : null
Service/Reference : null
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessage: Elapsed Time = 50
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Enter
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Got RTP Context
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Got 1messages for field messageId with value C0A8002A1282094A04B000005F935CE9
[SRC_METHOD: synchedLog_J oracle.tip.b2b.msgproc.ToplinkHelper: queryById: Exit
[SRC_METHOD: synchedLog_J Engine: processOutgoingMessage: Exit
[SRC_METHOD: synchedLog_J Engine: handleMessageEvent: Exit
[SRC_METHOD: synchedLog_J Engine: processEvents: Exit
Edited by: gabosu on Apr 21, 2010 7:32 AM -
It seems the binary XML storage can be schema based or non-schema based. What are the advantages of schema based over non-schema based? My XML doc could be very big, and I need to add/modify some elements without loading the whole XML doc in memory for performance reason, should my XML doc be schema based or not?
create table xmlOrders(
id number primary key,
doc xmltype,
xmltype column doc store as binary xml
Thanks,
DennyI read to many open questions between the lines.
Have a read here: http://www.liberidu.com/blog/?cat=23 (skip the non binary stuff) and maybe the following will also give you some insight regarding what you are looking for:
Encoding and validation: http://www.liberidu.com/blog/?p=332
Some of the possibilities: http://www.liberidu.com/blog/?p=264
Choosing a applicable storage model: http://www.liberidu.com/blog/?p=203
There are a lot of URL's in there, pointing to the appropriate sections in the XMLDB Developers Guide (=your ultimate resource for answers)
Definitely read Marks presentation: http://www.oracle.com/technology/tech/xml/xmldb/Current/11g%20new%20features.ppt.pdf (for binary xml see: slide 23, 24, 25)
and...what is "big" ?
Message was edited by:
Marco Gralike -
Passing parameters for a query throught XML and capturing response in the same
Hi All,
I have defined a RequestParameters object and i am passing paramerts for a query through XML and trying to capture the result in the same and send back to the source. In this case i am send XML from excel.
Below is my XML format.
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Insert xmlns="http://tempuri.org/">
<dataContractValue>
<dsRequest>
<dsRequest>
<SOURCE></SOURCE>
<ACTION>Insert</ACTION>
<RequestParams>
<RequestParams>
<ACC_NO>52451</ACC_NO>
<EMP_CITY>HYD</EMP_CITY>
<EMP_NAME>RAKESH</EMP_NAME>
<EMP_CONTACT>99664</EMP_CONTACT>
<EMP_JOM>NOV</EMP_JOM>
<EMP_SALARY>12345</EMP_SALARY>
</RequestParams>
<RequestParams>
<ACC_NO>52452</ACC_NO>
<EMP_CITY>HYD</EMP_CITY>
<EMP_NAME>RAKESH</EMP_NAME>
<EMP_CONTACT>99664</EMP_CONTACT>
<EMP_JOM>NOV</EMP_JOM>
<EMP_SALARY>12345</EMP_SALARY>
</RequestParams>
</RequestParams>
</dsRequest>
<dsRequest>
<SOURCE></SOURCE>
<ACTION>Update</ACTION>
<RequestParams>
<RequestParams>
<ACC_NO>52449</ACC_NO>
<EMP_CITY>HYD1</EMP_CITY>
<EMP_NAME>RAKESH1</EMP_NAME>
<EMP_SALARY>1345</EMP_SALARY>
</RequestParams>
<RequestParams>
<ACC_NO>52450</ACC_NO>
<EMP_CITY>HYDer</EMP_CITY>
<EMP_NAME>RAKEH</EMP_NAME>
<EMP_SALARY>1235</EMP_SALARY>
</RequestParams>
</RequestParams>
</dsRequest>
</dsRequest>
</dataContractValue>
</Insert>
</s:Body>
</s:Envelope>
Where i have a List of dsRequest and RequestParams, where i can send any number of requests for Insert,Update. I have two a XML element defined in RequestParams "RowsEffected","error" where the result will be caputred and is updated
to the response XML.
I have 6 defined in RequestParams
EMP_SALARY(int),ACC_NO(int),EMP_CITY(string),EMP_NAME(string),EMP_CONTACT(string),EMP_JOM(string)
My Question is:
When i am trying to build response XML with the following code, the parameters which are not given in the Request XML are also appearing in the Response.
ResponseParams.Add(
newdsResponse()
ACTION = OriginalParams[a].ACTION,
SOURCE = OriginalParams[a].SOURCE,
Manager = OriginalParams[a].Manager,
RequestParams = OriginalParams[a].RequestParams
Where the OriginalParams is dsRequest
Ex: In my update query i will only send three parameters, but in my response building with ablove code, i am getting all the variables defined as INT in the RequestParameters.
Is there any way i can avoid this and build response with only the parameters given in the Request ??
Appreciate ur help..Thanks
Cronsey.Hi Kristin,
My project is, User will be giving the parameters in the excel, and using VBA, the values are captured and an XML is created in the above mentioned format and is send to web service for the Insert/Update.
I created a webservice which reads the values from <datacontract> and it consist of list of <dsRequests> where any number of Insert/Upate commands can be executed, with in which it contains a list of <RequestParams> for multiple insertion/Updation.
//function call
OriginalParams = generator.Function(query, OriginalParams);
where OriginalParams is List<dsRequest>
//inside function
command.Parameters.Add()// parameters adding
int
val = command.ExecuteNonQuery();
after the execution,an XML element is added for the response part.and it is looped for all the RequestParams.
OriginalParams[i].Result.Add(
newResult()
{ ERROR = "No Error",
ROWS_EFFECTEFD = 1 });
//once all the execution is done the response building part
for(inta
= 0; a < OriginalParams.Count; a++)
ResponseParams.Add(
newdsResponse()
Result = OriginalParams[a].Result
QUEST: When i am trying to build response XML with the following code, the parameters which are not given in the Request XML are also appearing in the Response.
Ex: In my update query i will only send three parameters, but in my response building with ablove code, i am getting all the variables defined as INT in the RequestParameters.
Is there any way i can avoid this and build response with only the parameters given in the Request ??
Appreciate ur help..Thanks
Cronsey. -
Difficulty continuing past exception in a for loop while parsing XML
Hola -
I've got an issue where (in this case) Turkish characters cause XML parsing to fail; I'm trying to insert an exception here so that any given XML element which causes a problem will simply be skipped & I can figure out the issue later. But if I place it outside, as presented below, then the entire file does not get written rather than simply that element being skipped. My other attempts have resulted in compiler errors indicating I've misplaced it, such as:
Error(61,6): PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following: begin case declare end exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe
Can I get this to drop processing of only the specific problem element & return to complete the entire file?
Many thanks for any help here, greatly puzzled by this.
create or replace
PROCEDURE "RSSLOOPWORKS2" ( fund_in IN VARCHAR2)
is
-- customizable parameters
l_title varchar2(255) := ' New Titles Since ' || to_char(sysdate - 90, 'MM/DD/YYYY');
l_link varchar2(255) := 'replace' || fund_in || '.rss';
l_description varchar2(255) := 'This is a feed of changes to items ' || fund_in;
l_language varchar2(255) := 'en-us';
-- end customizable parameters
l_version varchar2(10) := '2.0';
l_clob clob;
l_idx pls_integer := 1;
l_len pls_integer := 255;
l_defrows pls_integer := 100;
l_maxrows pls_integer := 100;
l_desclen pls_integer := 250;
-- for output to file
begin
-- fund := fund_in;
for i in (
select xmlelement( "rss",
-- Begin XML Header Block
xmlattributes( l_version as "version"),
xmlelement( "channel",
xmlforest( l_title as "title",
l_link as "link",
l_description as "description",
l_language as "language"),
-- End XML Header Block
-- Begin List of Individual Articles or Items
xmlagg(
xmlelement( "item",
CASE
WHEN x.title IS NOT NULL THEN xmlelement("title", x.title)
ELSE xmlelement("title", substr(x.description,1,255))
END,
xmlelement("link", x.link),
xmlelement("description", x.description || ' -- Call number: ' || x.callnum),
xmlelement("callnum", x.callnum),
xmlelement("pubDate", to_char(x.updated_on,'Dy, DD Mon RRRR hh24:mi:ss') || ' EST'),
xmlelement("guid", XMLATTRIBUTES('false' as "isPermaLink"),x.id||to_char(x.updated_on,'JHH24MISS'))
-- End List of Individual Articles or Items
) as result
from ( -- Actual Database Query that populates the list of Items
select id,title,link,description,updated_on, callnum
from drx_rss_feeds
where (fund like fund_in||'%')
and rownum < (l_maxrows+1)) x)
loop
l_clob := xmltype.extract(i.result,'/').getclobval;
exit;
end loop; --i
--- EXCEPTION
exception
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(dbms_utility.format_error_backtrace);
--- OUTPUT RESULTS
-- for i in 1..ceil(dbms_lob.getlength(l_clob)/l_len) loop
dbms_xslprocessor.clob2file(l_clob, '/iiidb/http/live/screens/rss/', fund_in || '.rss');
-- l_idx := l_idx + l_len;
-- end loop; --i
end rssloopworks2;To clarify, I know the practice should be to separate out statements so that the next statement can execute; however, inside of the loop, I haven't been able to correctly accomplish this. When I try to add a block inside the loop over 'result' then the procedure compiles & runs, but I haven't gotten an error and there is not output.
create or replace
PROCEDURE "RSSLOOPWORKS2" ( fund_in IN VARCHAR2)
is
-- customizable parameters
l_title varchar2(255) := ' New Titles Since ' || to_char(sysdate - 90, 'MM/DD/YYYY');
l_link varchar2(255) := 'replace' || fund_in || '.rss';
l_description varchar2(255) := 'This is a feed of changes to items ' || fund_in;
l_language varchar2(255) := 'en-us';
-- end customizable parameters
l_version varchar2(10) := '2.0';
l_clob clob;
l_idx pls_integer := 1;
l_len pls_integer := 255;
l_defrows pls_integer := 100;
l_maxrows pls_integer := 100;
l_desclen pls_integer := 250;
-- for output to file
begin
-- fund := fund_in;
for i in (
select xmlelement( "rss",
-- Begin XML Header Block
xmlattributes( l_version as "version"),
xmlelement( "channel",
xmlforest( l_title as "title",
l_link as "link",
l_description as "description",
l_language as "language"),
-- End XML Header Block
-- Begin List of Individual Articles or Items
xmlagg(
xmlelement( "item",
CASE
WHEN x.title IS NOT NULL THEN xmlelement("title", x.title)
ELSE xmlelement("title", substr(x.description,1,255))
END,
xmlelement("link", x.link),
xmlelement("description", x.description || ' -- Call number: ' || x.callnum),
xmlelement("callnum", x.callnum),
xmlelement("pubDate", to_char(x.updated_on,'Dy, DD Mon RRRR hh24:mi:ss') || ' EST'),
xmlelement("guid", XMLATTRIBUTES('false' as "isPermaLink"),x.id||to_char(x.updated_on,'JHH24MISS'))
-- End List of Individual Articles or Items
) as result
from ( -- Actual Database Query that populates the list of Items
select id,title,link,description,updated_on, callnum
from drx_rss_feeds
where (fund like fund_in||'%')
and rownum < (l_maxrows+1)) x)
loop
BEGIN
l_clob := xmltype.extract(i.result,'/').getclobval;
exit;
exception
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('oi');
END;
end loop; --i
--- EXCEPTION
exception
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(dbms_utility.format_error_backtrace);
--- OUTPUT RESULTS
-- for i in 1..ceil(dbms_lob.getlength(l_clob)/l_len) loop
dbms_xslprocessor.clob2file(l_clob, '/iiidb/http/live/screens/rss/', fund_in || '.rss');
-- l_idx := l_idx + l_len;
-- end loop; --i
end rssloopworks2;
Maybe you are looking for
-
How to set BPEL classpath(urgent)
Hi I Want to set the classpath of the BPEL server with a jar file. I have already posted a question on this issue.But didnt get any reply. I have mysql jar file which is needed for mysql database connection.In the jdeveloper project settings I am add
-
No Internet Access For Four Hours!
Hi Folks, Yesterday afternoon at approximately 2:00pm, I lost my internet connection. I thought it would just be a 'blip' that would correct itself in a couple of minutes. How wrong I was! My connection was down for just over four hours!! Because of
-
Hi All, We are totally new to Oracle B2B software. I have a simple requirement as follows: We are generating a flat file from the database with all the data needed. I just need to produce a X12 format EDI output file by taking this flat file as the i
-
Hi all Use soap sender adapter, we are able to expose the XI interface as web service. But we cannot find these xi web services via http://server:port/wsnavigator. And they are also not listed in http://server:port/inspection.wsil. Does anyone know h
-
Facing error (ORA-01031: insufficient privileges)
Hi All, I am facing a strange error as mentioned in the subject. I googled and found that I dont have proper privileges to execute. But my scenario is as follows BEGIN EXECUTE IMMEDIATE 'CREATE TABLE TEST1(X NUMBER)'; END; PL/SQL procedure successful