MDX statment against an Infoset
Hi,
I would like to know if it is possible to execute a MDX statement against a BI Query that sits on top of an infoset? I Have accomplish this several times if it is a Query thats on a Cube.
What I have done so far is made sure that the Query was released for external access in the Query properties. The query executes fine from Query designer. Next I tried creating the MDX using MDX TEST. When I try validating statement I get syntax errors.
1. Does any one have an example of a MDX statement that is run against an infoset Query?
Hi,
You can very well create MDX statements on Infosets. Please check if the technical names used for characteristics have the pattern as INFOSETNAME___F1 etc..
I tried the same in MDXTEST and it works fine.
Example
SELECT
[Measures].MEMBERS ON AXIS(0) ,
NON EMPTY [INFOSETNAME___F1].MEMBERS
[INFOSETNAME___F2].MEMBERS ON AXIS(1)
FROM [[INFOSETNAME/QUERYTECHNICALNAME]]
Thanks
Sundar
Edited by: Sundar Subramanian on Mar 14, 2008 11:07 AM
Similar Messages
-
Log MDX generated against the cube
All,
I am creating Webi reports using the universe built on MSAS 2005 cube.We have BOXI 3.1 base version ( no fixpacks/service packs) on Windows.
I would like to automatically log the MDX generated by BO to perform some analysis. Would also like some more time-line details as to when BO fired the query to cube, how long did cube take to return data and time taken by BO to output the report.
Can someone suggest a simple way to do this? Would tracing on any Webi Reporting Servers help?
RegardsSorry Didier.
For some reason if i save the file it is saved as 0 bytes and if i try to open directly , the zip archive is empty.
Can you please attach this as a pdf or word document? -
Essbase MDX Query Performance Problem
Hello,
I'm doing an analysis in OBIEE to Essbase cubes, but I don't know why OBIEE generates two MDX queries against Essbase. The first one returns in a reasonable time ( 5 minutos ) but the second one never returns.
With
set [_Year] as '[Year].Generations(2).members'
set [_Month] as '[Mês Caixa].Generations(2).members'
set [_Product2] as 'Filter([Product].Generations(2).members, (([Product].CurrentMember.MEMBER_Name = "SPECIAL" OR [Product].CurrentMember.MEMBER_ALIAS = "SPECIAL") OR ([Product].CurrentMember.MEMBER_Name = "EXECUTIVE" OR [Product].CurrentMember.MEMBER_ALIAS = "EXECUTIVE")))'
set [_Client Name] as 'Filter([Client Name].Generations(2).members, (([Client Name].CurrentMember.MEMBER_Name = "JOHN DOE" OR [Client Name].CurrentMember.MEMBER_ALIAS = "JOHN DOE")))'
set [_Service Name] as 'Generate([Service Name].Generations(2).members, Descendants([Service Name].currentmember, [Service Name].Generations(4), leaves))'
select
{ [Accounts].[Paid Amount]
} on columns,
NON EMPTY {crossjoin({[_Year]},crossjoin({[_Month]},crossjoin({[_Product2]},crossjoin({[_Client Name]},{[_Service Name]}))))} properties MEMBER_NAME, GEN_NUMBER, [Year].[MEMBER_UNIQUE_NAME], [Year].[Memnor], [Mês Caixa].[MEMBER_UNIQUE_NAME], [Mês Caixa].[Memnor], [Product].[MEMBER_UNIQUE_NAME], [Product].[Memnor], [Client Name].[MEMBER_UNIQUE_NAME], [Client Name].[Memnor], [Service Name].[Member_Alias] on rows
from [cli.Client]
With
set [_Year] as '[Year].Generations(2).members'
set [_Month] as '[Mês Caixa].Generations(2).members'
set [_Product2] as 'Filter([Product].Generations(2).members, (([Product].CurrentMember.MEMBER_Name = "SPECIAL" OR [Product].CurrentMember.MEMBER_ALIAS = "SPECIAL") OR ([Product].CurrentMember.MEMBER_Name = "EXECUTIVE" OR [Product].CurrentMember.MEMBER_ALIAS = "EXECUTIVE")))'
set [_Client Name] as 'Filter([Client Name].Generations(2).members, (([Client Name].CurrentMember.MEMBER_Name = "JOHN DOE" OR [Client Name].CurrentMember.MEMBER_ALIAS = "JOHN DOE")))'
set [_Service Name] as 'Generate([Service Name].Generations(2).members, Descendants([Service Name].currentmember, [Service Name].Generations(4), leaves))'
member [Accounts].[_MSCM1] as 'AGGREGATE({[_Product2]}, [Accounts].[Paid Amount])'
select
{ [Accounts].[_MSCM1]
} on columns,
NON EMPTY {crossjoin({[_Year]},crossjoin({[_Month]},crossjoin({[_Client Name]},{[_Service Name]})))} properties MEMBER_NAME, GEN_NUMBER, [Year].[MEMBER_UNIQUE_NAME], [Mês Caixa].[MEMBER_UNIQUE_NAME], [Client Name].[MEMBER_UNIQUE_NAME], [Service Name].[Member_Alias] on rows
from [cli.Client]
Does anyone know why OBIEE generate these two queries and how to optimize them since it's generated automatically by OBIEE ?
Thanks,Hi,
I have been through the queries, and understand that the "_MSCM1" is being aggregated across Product and Paid Amount from the query extract below:
member [Accounts].[_MSCM1] as 'AGGREGATE({[_Product2]}, [Accounts].[Paid Amount])'
If I am getting it right, there is an aggregation rule missing for [Paid Amount] (I think that's the reason, the query is to aggregate _MSCM1 by "Paid Amount" ie just like any other dimension).
Could you please check this once and this is why I think BI is generating two queries? I am sorry, if I got this wrong.
Hope this helps.
Thank you,
Dhar -
MDX execn error: "Dimension Signature mismatch"
Hi All,
I'm trying to run an MDX script against Essbase, and I get the below message:
"Dimension Signature mismatch in function [SET CONSTRUCTOR]"
Unexpected Essbase error 1260054.
The MDX query is as below, the error occurs in line 5:
select
{[CurFcst@AOP_FX],
[Reporting],
[Gross Units]
ON COLUMNS,
[Product].Levels(0).Members
ON ROWS
from ABANSWER.REPORT
where
([Period].[Q3],
[InterCompany],
[Management Unit].[TWMU],
[Legal Entity],
[Cost Center],
[Set Of Books],
[Years].[FY10],
[Version].[Current])
Please let me know if anyone has any information that can help me.
Thanks,
AnindyoHi,
Post here...Essbase
Will get proper solution for your issue :-)
Hope this helped
Regards,
Srikanth -
Infoset join two ODS no authrization
I have created an Infoset joining two ODS's the primary ODS (grey) has 0Orgunit in it and the second ODS's (white) hasn't. When you run the query against the infoset the authorization on the orgunit isn't working and you can see the whole of the organization no matter what level of authorization the user has.
I have looked in RSSM and you can not add the Infoset into the Authorization objects.
If anyone can shed any light on to why the authorization isn't working it would be appreciated.
Many thanks
JaneThanks for your reply but isn't the join different between a infoset and multiprovider .
Many thanks
Jane -
MDX Query much slower for users without administrativ rights
We have a SQL 2012 SP1 with CU9 installed and run a MDX query against a Cube. The Problem is that the query runs very slow for a user without administrativ persmission on the cube. With admin rights it takes 3 seconds and without 30 seconds. I can't find
any error in the query so maybe someone can pin point me in the right direction.The Role has all reading information it needs.
This is the Query:
SELECT NON EMPTY { [Measures].[Blocked Consignment], [Measures].[Consignment in Inspection],
[Measures].[Restricted Consignment], [Measures].[Unrestricted Consignment] } ON COLUMNS, NON EMPTY
{ ([Date].[Date].[Date].ALLMEMBERS * [Materials].[Part Number].[Part Number].ALLMEMBERS *
[Materials].[Key].[Key].ALLMEMBERS * [Sold To].[Name].[Name].ALLMEMBERS *
[Stock Information].[Plant - Storage Location].[Storage Location].ALLMEMBERS * [Non Zero].[Zero Stock Status].[Zero Stock Status].ALLMEMBERS ) }
ON ROWS
FROM ( SELECT ( STRTOSET("[Non Zero].[Zero Stock Status].&[No]", CONSTRAINED) )
ON COLUMNS FROM ( SELECT ( STRTOSET("[Stock Information].[Storage Location].&[1090]", CONSTRAINED) )
ON COLUMNS FROM ( SELECT ( STRTOSET("[Stock Information].[Plant].&[1090]", CONSTRAINED) )
ON COLUMNS FROM ( SELECT ( STRTOSET("[Sold To].[Name].[All]", CONSTRAINED) )
ON COLUMNS FROM [Stock Snapshot]))))
WHERE ( IIF( STRTOSET("[Stock Information].[Plant].&[1090]", CONSTRAINED).Count = 1, STRTOSET("[Stock Information].[Plant].&[1090]", CONSTRAINED), [Stock Information].[Plant].currentmember ),
IIF( STRTOSET("[Stock Information].[Storage Location].&[1090]", CONSTRAINED).Count = 1, STRTOSET("[Stock Information].[Storage Location].&[1090]", CONSTRAINED), [Stock Information].[Storage Location].currentmember ) )
Any one came across this is or is it a bug?Can you check which build of SSAS you've got installed? It looks similar to this bug:
http://support.microsoft.com/kb/2905298/en-us
Apart from that, if you have used cell security in your role, it would be expected that query performance would be slower for users of that role.
Chris
Check out my MS BI blog I also do
SSAS, PowerPivot, MDX and DAX consultancy
and run public SQL Server and BI training courses in the UK -
Hi,
Following is the issue what I face.
I issue a MDX query against an infocube. There is a calculated measure in the MDX query whose calculation is in the MDX statement itself(e.g. sales value/sales quantity). The result shows the unit of the calculated measure as "EUR KG" rather than "EUR/KG".
If I issue the MDX query against the query built on the same cube(the calculation of the keyfigure is in the bex query this time and not in the MDX statement) I get the proper unit as EUR/KG.
Can anybody suggest how the units can properly be displayed when queried directly against the cube?
Thanks,
Anurag.Resolved
-
Hi All.
I have a strange situation that only exists in my BW production environment (version 7.0). Starting out of the blue a few days ago, all of my users are now recieving authorization errors trying to execute queries against any InfoSet. Specifically, the error message is "You do not have authorization for InfoSet xxxx." We have four other environements, sandbox, dev, quality, and training where there is no problem. I've re-transported all of the user roles from Dev to production and compared them line-by-line with the other environements, but I don't see any problem. Can anyone provide any guidance on where I might look to resolve this issue? Below is my PFCG configuration. All of the InfoSets and related cubes, DSO's are in the indicated InfoAreas. Thanks in advance.
Manually Business Explorer - Components
Manually Business Explorer - Components
Activity Create or generate, Change, Display, Delete, Execute <...>
InfoArea ZCRM_CA, ZCRM_OPP, ZCRM_SALES_A, ZCRM_SALES_O, ZCUSTOM_DSO, ZELM, ZLEA<...>
InfoCube *
Name (ID) of a reporting compo *
Type of a reporting component Calculated key figure, Query View, Query, Restricted key figure <...>
Manually Business Explorer - Components: Enhancements to the Owner
Manually Data Warehousing Workbench - Hierarchy
Manually Data Warehousing Workbench - InfoCube
Manually Administrator Workbench - InfoCube
Activity Display
InfoCube Subobject Data
InfoArea ZCRM_CA, ZCRM_OPP, ZCRM_SALES_A, ZCRM_SALES_O, ZCUSTOM_DSO, ZELM, ZLEA<...>
InfoCube *
Manually Data Warehousing Workbench - InfoSet
Manually Administrator Workbench - Infoset
Activity Display, Maintain
InfoArea ZCRM_CA, ZCRM_OPP, ZCRM_SALES_A, ZCRM_SALES_O, ZCUSTOM_DSO, ZELM, ZLEA<...>
InfoSet *
Manually Data Warehousing Workbench - DataStore Object
Manually Administrator Workbench - ODS Object
Activity Display
InfoArea ZCRM_CA, ZCRM_OPP, ZCRM_SALES_A, ZCRM_SALES_O, ZCUSTOM_DSO, ZELM, ZLEA<...>
DataStore Object *
Subobject for ODS Object DataHi Casey,
Have you tried what roles or authorization objects are missing thru SU53 t-code? Other posibility to see what is happeining is doing a trace.
Go to ST01-> select the checkbox Authorization -> run trace.
Then execute the query that gives your the authorization error.
Stop the trace, and see the analysis, check those rows with RC = 8 or 4.
Regards, Federico -
MDX queries that used to work on SSAS 2008 not working on 2012
Hello,
We are still using the old PerformancePoint planning server which is writing MDX queries against a SSAS 2012 at this time. What used to work against SSAS 2008 is now having issues. I captured a profile and the part of the query which
generates the error is this error: The '' calculated member cannot be created because a calculated member with the same name already exists. What has changed in SSAS 2012 where this would not work anymore?; is there anyway to
make the 2012 environment work with this code again?. The code generation is out of my control so I need to find a way to enable backwards compatibility with the way the tool generates the MDX statements.
WITH
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
MEMBER [Account].[Staffing_V3].[] AS ""
Thanks,
MattHi Matt,
According to your description, the MDX query which has the duplicate calculated member name can run success with out any problems in SSAS 2008, however the same query cannot work in SSAS2012 with the error below, right?
The '' calculated member cannot be created because a calculated member with the same name already exists.
I have tested it on my local environment, and the result turn out that this is the default change by Microsoft from SSAS 2008 R2 version. And I am afraid there is no any workarounds run this similar query in SSAS 2012. So in your scenario, you
need to remove the duplicate members in the query.
Thank you for your understanding.
Regards,
Charlie Liao
TechNet Community Support -
MDX always returns Description
Hi,
I am using MDX statment to retrieve result. The statement is as follows:
SELECT NON EMPTY {[3A7PQ1PWB93XPLS4ENBRGNUGR].[75FX3HW29XHBF3ZD279PGG5UR]} ON COLUMNS,
NON EMPTY
{[0MATERIAL Z00KSTDHIERARCHY].LEVELS(01).MEMBERS} ON ROWS FROM [Z_PYMNTS/ZZZ_MDXTEST_QUERY] SAP VARIABLES [ZC_YRWK] INCLUDING [0CALWEEK].[200401] [ZC_CC] INCLUDING [ZC01CNTRF].[X]
The result always contains description of Hierarchy nodes. I want the result to show node value of hierarchy . How should we adjust the .MEMBERS Part above.
The attributes of 0material in the query is Key.
Best Regards,
AnilHello Anil,
if I add
properties
member_name
in the MDX and I execute the MDX statement in the MDXTEST transaction (Run Query Multidim.), then the system gives me the result with the description and the node key...
like
MDX:
SELECT
[Measures].MEMBERS ON AXIS(0) ,
NON EMPTY
[0REGION Z_LW_REGION].[LEVEL00].Members
properties
member_name
ON AXIS(1)
FROM [FABCUBE5/Z305TESTEXTR1]
RESULT:
WELT |WELT 0HIER_NODE |77.408,00 EUR
Not Assigned Region (s) |REST_H 1HIER_REST |81.293,00 EUR
The first column is the description and the second is the key of the node.
If I do not want to have the description I have to remove the return parameter of the BAPI: BAPI_MDDATASET_GET_AXIS_DATA --> l_s_mndtry_prptys-mem_cap
In the returnparameter l_t_option_prptys_vals (l_s_opv-PRPTY_VAL) is the key of the node.
The MDXTEST Transaction is just an example how the BAPI's are working and to test the MDX. The coding of the CRM Bapi and the MDXTEST transaction are using the same BAPI's, but the not the same RETURN parameters...
You can test this, If you do a breakpoint in Program: RRT_MDX_SAMPLE Source Code of RRTMDXF02 line 272 at CALL FUNCTION 'BAPI_MDDATASET_GET_AXIS_DATA'
I hope this helps?
Kind reg.
Michael -
Are there any tools capable of executing MDX queries against ESSBASE databases?
There requirements are extremely simple: just writing MDX queries and getting results as tables.
In other words, I look for a little more convenient alternative to EAS MDX Editor ("convenient" = larger font in the query editor + ability to copy results to the clipboard).
OS: MS Windows; also freeware tools are preferred.
Any links are appreciated, thanks in advance.
Best regardsI too am not a fan of the EAS console as an IDE for much of anything -- it is a lousy text editor.
But what you are asking (I think) is about looking at the output and manipulating that, right?
I think the question then becomes, can MDX queries write to anything other than a flat file, i.e., a table.
Unfortunately, I'm not aware of a way to natively do that.
That's why I suggested using the EssbaseLabs approach and then wrapping your MaxL (you could make this a framework, btw, and use the msh MaxL keyword to touch your actual MDX code) within a batch script that will import the text file using something like bcp.
Then you could use real (SQL based) tools to look at your output.
I'm afraid that all sounds a bit involved, but really, it shouldn't be too much work.
Regards,
Cameron Lackpour -
Issues in creating a Pre-defined filter in Universe
Hello Everyone,
Here is the problem...
The idea is to have a prompt (Prompt1) to allow user select the Input type ..ie."Check Number or Invoice Number". There is the second prompt (Prompt2) which will allow user to input a value. Based on Prompt1 value, the prompt2 input should be evaluated against Check Number object or Invoice Number Object.
This is using a universe based on a BEx query.
Following useful information in the OLAP universe Best practice doc available [here] which Ingo once shared with us [on this forum], I created following pre-defined filter in my universe.
<OPTIONAL><FILTER EXPRESSION="IIF(@Prompt('Select Input type','A',{'Check','Invoice'},mono,free)='Check', [ZFIAP_IS1___F20].[LEVEL01],[ZFIAP_IS1___F46].[LEVEL01])"><CONDITION OPERATORCONDITION="Equal"><CONSTANT TECH_NAME="@Prompt('Enter Check or Invoice Number','A',,mono,free)"/></CONDITION></FILTER></OPTIONAL>
Where [ZFIAP_IS1___F20].[LEVEL01] = Check Number & [ZFIAP_IS1___F46].[LEVEL01] = Invoice number.
The object is parsing without errors in the universe. But when I use it in my report, the report throws an error " failed to execute with the error Invalid MDX command with " "
I took the MDX statment and tried to run/debug using MDXTEST and could never get it to work with the above objects. It was seen that the filter created in such a way is handled [Measures] object which only accepts Numeric values and not Strings. Where as my Check number and Invoice Number values are strings. The MDx statement is given below.
Has anyone experienced this issue earlier ?
WITH MEMBER [Measures].[4C46B176-CC15-DF11-92,5D,25,C2,A9,6F,0,0] AS ' IIF(Check=Check, [ZFIAP_IS1___F20].[LEVEL01],[ZFIAP_IS1___F46].[LEVEL01]) ' SELECT { [Measures].[4GQZ1D26O6QATUDY32CGL1C38] } ON COLUMNS , NON EMPTY FILTER( CROSSJOIN( CROSSJOIN( CROSSJOIN( CROSSJOIN( CROSSJOIN( CROSSJOIN( [ZFIAP_IS1___F93].[LEVEL01].MEMBERS, [ZFIAP_IS1___F94].[LEVEL01].MEMBERS ), [ZFIAP_IS1___F92].[LEVEL01].MEMBERS ), [ZFIAP_IS1___F71].[LEVEL01].MEMBERS ), [ZFIAP_IS1___F55].[LEVEL01].MEMBERS ), [ZFIAP_IS1___F46].[LEVEL01].MEMBERS ), [ZFIAP_IS1___F20].[LEVEL01].MEMBERS ), [Measures].[4C46B176-CC15-DF11-92,5D,25,C2,A9,6F,0,0] = 0000041924670) DIMENSION PROPERTIES [ZFIAP_IS1___F55].[2ZCCNODE01], [ZFIAP_IS1___F55].[2ZCCNODE02], [ZFIAP_IS1___F55].[2ZCCNODE03] ON ROWS FROM [ZFIAP_IS1/QZFIAP_BOUNV2]
Edited by: vaibhav patil on Feb 11, 2010 9:53 PM
Edited by: vaibhav patil on Feb 11, 2010 9:55 PMHi,
In fact, what you are requiring is feasible in Microsoft Analysis Services by defining a calculated meaure and a filter using this calculated measure.
Unfortunately, due to MDX restrictions in SAP, it is not possible to do it in universes.
I suggest that you create a range variable on Time to allow the user to only retrieve the dates needed.
You can retrieve all the dates and then apply a filter in Web Intelligence document: this solution might have the disadvantage to retrieve more data than necessary.
Didier -
I have an SSRS 2012 report and SSAS Cube in 2008. My report criterion requires filtering on measures. So Created measures as dimensions . The report requires >= functionality on the measures. But in the Query designer of
the report there is =, IN, Within Range ,Excluding range , MDX as the operators.
To achieve my goal. I have “From” and “To” as parameters on the numeric dimension. The “To” parameter I have set as internal and setting
the default value of “TO” .By writing another Dataset query that returns the “MAX”
value and the MAX value returned is a member of the measure converted to dim I confirmed.. So this whole works as >=.The user enters only the “FROM” parameter and the “TO” is set internally. The user can enter any value in the “From” parameter. Any
value that is not even a member.It is a textbox. I cannot use a list of values from the “From” parameter.
But whenever I run the report after entering all the selection criteria
I keep getting
Error “the restrictions imposed by the constrained flag in the strtomember functions were violated”
I know this means that Max value in the “TO” section is not a member .
I did try
: StrToMember("[Fact RCS CV BLAST].[APPRLIMIT ACH].
&[" & @ToFactRCSCVBLASTAPPRLIMITACH &
"]", CONSTRAINED) )
But I get “syntax for the “&” is incorrect”
If I use Drop down for the “From” and “To” parameters then it works fine. But that’s not what Business Users need.
Please let me know what the options to make this work. I did use parameters that filter the
Dataset returned it works fine but there is a performance impact.Hi,
I think if you use the following method you will be able to compare the members.
CDbl(StrToMember("[Fact RCS CV BLAST].[APPRLIMIT ACH].&[" + @ToFactRCSCVBLASTAPPRLIMITACH + "]").Member_Name)
As you mentioned that you converted your measures as dimensions, you are having an integer value as the member name. In that case use VBA functions with MDX to do the datatype conversion.
Take a look into the following MDX written against Adventure Works;
WITH CALCULATED MEMBER [Measures].[Member Name] AS
CInt
Right
CStr
[Date].[Calendar Year].CURRENTMEMBER.MEMBER_NAME
), 4
SELECT {[Measures].[Sales Amount], [Measures].[Member Name]} ON COLUMNS,
FILTER
[Date].[Calendar Year].[Calendar Year].MEMBERS,
CInt(Right(CStr([Date].[Calendar Year].CURRENTMEMBER.MEMBER_NAME), 4)) >= 2005 AND
CInt(Right(CStr([Date].[Calendar Year].CURRENTMEMBER.MEMBER_NAME), 4)) <=2008
} ON ROWS
FROM [Adventure Works]
I am filtering the Years by using the member names by extracting the Integer portion of the member name and applying data type conversion functions in VBA. So I
Keep in mind that you have to get rid of the CONSTRAINED clause if your business users can enter anything on the SSRS text box. -
SAP Personas - Use of variable in IF statement
Hope someone can assist with this script
I am storing a value from a dropdown box in a variable so this can be used latter when I am in a different screen within same script.
But the problem I am facing is if i perform a if statment against a variable , it does not work
What I do in test script
1) copy value from drop down into varable
2) paste value to textbox to test value
3) if check is equal for value (N506) in variable "site"
4) if true, put "tested ok" in text box.
if perofrm the test on the dropdown box directly... it works
if perform the test on the textbox i copied variable to... it works.
if perform test on variable directly...it fails...
Doing the test in the first two cases, will not work , as the textbox and dropdown box will not be on screen , when i need to perofm the if statement.
I am suspecting the if statement is interpurting the word site, as a text rather then a varaible name, so how can read a variable and use it in a if statement, without using a box on the screen itself.
Any help is appreciated.thanks Tamas.... i knew it was something simple... code works great now.
-
Problem using existsnode from view
I am having a problem using existsnode from a view. I am currently using 10.2.0.3
example
CREATE OR REPLACE VIEW XML_PERSON_ASSOCIATION
(PERSON)
AS
select
xmlelement("Person",
xmlforest(
extractvalue(value(p),'/Person/PersonID') "PersonID",
extractvalue(value(p),'/Person/Prefix') "Prefix",
extractvalue(value(p),'/Person/FirstName') "FirstName",
extractvalue(value(p),'/Person/MiddleName') "MiddleName",
extractvalue(value(p),'/Person/LastName') "LastName",
extractvalue(value(p),'/Person/Suffix') "Suffix",
extractvalue(value(p),'/Person/PreferredName') "PreferredName",
extractvalue(value(p),'/Person/Gender') "Gender",
extractvalue(value(p),'/Person/PrimaryLanguage') "PrimaryLanguage",
extractvalue(value(p),'/Person/RecordStatus') "RecordStatus",
extractvalue(value(p),'/Person/ImportedDate') "ImportedDate",
(select
xmlagg(
xmlelement("Association",
xmlforest(
extractvalue(value(oa),'/OrganizationPersonAssoc/Name') "Name",
extractvalue(value(ot),'/OrganizationType/OrganizationID') "OrganizationID",
extractvalue(value(ot),'/OrganizationType/Type') "OrganizationType",
extractvalue(value(a),'/Association/Role') "Role",
extractvalue(value(a),'/Association/RecordStatus') "RecordStatus",
extractvalue(value(oa),'/OrganizationPersonAssoc/ImportedDate') "ImportedDate"
xmlelement("PersonTypes",
extract(value(per),'/Person/PersonTypes/PersonType')
xmlelement("Addresses",
extract(value(a),'/Association/Addresses/Address')
xmlelement("ContactMechanisms",
extract(value(a),'/Association/ContactMechanisms/ContactMechanism')
from org_person_assoc oa,
table(xmlsequence(extract(value(oa),'/OrganizationPersonAssoc/OrganizationTypes/OrganizationType'))) ot,
table(xmlsequence(extract(value(ot),'/OrganizationType/Associations/Association'))) a,
table(xmlsequence(extract(value(a),'/Association/Persons/Person'))) per
where extractvalue(value(per),'/Person/PersonID') = extractvalue(value(p),'/Person/PersonID')
) "Associations"
) person
from person p
/When I run the following statment
select person
from xml_person_association o
where existsnode(person,'/Person/Associations/Association[OrganizationID=30097]')=1;
I get no records returned. Now if I used the extract function and use the same path that's in the existsnode clause I get a record returned.
select extract(person,'/Person/Associations/Association')
from xml_person_association o
where existsnode(person,'/Person/Associations/Association[OrganizationID=30097]')=1;
<Association>
<Name>TEST DATA</Name>
<OrganizationID>30097</OrganizationID>
</Association>
If I run the same style of existsnode statment against a table directly instead of a view I am not required to use an extract caluse that has the same path that is used in the existsnode clause.
Thanks for the help.
Message was edited by:
mdrakeTesting in 11g I get
SQL>
SQL>
SQL> set echo on
SQL> spool testcase.log
SQL> --
SQL> connect sys/ as sysdba
Enter password:
Connected.
SQL> set define on
SQL> set timing on
SQL> --
SQL> define USERNAME = XDBTEST
SQL> --
SQL> def PASSWORD = XDBTEST
SQL> --
SQL> def USER_TABLESPACE = USERS
SQL> --
SQL> def TEMP_TABLESPACE = TEMP
SQL> --
SQL> drop user &USERNAME cascade
2 /
old 1: drop user &USERNAME cascade
new 1: drop user XDBTEST cascade
User dropped.
Elapsed: 00:00:09.42
SQL> grant connect, resource to &USERNAME identified by &PASSWORD
2 /
old 1: grant connect, resource to &USERNAME identified by &PASSWORD
new 1: grant connect, resource to XDBTEST identified by XDBTEST
Grant succeeded.
Elapsed: 00:00:00.03
SQL> grant create any directory, drop any directory to &USERNAME
2 /
old 1: grant create any directory, drop any directory to &USERNAME
new 1: grant create any directory, drop any directory to XDBTEST
Grant succeeded.
Elapsed: 00:00:00.00
SQL> grant alter session, create view to &USERNAME
2 /
old 1: grant alter session, create view to &USERNAME
new 1: grant alter session, create view to XDBTEST
Grant succeeded.
Elapsed: 00:00:00.00
SQL> alter user &USERNAME default tablespace &USER_TABLESPACE temporary tablespace &TEMP_TABLESPACE
2 /
old 1: alter user &USERNAME default tablespace &USER_TABLESPACE temporary tablespace &TEMP_TABLESPACE
new 1: alter user XDBTEST default tablespace USERS temporary tablespace TEMP
User altered.
Elapsed: 00:00:00.00
SQL> connect &USERNAME/&PASSWORD
Connected.
SQL> --
SQL> alter session set events ='19027 trace name context forever, level 0x800'
2 /
Session altered.
Elapsed: 00:00:00.00
SQL> var xmlText1 clob
SQL> var xmlText2 clob
SQL> var xmlSchema clob
SQL> var schemaURL varchar2(256)
SQL> --
SQL> begin
2 :schemaURL := 'mcs.xsd';
3 :xmlSchema :=
4 '<!-- edited with XMLSpy v2007 sp2 (http://www.altova.com) by Shaun (PPD Inc) --> <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:xdb=
"http://xmlns.oracle.com/xdb" elementFormDefault="qualified" xdb:storeVarrayAsTable="true">
5 <s:element name="Organization" type="Organization" xdb:defaultTable="ORG"/>
6 <s:element name="Person" type="Person" xdb:defaultTable="PERSON"/>
7 <s:element name="OrganizationPersonAssoc" type="Organization" xdb:defaultTable="ORG_PERSON_ASSOC"/>
8 <s:complexType name="Organization" xdb:SQLType="Organization">
9 <s:sequence minOccurs="0">
10 <s:element name="Name" type="s:string" nillable="true"/>
11 <s:element name="LongName" type="s:string" nillable="true"/>
12 <s:element name="Description" type="s:string" nillable="true"/>
13 <s:element name="FWANumber" type="s:string" nillable="true"/>
14 <s:element name="GUID" type="s:string" nillable="true"/>
15 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
16 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
17 <s:element name="RecordStatus" type="s:string" nillable="true"/>
18 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
19 <s:element name="OrganizationTypes" type="ArrayOfOrganizationType" minOccurs="0"/>
20 <s:element name="OrganizationSynonyms" type="ArrayOfOrganizationSynonym"/>
21 <s:element name="ImportedDate" type="s:date"/>
22 </s:sequence>
23 </s:complexType>
24 <s:complexType name="ArrayOfOrganizationType" xdb:SQLType="ArrayOfOrganizationType">
25 <s:sequence minOccurs="0">
26 <s:element name="OrganizationType" type="OrganizationType" minOccurs="0" maxOccurs="unbounded"/>
27 </s:sequence>
28 </s:complexType>
29 <s:complexType name="OrganizationType" xdb:SQLType="OrganizationType">
30 <s:sequence minOccurs="0">
31 <s:element name="OrganizationID" type="s:string"/>
32 <s:element name="Type" type="s:string" nillable="true"/>
33 <s:element name="QCDoneStatus" type="s:string" nillable="true"/>
34 <s:element name="QCDoneStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
35 <s:element name="SiteEstablishmentStatus" type="s:string" nillable="true"/>
36 <s:element name="SiteEstablishmentStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
37 <s:element name="IPFNumber" type="s:int"/>
38 <s:element name="DUNSNumber" type="s:int"/>
39 <s:element name="GUID" type="s:string" nillable="true"/>
40 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
41 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
42 <s:element name="RecordStatus" type="s:string" nillable="true"/>
43 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
44 <s:element name="LegacyCodes" type="ArrayOfLegacyCode" minOccurs="0"/>
45 <s:element name="Addresses" type="ArrayOfAddress" minOccurs="0"/>
46 <s:element name="ContactMechanisms" type="ArrayOfContactMechanism" minOccurs="0"/>
47 <s:element name="Associations" type="ArrayOfAssociation" minOccurs="0"/>
48 </s:sequence>
49 </s:complexType>
50 <s:complexType name="ArrayOfLegacyCode" xdb:SQLType="ArrayOfLegacyCode">
51 <s:sequence minOccurs="0">
52 <s:element name="LegacyCode" type="LegacyCode" minOccurs="0" maxOccurs="unbounded"/>
53 </s:sequence>
54 </s:complexType>
55 <s:complexType name="LegacyCode" xdb:SQLType="LegacyCode">
56 <s:sequence minOccurs="0">
57 <s:element name="Code" type="s:string" nillable="true"/>
58 <s:element name="NetworkID" type="s:string"/>
59 <s:element name="GUID" type="s:string" nillable="true"/>
60 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
61 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
62 <s:element name="RecordStatus" type="s:string" nillable="true"/>
63 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
64 </s:sequence>
65 </s:complexType>
66 <s:complexType name="ArrayOfAddress" xdb:SQLType="ArrayOfAddress">
67 <s:sequence minOccurs="0">
68 <s:element name="Address" type="Address" minOccurs="0" maxOccurs="unbounded"/>
69 </s:sequence>
70 </s:complexType>
71 <s:complexType name="Address" xdb:SQLType="Address">
72 <s:sequence minOccurs="0">
73 <s:element name="StreetName1" type="s:string" nillable="true"/>
74 <s:element name="StreetName2" type="s:string" nillable="true"/>
75 <s:element name="StreetName3" type="s:string" nillable="true"/>
76 <s:element name="StreetName4" type="s:string" nillable="true"/>
77 <s:element name="CityName" type="s:string" nillable="true"/>
78 <s:element name="CityGUID" type="s:string" nillable="true"/>
79 <s:element name="CityCreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
80 <s:element name="CityLastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
81 <s:element name="CityRecordStatus" type="s:string" nillable="true"/>
82 <s:element name="CityRecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
83 <s:element name="StateName" type="s:string" nillable="true"/>
84 <s:element name="StateGUID" type="s:string" nillable="true"/>
85 <s:element name="StateCreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
86 <s:element name="StateLastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
87 <s:element name="StateRecordStatus" type="s:string" nillable="true"/>
88 <s:element name="StateRecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
89 <s:element name="CountryName" type="s:string" nillable="true"/>
90 <s:element name="CountryCode" type="s:string" nillable="true"/>
91 <s:element name="CountryGUID" type="s:string" nillable="true"/>
92 <s:element name="CountryCreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
93 <s:element name="CountryLastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
94 <s:element name="CountryRecordStatus" type="s:string" nillable="true"/>
95 <s:element name="CountryRecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
96 <s:element name="ZipPostalCode" type="s:string" nillable="true"/>
97 <s:element name="GUID" type="s:string" nillable="true"/>
98 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
99 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
100 <s:element name="RecordStatus" type="s:string" nillable="true"/>
101 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
102 <s:element name="Type" type="s:string" nillable="true"/>
103 <s:element name="TypeOtherSpecify" type="s:string" nillable="true"/>
104 <s:element name="InternalOffice" type="s:string" nillable="true"/>
105 <s:element name="MailStopCode" type="s:string" nillable="true"/>
106 <s:element name="PreferredFlag" type="s:string" nillable="true"/>
107 <s:element name="ActiveFromDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
108 <s:element name="QCDoneStatus" type="s:string" nillable="true"/>
109 <s:element name="QCDoneStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
110 </s:sequence>
111 </s:complexType>
112 <s:complexType name="ArrayOfContactMechanism" xdb:SQLType="ArrayOfContactMechanism">
113 <s:sequence minOccurs="0">
114 <s:element name="ContactMechanism" type="ContactMechanism" minOccurs="0" maxOccurs="unbounded"/>
115 </s:sequence>
116 </s:complexType>
117 <s:complexType name="ContactMechanism" xdb:SQLType="ContactMechanism">
118 <s:sequence minOccurs="0">
119 <s:element name="ContactType" type="s:string" nillable="true"/>
120 <s:element name="ContactTypeOtherSpecify" type="s:string" nillable="true"/>
121 <s:element name="ContactValue" type="s:string" nillable="true"/>
122 <s:element name="ContactAreaCode" type="s:string" nillable="true"/>
123 <s:element name="ContactCountryCallingCode" type="s:int"/>
124 <s:element name="ContactTollFreeFlag" type="s:string" nillable="true"/>
125 <s:element name="ContactGUID" type="s:string" nillable="true"/>
126 <s:element name="ContactCreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
127 <s:element name="ContactLastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
128 <s:element name="ContactRecordStatus" type="s:string" nillable="true"/>
129 <s:element name="ContactRecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
130 <s:element name="Role" type="s:string" nillable="true"/>
131 <s:element name="PhoneExtension" type="s:string" nillable="true"/>
132 <s:element name="QCDoneStatus" type="s:string" nillable="true"/>
133 <s:element name="QCDoneStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
134 <s:element name="ActiveFromDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
135 <s:element name="GUID" type="s:string" nillable="true"/>
136 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
137 <s:element name="ModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
138 <s:element name="PreferredFlag" type="s:string" nillable="true"/>
139 <s:element name="RecordStatus" type="s:string" nillable="true"/>
140 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
141 </s:sequence>
142 </s:complexType>
143 <s:complexType name="ArrayOfAssociation" xdb:SQLType="ArrayOfAssociation">
144 <s:sequence minOccurs="0">
145 <s:element name="Association" type="Association" minOccurs="0" maxOccurs="unbounded"/>
146 </s:sequence>
147 </s:complexType>
148 <s:complexType name="Association" xdb:SQLType="Association">
149 <s:sequence minOccurs="0">
150 <s:element name="Role" type="s:string" nillable="true"/>
151 <s:element name="GUID" type="s:string" nillable="true"/>
152 <s:element name="QCDoneStatus" type="s:string" nillable="true"/>
153 <s:element name="QCDoneStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
154 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
155 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
156 <s:element name="RecordStatus" type="s:string" nillable="true"/>
157 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
158 <s:element name="Addresses" type="ArrayOfAddress" minOccurs="0"/>
159 <s:element name="ContactMechanisms" type="ArrayOfContactMechanism" minOccurs="0"/>
160 <s:element name="Persons" type="ArrayOfPerson" minOccurs="0"/>
161 </s:sequence>
162 </s:complexType>
163 <s:complexType name="ArrayOfPerson" xdb:SQLType="ArrayOfPerson">
164 <s:sequence minOccurs="0">
165 <s:element name="Person" type="Person" minOccurs="0" maxOccurs="unbounded"/>
166 </s:sequence>
167 </s:complexType>
168 <s:complexType name="Person" xdb:SQLType="Person">
169 <s:sequence minOccurs="0">
170 <s:element name="PersonID" type="s:int"/>
171 <s:element name="Prefix" type="s:string" nillable="true"/>
172 <s:element name="FirstName" type="s:string" nillable="true"/>
173 <s:element name="MiddleName" type="s:string" nillable="true"/>
174 <s:element name="LastName" type="s:string" nillable="true"/>
175 <s:element name="Suffix" type="s:string" nillable="true"/>
176 <s:element name="PreferredName" type="s:string" nillable="true"/>
177 <s:element name="Gender" type="s:string" nillable="true"/>
178 <s:element name="PrimaryLanguage" type="s:string" nillable="true"/>
179 <s:element name="GUID" type="s:string" nillable="true"/>
180 <s:element name="RecordStatus" type="s:string" nillable="true"/>
181 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
182 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
183 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
184 <s:element name="QCDoneStatus" type="s:string" nillable="true"/>
185 <s:element name="QCDoneStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
186 <s:element name="PersonDegrees" type="ArrayOfPersonDegree" minOccurs="0"/>
187 <s:element name="PersonSpecialties" type="ArrayOfPersonSpecialty" minOccurs="0"/>
188 <s:element name="PersonTypes" type="ArrayOfPersonType" minOccurs="0"/>
189 <s:element name="Addresses" type="ArrayOfAddress" minOccurs="0"/>
190 <s:element name="ContactMechanisms" type="ArrayOfContactMechanism" minOccurs="0"/>
191 <s:element name="ImportedDate" type="s:date"/>
192 </s:sequence>
193 </s:complexType>
194 <s:complexType name="ArrayOfPersonDegree" xdb:SQLType="ArrayOfPersonDegree">
195 <s:sequence minOccurs="0">
196 <s:element name="PersonDegree" type="PersonDegree" minOccurs="0" maxOccurs="unbounded"/>
197 </s:sequence>
198 </s:complexType>
199 <s:complexType name="PersonDegree" xdb:SQLType="PersonDegree">
200 <s:sequence minOccurs="0">
201 <s:element name="Code" type="s:string" nillable="true"/>
202 <s:element name="Major" type="s:string" nillable="true"/>
203 <s:element name="ListingOrder" type="s:int"/>
204 <s:element name="GUID" type="s:string" nillable="true"/>
205 <s:element name="RecordStatus" type="s:string" nillable="true"/>
206 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
207 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
208 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
209 </s:sequence>
210 </s:complexType>
211 <s:complexType name="ArrayOfPersonSpecialty" xdb:SQLType="ArrayOfPersonSpecialty">
212 <s:sequence minOccurs="0">
213 <s:element name="PersonSpecialty" type="PersonSpecialty" minOccurs="0" maxOccurs="unbounded"/>
214 </s:sequence>
215 </s:complexType>
216 <s:complexType name="PersonSpecialty" xdb:SQLType="PersonSpecialty">
217 <s:sequence minOccurs="0">
218 <s:element name="Name" type="s:string" nillable="true"/>
219 <s:element name="GUID" type="s:string" nillable="true"/>
220 <s:element name="RecordStatus" type="s:string" nillable="true"/>
221 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
222 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
223 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
224 </s:sequence>
225 </s:complexType>
226 <s:complexType name="ArrayOfPersonType" xdb:SQLType="ArrayOfPersonType">
227 <s:sequence minOccurs="0">
228 <s:element name="PersonType" type="PersonType" minOccurs="0" maxOccurs="unbounded"/>
229 </s:sequence>
230 </s:complexType>
231 <s:complexType name="PersonType" xdb:SQLType="PersonType">
232 <s:sequence minOccurs="0">
233 <s:element name="Type" type="s:string" nillable="true"/>
234 <s:element name="GUID" type="s:string" nillable="true"/>
235 <s:element name="RecordStatus" type="s:string" nillable="true"/>
236 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
237 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
238 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
239 <s:element name="QCDoneStatus" type="s:string" nillable="true"/>
240 <s:element name="QCDoneStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
241 </s:sequence>
242 </s:complexType>
243 <s:complexType name="ArrayOfOrganizationSynonym" xdb:SQLType="ArrayOfOrganizationSynonym">
244 <s:sequence minOccurs="0">
245 <s:element name="OrganizationSynonym" type="OrganizationSynonym" minOccurs="0" maxOccurs="unbounded"/>
246 </s:sequence>
247 </s:complexType>
248 <s:complexType name="OrganizationSynonym" xdb:SQLType="OrganizationSynonym">
249 <s:sequence minOccurs="0">
250 <s:element name="Name" type="s:string" nillable="true"/>
251 <s:element name="GUID" type="s:string" nillable="true"/>
252 <s:element name="CreatedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
253 <s:element name="LastModifiedDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
254 <s:element name="RecordStatus" type="s:string" nillable="true"/>
255 <s:element name="RecordStatusDate" type="s:dateTime" xdb:SQLType="TIMESTAMP(6) WITH TIME ZONE"/>
256 </s:sequence>
257 </s:complexType>
258 </s:schema>';
259 :xmltext1 :=
260 '<?xml version="1.0" encoding="WINDOWS-1252"?> <Person xsi:noNamespaceSchemaLocation="mcs.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns
:xsi="http://www.w3.org/2001/XMLSchema-instance">
261 <PersonID>100448</PersonID>
262 <Prefix/>
263 <FirstName>John</FirstName>
264 <MiddleName/>
265 <LastName>Doe</LastName>
266 <Suffix/>
267 <PreferredName/>
268 <Gender/>
269 <PrimaryLanguage xsi:nil="true"/>
270 <GUID>ffff-ffff-ffff</GUID>
271 <RecordStatus>Active</RecordStatus>
272 <RecordStatusDate>2007-04-29T00:11:50.750000-04:00</RecordStatusDate>
273 <CreatedDate>2006-06-13T00:57:21.090000-04:00</CreatedDate>
274 <LastModifiedDate>2007-04-29T00:11:50.770000-04:00</LastModifiedDate>
275 <QCDoneStatus>Yes</QCDoneStatus>
276 <QCDoneStatusDate>2006-06-13T00:57:22.977000-04:00</QCDoneStatusDate>
277 <PersonDegrees>
278 <PersonDegree>
279 <Code>B.S.</Code>
280 <Major xsi:nil="true"/>
281 <ListingOrder>1</ListingOrder>
282 <GUID>d01bbcfd-9d48-47bf-818d-9957b907a664</GUID>
283 <RecordStatus>Active</RecordStatus>
284 <RecordStatusDate>2006-10-05T10:48:04.430000-04:00</RecordStatusDate>
285 <CreatedDate>2006-10-05T10:48:06.520000-04:00</CreatedDate>
286 <LastModifiedDate>2006-10-05T10:48:06.520000-04:00</LastModifiedDate>
287 </PersonDegree>
288 </PersonDegrees>
289 <PersonSpecialties/>
290 <PersonTypes>
291 <PersonType>
292 <Type>Resource Personnel</Type>
293 <GUID>3049ddcd-3590-4fd9-a534-e2cea5b82c09</GUID>
294 <RecordStatus>Active</RecordStatus>
295 <RecordStatusDate>2006-06-13T00:57:22.977000-04:00</RecordStatusDate>
296 <CreatedDate>2006-06-13T00:57:21.090000-04:00</CreatedDate>
297 <LastModifiedDate>2007-04-29T00:11:50.817000-04:00</LastModifiedDate>
298 <QCDoneStatus>Yes</QCDoneStatus>
299 <QCDoneStatusDate>2006-06-13T00:57:22.977000-04:00</QCDoneStatusDate>
300 </PersonType>
301 </PersonTypes>
302 <Addresses/>
303 <ContactMechanisms/>
304 <ImportedDate>2007-04-30</ImportedDate>
305 </Person>';
306 :xmltext2 :=
307 '<?xml version="1.0" encoding="WINDOWS-1252"?> <OrganizationPersonAssoc xsi:noNamespaceSchemaLocation="mcs.xsd" xmlns:xsd="http://www.w3.org/2001
/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
308 <Name>Org Name Office</Name>
309 <LongName>Long Name</LongName>
310 <Description xsi:nil="true"/>
311 <FWANumber xsi:nil="true"/>
312 <GUID>dddd-dddd</GUID>
313 <CreatedDate>2006-05-18T18:59:01.500000-04:00</CreatedDate>
314 <LastModifiedDate>2006-05-18T18:59:01.500000-04:00</LastModifiedDate>
315 <RecordStatus>Active</RecordStatus>
316 <RecordStatusDate>2006-05-18T18:59:01.500000-04:00</RecordStatusDate>
317 <OrganizationTypes>
318 <OrganizationType>
319 <OrganizationID>30097</OrganizationID>
320 <Type>Agency</Type>
321 <QCDoneStatus>Yes</QCDoneStatus>
322 <QCDoneStatusDate>2006-05-18T18:59:01.513000-04:00</QCDoneStatusDate>
323 <SiteEstablishmentStatus xsi:nil="true"/>
324 <SiteEstablishmentStatusDate>0001-01-01T00:00:00.000000-05:00</SiteEstablishmentStatusDate>
325 <IPFNumber>0</IPFNumber>
326 <DUNSNumber>0</DUNSNumber>
327 <GUID>cfe9e9e0-68a3-45c9-81c0-74848523133b</GUID>
328 <CreatedDate>2006-05-18T18:59:01.513000-04:00</CreatedDate>
329 <LastModifiedDate>2006-05-18T18:59:01.513000-04:00</LastModifiedDate>
330 <RecordStatus>Active</RecordStatus>
331 <RecordStatusDate>2006-05-18T18:59:01.513000-04:00</RecordStatusDate>
332 <Associations>
333 <Association>
334 <Role>Employee</Role>
335 <GUID>9a9a9a-ababab</GUID>
336 <QCDoneStatus>Yes</QCDoneStatus>
337 <QCDoneStatusDate>2006-06-13T01:29:09.030000-04:00</QCDoneStatusDate>
338 <CreatedDate>2006-06-13T01:29:09.030000-04:00</CreatedDate>
339 <LastModifiedDate>2006-07-25T15:27:23.783000-04:00</LastModifiedDate>
340 <RecordStatus>Active</RecordStatus>
341 <RecordStatusDate>2006-06-13T01:29:09.030000-04:00</RecordStatusDate>
342 <Addresses>
343 <Address>
344 <StreetName1>123 Front St.</StreetName1>
345 <StreetName2 xsi:nil="true"/>
346 <StreetName3 xsi:nil="true"/>
347 <StreetName4 xsi:nil="true"/>
348 <CityName>City</CityName>
349 <CityGUID>234234</CityGUID>
350 <CityCreatedDate>2006-05-08T20:06:45.143000-04:00</CityCreatedDate>
351 <CityLastModifiedDate>2006-05-08T20:06:45.143000-04:00</CityLastModifiedDate>
352 <CityRecordStatus>Active</CityRecordStatus>
353 <CityRecordStatusDate>2006-05-08T20:06:45.143000-04:00</CityRecordStatusDate>
354 <StateName>New York</StateName>
355 <StateGUID>9fd469e1-4d4a-4f38-9def-50038e5ecca2</StateGUID>
356 <StateCreatedDate>2006-04-22T16:09:35.830000-04:00</StateCreatedDate>
357 <StateLastModifiedDate>2006-04-22T16:09:35.830000-04:00</StateLastModifiedDate>
358 <StateRecordStatus>Active</StateRecordStatus>
359 <StateRecordStatusDate>2006-04-22T16:09:35.830000-04:00</StateRecordStatusDate>
360 <CountryName>United States</CountryName>
361 <CountryCode>USA</CountryCode>
362 <CountryGUID>532d35dd-3a49-408a-a416-20c41e9c7997</CountryGUID>
363 <CountryCreatedDate>2006-04-22T15:30:47.000000-04:00</CountryCreatedDate>
364 <CountryLastModifiedDate>2006-04-22T15:30:47.000000-04:00</CountryLastModifiedDate>
365 <CountryRecordStatus>Active</CountryRecordStatus>
366 <CountryRecordStatusDate>2006-04-22T15:30:47.000000-04:00</CountryRecordStatusDate>
367 <ZipPostalCode>12345</ZipPostalCode>
368 <GUID>b2414fa9-7375-4d26-8d76-89a6915d6751</GUID>
369 <CreatedDate>2006-06-13T01:29:09.030000-04:00</CreatedDate>
370 <LastModifiedDate>2006-07-29T23:45:17.670000-04:00</LastModifiedDate>
371 <RecordStatus>Active</RecordStatus>
372 <RecordStatusDate>2006-06-13T01:29:09.030000-04:00</RecordStatusDate>
373 <Type>Office</Type>
374 <TypeOtherSpecify/>
375 <InternalOffice></InternalOffice>
376 <MailStopCode/>
377 <PreferredFlag>Yes</PreferredFlag>
378 <ActiveFromDate>2006-06-13T01:29:09.000000-04:00</ActiveFromDate>
379 <QCDoneStatus>Yes</QCDoneStatus>
380 <QCDoneStatusDate>2006-06-13T01:29:09.030000-04:00</QCDoneStatusDate>
381 </Address>
382 </Addresses>
383 <ContactMechanisms>
384 <ContactMechanism>
385 <ContactType>Phone</ContactType>
386 <ContactTypeOtherSpecify xsi:nil="true"/>
387 <ContactValue>555-5555</ContactValue>
388 <ContactAreaCode>555</ContactAreaCode>
389 <ContactCountryCallingCode>1</ContactCountryCallingCode>
390 <ContactTollFreeFlag xsi:nil="true"/>
391 <ContactGUID>123</ContactGUID>
392 <ContactCreatedDate>2006-06-13T01:29:09.047000-04:00</ContactCreatedDate>
393 <ContactLastModifiedDate>2007-02-23T16:36:10.260000-05:00</ContactLastModifiedDate>
394 <ContactRecordStatus>Active</ContactRecordStatus>
395 <ContactRecordStatusDate>2006-06-13T01:29:09.047000-04:00</ContactRecordStatusDate>
396 <Role>Business</Role>
397 <PhoneExtension/>
398 <QCDoneStatus>Yes</QCDoneStatus>
399 <QCDoneStatusDate>2006-06-13T01:29:09.047000-04:00</QCDoneStatusDate>
400 <ActiveFromDate>2006-06-13T01:29:09.000000-04:00</ActiveFromDate>
401 <GUID>321</GUID>
402 <CreatedDate>2006-06-13T01:29:09.047000-04:00</CreatedDate>
403 <ModifiedDate>2006-07-29T23:53:03.323000-04:00</ModifiedDate>
404 <PreferredFlag>Yes</PreferredFlag>
405 <RecordStatus>Inactive</RecordStatus>
406 <RecordStatusDate>2006-07-29T23:53:03.393000-04:00</RecordStatusDate>
407 </ContactMechanism>
408 <ContactMechanism>
409 <ContactType>Email</ContactType>
410 <ContactTypeOtherSpecify xsi:nil="true"/>
411 <ContactValue>[email protected]</ContactValue>
412 <ContactAreaCode xsi:nil="true"/>
413 <ContactCountryCallingCode>0</ContactCountryCallingCode>
414 <ContactTollFreeFlag xsi:nil="true"/>
415 <ContactGUID>ddd</ContactGUID>
416 <ContactCreatedDate>2006-06-13T01:29:09.047000-04:00</ContactCreatedDate>
417 <ContactLastModifiedDate>2006-06-13T01:29:09.047000-04:00</ContactLastModifiedDate>
418 <ContactRecordStatus>Active</ContactRecordStatus>
419 <ContactRecordStatusDate>2006-06-13T01:29:09.047000-04:00</ContactRecordStatusDate>
420 <Role>Business</Role>
421 <PhoneExtension xsi:nil="true"/>
422 <QCDoneStatus>Yes</QCDoneStatus>
423 <QCDoneStatusDate>2006-06-13T01:29:09.063000-04:00</QCDoneStatusDate>
424 <ActiveFromDate>2006-06-13T01:29:09.063000-04:00</ActiveFromDate>
425 <GUID>111</GUID>
426 <CreatedDate>2006-06-13T01:29:09.063000-04:00</CreatedDate>
427 <ModifiedDate>2006-06-13T01:29:09.063000-04:00</ModifiedDate>
428 <PreferredFlag>Yes</PreferredFlag>
429 <RecordStatus>Active</RecordStatus>
430 <RecordStatusDate>2006-06-13T01:29:09.063000-04:00</RecordStatusDate>
431 </ContactMechanism>
432 </ContactMechanisms>
433 <Persons>
434 <Person>
435 <PersonID>100448</PersonID>
436 <Prefix/>
437 <FirstName>John</FirstName>
438 <MiddleName/>
439 <LastName>Doe</LastName>
440 <Suffix/>
441 <PreferredName/>
442 <Gender/>
443 <PrimaryLanguage xsi:nil="true"/>
444 <GUID>123</GUID>
445 <RecordStatus>Active</RecordStatus>
446 <RecordStatusDate>2007-04-29T00:11:50.750000-04:00</RecordStatusDate>
447 <CreatedDate>2006-06-13T00:57:21.090000-04:00</CreatedDate>
448 <LastModifiedDate>2007-04-29T00:11:50.770000-04:00</LastModifiedDate>
449 <QCDoneStatus>Yes</QCDoneStatus>
450 <QCDoneStatusDate>2006-06-13T00:57:22.977000-04:00</QCDoneStatusDate>
451 <PersonTypes>
452 <PersonType>
453 <Type>Resource Personnel</Type>
454 <GUID>3049ddcd-3590-4fd9-a534-e2cea5b82c09</GUID>
455 <RecordStatus>Active</RecordStatus>
456 <RecordStatusDate>2006-06-13T00:57:22.977000-04:00</RecordStatusDate>
457 <CreatedDate>2006-06-13T00:57:21.090000-04:00</CreatedDate>
458 <LastModifiedDate>2007-04-29T00:11:50.817000-04:00</LastModifiedDate>
459 <QCDoneStatus>Yes</QCDoneStatus>
460 <QCDoneStatusDate>2006-06-13T00:57:22.977000-04:00</QCDoneStatusDate>
461 </PersonType>
462 </PersonTypes>
463 </Person>
464 </Persons>
465 </Association>
466 </Associations>
467 </OrganizationType>
468 </OrganizationTypes>
469 <ImportedDate>2007-04-30</ImportedDate>
470 </OrganizationPersonAssoc>
471 ';
472 end;
473 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.00
SQL> begin
2 dbms_xmlschema.registerSchema
3 (
4 schemaURL => :schemaURL
5 ,schemaDoc => :xmlSchema
6 ,local => TRUE
7 ,genBean => false
8 ,genTypes => TRUE
9 ,genTables => TRUE
10 ,enableHierarchy => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
11 );
12 end;
13 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:03.67
SQL> insert into Person values ( xmltype (:xmltext1))
2 /
1 row created.
Elapsed: 00:00:00.07
SQL> insert into org_person_assoc values ( xmltype (:xmltext2))
2 /
1 row created.
Elapsed: 00:00:00.03
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.00
SQL> CREATE OR REPLACE VIEW XML_PERSON_ASSOCIATION
2 (PERSON)
3 AS
4 select
5 xmlelement("Person",
6 xmlforest(
7 extractvalue(value(p),'/Person/PersonID') "PersonID",
8 extractvalue(value(p),'/Person/Prefix') "Prefix",
9 extractvalue(value(p),'/Person/FirstName') "FirstName",
10 extractvalue(value(p),'/Person/MiddleName') "MiddleName",
11 extractvalue(value(p),'/Person/LastName') "LastName",
12 extractvalue(value(p),'/Person/Suffix') "Suffix",
13 extractvalue(value(p),'/Person/PreferredName') "PreferredName",
14 extractvalue(value(p),'/Person/Gender') "Gender",
15 extractvalue(value(p),'/Person/PrimaryLanguage') "PrimaryLanguage",
16 extractvalue(value(p),'/Person/RecordStatus') "RecordStatus",
17 extractvalue(value(p),'/Person/ImportedDate') "ImportedDate",
18 (select
19 xmlagg(
20 xmlelement("Association",
21 xmlforest(
22 extractvalue(value(oa),'/OrganizationPersonAssoc/Name') "Name",
23 extractvalue(value(ot),'/OrganizationType/OrganizationID') "OrganizationID",
24 extractvalue(value(ot),'/OrganizationType/Type') "OrganizationType",
25 extractvalue(value(a),'/Association/Role') "Role",
26 extractvalue(value(a),'/Association/RecordStatus') "RecordStatus",
27 extractvalue(value(oa),'/OrganizationPersonAssoc/ImportedDate') "ImportedDate"
28 ),
29 xmlelement("PersonTypes",
30 extract(value(per),'/Person/PersonTypes/PersonType')
31 ),
32 xmlelement("Addresses",
33 extract(value(a),'/Association/Addresses/Address')
34 ),
35 xmlelement("ContactMechanisms",
36 extract(value(a),'/Association/ContactMechanisms/ContactMechanism')
37 )
38 )
39 )
40 from org_person_assoc oa,
41 table(xmlsequence(extract(value(oa),'/OrganizationPersonAssoc/OrganizationTypes/OrganizationType'))) ot,
42 table(xmlsequence(extract(value(ot),'/OrganizationType/Associations/Association'))) a,
43 table(xmlsequence(extract(value(a),'/Association/Persons/Person'))) per
44 where extractvalue(value(per),'/Person/PersonID') = extractvalue(value(p),'/Person/PersonID')
45 ) "Associations"
46 )
47 ) person
48 from person p
49 /
View created.
Elapsed: 00:00:00.06
SQL> set autotrace on explain
SQL> --
SQL> set long 10000 pages 0 lines 150
SQL> --
SQL> select person
2 from xml_person_association o
3 where existsnode(person,'/Person/Associations/Association[OrganizationID=30097]')=1
4 /
<Person><PersonID>100448</PersonID><FirstName>John</FirstName><LastName>Doe</LastName><RecordStatus>Active</RecordStatus><ImportedDate>2007-04-30</Imp
ortedDate><Associations><Association><Name>Org Name Office</Name><OrganizationID>30097</OrganizationID><OrganizationType>Agency</OrganizationType><Rol
e>Employee</Role><RecordStatus>Active</RecordStatus><ImportedDate>2007-04-30</ImportedDate><PersonTypes><PersonType>
<Type>Resource Personnel</Type>
<GUID>3049ddcd-3590-4fd9-a534-e2cea5b82c09</GUID>
<RecordStatus>Active</RecordStatus>
<RecordStatusDate>2006-06-13T00:57:22.977000-04:00</RecordStatusDate>
<CreatedDate>2006-06-13T00:57:21.090000-04:00</CreatedDate>
<LastModifiedDate>2007-04-29T00:11:50.817000-04:00</LastModifiedDate>
<QCDoneStatus>Yes</QCDoneStatus>
<QCDoneStatusDate>2006-06-13T00:57:22.977000-04:00</QCDoneStatusDate>
</PersonType>
</PersonTypes><Addresses><Address>
<StreetName1>123 Front St.</StreetName1>
<StreetName2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<StreetName3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<StreetName4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<CityName>City</CityName>
<CityGUID>234234</CityGUID>
<CityCreatedDate>2006-05-08T20:06:45.143000-04:00</CityCreatedDate>
<CityLastModifiedDate>2006-05-08T20:06:45.143000-04:00</CityLastModifiedDate>
<CityRecordStatus>Active</CityRecordStatus>
<CityRecordStatusDate>2006-05-08T20:06:45.143000-04:00</CityRecordStatusDate>
<StateName>New York</StateName>
<StateGUID>9fd469e1-4d4a-4f38-9def-50038e5ecca2</StateGUID>
<StateCreatedDate>2006-04-22T16:09:35.830000-04:00</StateCreatedDate>
<StateLastModifiedDate>2006-04-22T16:09:35.830000-04:00</StateLastModifiedDate>
<StateRecordStatus>Active</StateRecordStatus>
<StateRecordStatusDate>2006-04-22T16:09:35.830000-04:00</StateRecordStatusDate>
<CountryName>United States</CountryName>
<CountryCode>USA</CountryCode>
<CountryGUID>532d35dd-3a49-408a-a416-20c41e9c7997</CountryGUID>
<CountryCreatedDate>2006-04-22T15:30:47.000000-04:00</CountryCreatedDate>
<CountryLastModifiedDate>2006-04-22T15:30:47.000000-04:00</CountryLastModifiedDate>
<CountryRecordStatus>Active</CountryRecordStatus>
<CountryRecordStatusDate>2006-04-22T15:30:47.000000-04:00</CountryRecordStatusDate>
<ZipPostalCode>12345</ZipPostalCode>
<GUID>b2414fa9-7375-4d26-8d76-89a6915d6751</GUID>
<CreatedDate>2006-06-13T01:29:09.030000-04:00</CreatedDate>
<LastModifiedDate>2006-07-29T23:45:17.670000-04:00</LastModifiedDate>
<RecordStatus>Active</RecordStatus>
<RecordStatusDate>2006-06-13T01:29:09.030000-04:00</RecordStatusDate>
<Type>Office</Type>
<TypeOtherSpecify/>
<InternalOffice/>
<MailStopCode/>
<PreferredFlag>Yes</PreferredFlag>
<ActiveFromDate>2006-06-13T01:29:09.000000-04:00</ActiveFromDate>
<QCDoneStatus>Yes</QCDoneStatus>
<QCDoneStatusDate>2006-06-13T01:29:09.030000-04:00</QCDoneStatusDate>
</Address>
</Addresses><ContactMechanisms><ContactMechanism>
<ContactType>Phone</ContactType>
<ContactTypeOtherSpecify xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<ContactValue>555-5555</ContactValue>
<ContactAreaCode>555</ContactAreaCode>
<ContactCountryCallingCode>1</ContactCountryCallingCode>
<ContactTollFreeFlag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<ContactGUID>123</ContactGUID>
<ContactCreatedDate>2006-06-13T01:29:09.047000-04:00</ContactCreatedDate>
<ContactLastModifiedDate>2007-02-23T16:36:10.260000-05:00</ContactLastModifiedDate>
<ContactRecordStatus>Active</ContactRecordStatus>
<ContactRecordStatusDate>2006-06-13T01:29:09.047000-04:00</ContactRecordStatusDate>
<Role>Business</Role>
<PhoneExtension/>
<QCDoneStatus>Yes</QCDoneStatus>
<QCDoneStatusDate>2006-06-13T01:29:09.047000-04:00</QCDoneStatusDate>
<ActiveFromDate>2006-06-13T01:29:09.000000-04:00</ActiveFromDate>
<GUID>321</GUID>
<CreatedDate>2006-06-13T01:29:09.047000-04:00</CreatedDate>
<ModifiedDate>2006-07-29T23:53:03.323000-04:00</ModifiedDate>
<PreferredFlag>Yes</PreferredFlag>
<RecordStatus>Inactive</RecordStatus>
<RecordStatusDate>2006-07-29T23:53:03.393000-04:00</RecordStatusDate>
</ContactMechanism>
<ContactMechanism>
<ContactType>Email</ContactType>
<ContactTypeOtherSpecify xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<ContactValue>[email protected]</ContactValue>
<ContactAreaCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<ContactCountryCallingCode>0</ContactCountryCallingCode>
<ContactTollFreeFlag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<ContactGUID>ddd</ContactGUID>
<ContactCreatedDate>2006-06-13T01:29:09.047000-04:00</ContactCreatedDate>
<ContactLastModifiedDate>2006-06-13T01:29:09.047000-04:00</ContactLastModifiedDate>
<ContactRecordStatus>Active</ContactRecordStatus>
<ContactRecordStatusDate>2006-06-13T01:29:09.047000-04:00</ContactRecordStatusDate>
<Role>Business</Role>
<PhoneExtension xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<QCDoneStatus>Yes</QCDoneStatus>
<QCDoneStatusDate>2006-06-13T01:29:09.063000-04:00</QCDoneStatusDate>
<ActiveFromDate>2006-06-13T01:29:09.063000-04:00</ActiveFromDate>
<GUID>111</GUID>
<CreatedDate>2006-06-13T01:29:09.063000-04:00</CreatedDate>
<ModifiedDate>2006-06-13T01:29:09.063000-04:00</ModifiedDate>
<PreferredFlag>Yes</PreferredFlag>
<RecordStatus>Active</RecordStatus>
<RecordStatusDate>2006-06-13T01:29:09.063000-04:00</RecordStatusDate>
</ContactMechanism>
</ContactMechanisms></Association></Associations></Person>
Elapsed: 00:00:00.42
Execution Plan
Plan hash value: 95656148
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 18040 | 9 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 10096 | | |
| 2 | TABLE ACCESS BY INDEX ROWID | SYS_NT32zHSpCZQ9ynComtqqKsrw== | 1 | 10096 | 2 (0)| 00:00:01 |
|* 3 | INDEX RANGE SCAN | SYS_C009300 | 1 | | 2 (0)| 00:00:01 |
| 4 | SORT AGGREGATE | | 1 | 48284 | | |
| 5 | TABLE ACCESS BY INDEX ROWID | SYS_NTjbkXqKq3S96fbEOM3Qs5Gg== | 1 | 48284 | 2 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | SYS_C009296 | 1 | | 2 (0)| 00:00:01 |
| 7 | SORT AGGREGATE | | 1 | 28187 | | |
| 8 | TABLE ACCESS BY INDEX ROWID| SYS_NTm2nBfKKNSGm6hs2e1Z0w/A== | 1 | 28187 | 2 (0)| 00:00:01 |
|* 9 | INDEX RANGE SCAN | SYS_C009297 | 1 | | 2 (0)| 00:00:01 |
| 10 | SORT AGGREGATE | | 1 | 13910 | | |
| 11 | NESTED LOOPS | | 1 | 13910 | 6 (0)| 00:00:01 |
| 12 | NESTED LOOPS | | 1 | 8131 | 5 (0)| 00:00:01 |
| 13 | NESTED LOOPS | | 1 | 4097 | 4 (0)| 00:00:01 |
|* 14 | TABLE ACCESS FULL | SYS_NT7Erd/G5iSPWX9w20Z5cNRg== | 1 | 43 | 3 (0)| 00:00:01 |
|* 15 | TABLE ACCESS BY INDEX ROWID | SYS_NTQWY/m3uES5GM7AByRclr8A== | 1 | 4054 | 1 (0)| 00:00:01 |
|* 16 | INDEX UNIQUE SCAN | SYS_C009310 | 1 | | 0 (0)| 00:00:01 |
|* 17 | TABLE ACCESS BY INDEX ROWID | SYS_NTTiDHMvB7RbSEfNxho66yQg== | 1 | 4034 | 1 (0)| 00:00:01 |
|* 18 | INDEX UNIQUE SCAN | SYS_C009314 | 1 | | 0 (0)| 00:00:01 |
| 19 | TABLE ACCESS BY INDEX ROWID | ORG_PERSON_ASSOC | 1 | 5779 | 1 (0)| 00:00:01 |
|* 20 | INDEX UNIQUE SCAN | SYS_C009320 | 1 | | 0 (0)| 00:00:01 |
|* 21 | FILTER | | | | | |
| 22 | TABLE ACCESS FULL | PERSON | 1 | 18040 | 3 (0)| 00:00:01 |
| 23 | NESTED LOOPS | | | | | |
| 24 | NESTED LOOPS | | 1 | 5893 | 6 (0)| 00:00:01 |
| 25 | NESTED LOOPS | | 1 | 2125 | 5 (0)| 00:00:01 |
| 26 | NESTED LOOPS | | 1 | 93 | 4 (0)| 00:00:01 |
|* 27 | TABLE ACCESS FULL | SYS_NT7Erd/G5iSPWX9w20Z5cNRg== | 1 | 43 | 3 (0)| 00:00:01 |
|* 28 | TABLE ACCESS BY INDEX ROWID| SYS_NTQWY/m3uES5GM7AByRclr8A== | 1 | 50 | 1 (0)| 00:00:01 |
|* 29 | INDEX UNIQUE SCAN | SYS_C009310 | 1 | | 0 (0)| 00:00:01 |
|* 30 | TABLE ACCESS BY INDEX ROWID | SYS_NTTiDHMvB7RbSEfNxho66yQg== | 1 | 2032 | 1 (0)| 00:00:01 |
|* 31 | INDEX UNIQUE SCAN | SYS_C009314 | 1 | | 0 (0)| 00:00:01 |
|* 32 | INDEX UNIQUE SCAN | SYS_C009320 | 1 | | 0 (0)| 00:00:01 |
| 33 | TABLE ACCESS BY INDEX ROWID | ORG_PERSON_ASSOC | 1 | 3768 | 1 (0)| 00:00:01 |
Predicate Information (identified by operation id):
3 - access("NESTED_TABLE_ID"=:B1)
6 - access("NESTED_TABLE_ID"=:B1)
9 - access("NESTED_TABLE_ID"=:B1)
14 - filter("SYS_NC_TYPEID$" IS NOT NULL AND "PersonID"=:B1)
15 - filter("SYS_NC_TYPEID$" IS NOT NULL)
16 - access("NESTED_TABLE_ID"="SYS_ALIAS_1"."SYS_NC0002700028$")
17 - filter("SYS_NC_TYPEID$" IS NOT NULL)
18 - access("NESTED_TABLE_ID"="SYS_ALIAS_0"."SYS_NC0003700038$")
20 - access("NESTED_TABLE_ID"="OA"."SYS_NC0002100022$")
21 - filter( EXISTS (SELECT 0 FROM "XDBTEST"."SYS_NT7Erd/G5iSPWX9w20Z5cNRg=="
"SYS_ALIAS_1","XDBTEST"."SYS_NTQWY/m3uES5GM7AByRclr8A=="
"SYS_ALIAS_3","XDBTEST"."SYS_NTTiDHMvB7RbSEfNxho66yQg==" "SYS_ALIAS_0","XDBTEST"."ORG_PERSON_ASSOC" "OA"
WHERE "SYS_ALIAS_0"."NESTED_TABLE_ID"="OA"."SYS_NC0002100022$" AND
"SYS_ALIAS_1"."NESTED_TABLE_ID"="SYS_ALIAS_0"."SYS_NC0003700038$" AND "SYS_ALIAS_0"."SYS_NC_TYPEID$" IS
NOT NULL AND TO_NUMBER("SYS_ALIAS_0"."OrganizationID")=30097 AND
"SYS_ALIAS_4"."NESTED_TABLE_ID"="SYS_ALIAS_1"."SYS_NC0002700028$" AND "SYS_ALIAS_1"."SYS_NC_TYPEID$" IS
NOT NULL AND "SYS_ALIAS_4"."SYS_NC_TYPEID$" IS NOT NULL AND "SYS_ALIAS_4"."PersonID"=:B1))
27 - filter("SYS_ALIAS_4"."SYS_NC_TYPEID$" IS NOT NULL AND "SYS_ALIAS_4"."PersonID"=:B1)
28 - filter("SYS_ALIAS_1"."SYS_NC_TYPEID$" IS NOT NULL)
29 - access("SYS_ALIAS_4"."NESTED_TABLE_ID"="SYS_ALIAS_1"."SYS_NC0002700028$")
30 - filter("SYS_ALIAS_0"."SYS_NC_TYPEID$" IS NOT NULL AND
TO_NUMBER("SYS_ALIAS_0"."OrganizationID")=30097)
31 - access("SYS_ALIAS_1"."NESTED_TABLE_ID"="SYS_ALIAS_0"."SYS_NC0003700038$")
32 - access("SYS_ALIAS_0"."NESTED_TABLE_ID"="OA"."SYS_NC0002100022$")
Note
- dynamic sampling used for this statement
SQL> select extract(person,'/Person/Associations/Association')
2 from xml_person_association o
3 where existsnode(person,'/Person/Associations/Association[OrganizationID=30097]')=1
4 /
<Association><Name>Org Name Office</Name><OrganizationID>30097</OrganizationID><OrganizationType>Agency</OrganizationType><Role>Employee</Role><Record
Status>Active</RecordStatus><ImportedDate>2007-04-30</ImportedDate><PersonTypes><PersonType><Type>Resource Personnel</Type><GUID>3049ddcd-3590-4fd9-a5
34-e2cea5b82c09</GUID><RecordStatus>Active</RecordStatus><RecordStatusDate>2006-06-13T00:57:22.977000-04:00</RecordStatusDate><CreatedDate>2006-06-13T
00:
Maybe you are looking for
-
Why is my MBP battery is giving me only 3 hours?
i have a macbook pro 2012 2.3 Ghz with Mountain Lion .1 so i heard that the 10.8.1 upgrade would repair the battery issue, i dont see any fix with the battery. is anyone having the same problems with 10.8.1 too? what can i do for the battery? is ther
-
The Airport Express is not finding my wireless network. I do not have any of the devices listed below. I have a Belkin wireless router. Can I still use Airport Express ( without plugging an ethernet cable into it) ? Any ideas for how to make it find
-
I have set up a Smart Camera (NI-1772) in an grading system which is used to measure and count product fed passed the camera by a conveyor system. The prodcut is sized by length, (by the camera ) and a PLC actuates mechanism that put the product in
-
Fair usage policy yet again - the latest interpret...
Like many others, I found what was on BT's web site concerning FUP quite unclear in parts, particularly the paragraph that reads; If you exceed your usage allowance, you'll be charged for additional usage in units of 5 gigabytes (GB), at £5 per 5GB.
-
IPhone 4 died while trying to update iOS 4.0.1
Hi, I am currently in Australia and I just purchased my iPhone 4 from the Apple Store yesterday. I downloaded a number of applications after and I tried to update my iOS tonight via iTunes however, my iPhone just died after it finish updating. I coul