Xquery to return distinct values in xml

Hi,
I have a requirement, where in i have to get distinct values from an xml file.
EX: Input
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Main xmlns="http://www.abc.org.com/FormDetails">
<abcd first="1" second="2"/>
<Fruits>
<fruit name="banana" color="green">
<fruit name="apple" color="red">
<fruit name="grape" color="green">
<fruit name="apple" color="red">
<fruit name="banana" color="green">
<fruit name="apple" color="red">
<fruit name="grape" color="green">
<fruit name="orange" color="orange">
<fruit name ="lemon" color="yellow">
</Fruits>
<Fruits>
<fruit name="banana" color="green">
<fruit name="apple" color="red">
<fruit name="grape" color="green">
<fruit name="apple" color="red">
<fruit name="banana" color="green">
<fruit name="apple" color="red">
<fruit name="grape" color="green">
<fruit name="orange" color="orange">
<fruit name ="lemon" color="yellow">
</Fruits>
<Fruits>
<fruit name="banana" color="green">
<fruit name="apple" color="red">
<fruit name="grape" color="green">
<fruit name="apple" color="red">
<fruit name="banana" color="green">
<fruit name="apple" color="red">
<fruit name="grape" color="green">
<fruit name="orange" color="orange">
<fruit name ="lemon" color="yellow">
</Fruits>
</Main>
Required output: String
banana = green|apple = red| grape=green|orange=orange|lemon=yellow
I have used this xquery:
declare namespace xf = "http://tempuri.org/abcorg/Transformations/Distinct_Fruits/";
declare namespace ns = "http://www.abc.org.com/FormDetails";
declare function xf:Distinct_Fruits($fruits as element(ns:Main))
as xs:string{
for $d in distinct-values($fruits//ns:fruit/@name)
return "{$d} ="
for $e in distinct-values($fruits//ns:fruit/@color)
return "{$e}|"
declare variable $fruitsas element(ns:Main) external;
xf:Distinct_Member($fruits)
I am getting error like:
Error executing the XQuery transformation: line 11, column 1: {err}FORG0005: expected exactly one item, got 2+ items
Please let me know where It went wrong.
Thanks..
Edited by: user12679330 on Jul 12, 2011 4:47 AM

Hi,
Please let me know where It went wrong.The function's return value is declared as a string but you're actually returning sequences of string literals.
One way to achieve that is using string-join function :
(here for testing purpose, I used an external $doc variable)
declare namespace xf = "http://tempuri.org/abcorg/Transformations/Distinct_Fruits/";
declare default element namespace "http://www.abc.org.com/FormDetails";
declare function xf:Distinct_Fruits( $fruits as element(Fruits)* )
as xs:string
string-join(
   for $d in distinct-values($fruits/fruit/@name)
   return concat($d, " = ", $fruits/fruit[@name=$d][1]/@color)
, "|"
xf:Distinct_Fruits($doc/Main/Fruits)Note that I assumed that a fruit with a given name will always have the same color.
If that's not the case and you might have something like :
<Main>
<abcd first="1" second="2"/>
<Fruits>
  <fruit name="banana" color="green"/>
  <fruit name="apple" color="red"/>
  <fruit name="grape" color="green"/>
  <fruit name="apple" color="red"/>
  <!-- here is a red banana! -->
  <fruit name="banana" color="red"/>
  <fruit name="apple" color="red"/>
  <fruit name="grape" color="green"/>
  <fruit name="orange" color="orange"/>
  <fruit name ="lemon" color="yellow"/>
</Fruits>
</Main>then the solution is to use deep-equal function to test if two nodes are identical (as per their values, attributes and children) :
declare function xf:Distinct_Fruits( $fruits as element(Fruits) )
as xs:string
string-join(
   for $i in $fruits/fruit
   let $f := $i[not(some $x in $i/preceding-sibling::fruit satisfies fn:deep-equal($x,.))]
   where ($f)
   return concat($f/@name, " = ", $f/@color)
, "|"
};which gives :
banana = green|apple = red|grape = green|banana = red|orange = orange|lemon = yellowEdited by: odie_63 on 12 juil. 2011 14:43 - changed first example to reflect sample modification

Similar Messages

  • XMLTABLE function not returning any values if xml has attribute "xmlns"

    Hi,
    XMLTABLE function not returning any values if xml has attribute "xmlns". Is there way to get the values if xml has attribute as "xmlns".
    create table xmltest (id number(2), xml xmltype);
    insert into xmltest values(1,
    '<?xml version="1.0"?>
    <emps>
    <emp empno="1" deptno="10" ename="John" salary="21000"/>
    <emp empno="2" deptno="10" ename="Jack" salary="310000"/>
    <emp empno="3" deptno="20" ename="Jill" salary="100001"/>
    </emps>');
    insert into xmltest values(2,
    '<?xml version="1.0"?>
    <emps xmlns="http://emp.com">
    <emp empno="1" deptno="10" ename="John" salary="21000"/>
    <emp empno="2" deptno="10" ename="Jack" salary="310000"/>
    <emp empno="3" deptno="20" ename="Jill" salary="100001"/>
    </emps>');
    commit;
    SELECT a.*
    FROM xmltest,
    XMLTABLE (
    'for $i in /emps/emp
    return $i'
    PASSING xml
    COLUMNS empno NUMBER (2) PATH '@empno',
    deptno NUMBER (3) PATH '@deptno',
    ename VARCHAR2 (10) PATH '@ename',
    salary NUMBER (10) PATH '@salary') a
    WHERE id = 1;
    The above query returning results but below query is not returning any results because of xmlns attribute.
    SELECT a.*
    FROM xmltest,
    XMLTABLE (
    'for $i in /emps/emp
    return $i'
    PASSING xml
    COLUMNS empno NUMBER (2) PATH '@empno',
    deptno NUMBER (3) PATH '@deptno',
    ename VARCHAR2 (10) PATH '@ename',
    salary NUMBER (10) PATH '@salary') a
    WHERE id = 1;
    how to get rid out of this problem.
    Thanks,
    -Mani

    Added below one in xmltable, its working now.
    XmlNamespaces(DEFAULT 'http://emp.com')

  • Query or function that returns distinct values and counts

    For the following table:
    ID number
    address varchar(100)
    Where the ID is the primary key and addresses might be repeated in other rows, I'd like to write a query that returns distinct addresses and the count for the number of times the address exists in the table. What's the best way to do this? Thank you in advance.

    Jlokitz,
    select address, count(*)
    from table
    group by address;
    HTH
    Ghulam

  • I have SSRS parametarized report in that one data set have repeated values with query parameter . but while am mapping that query parameter to report parameter i need to pass distinct values. How can i resolve this

    I have SSRS parametarized report in that one data set have repeated values with query parameter . but while am mapping that query
    parameter to report parameter i need to pass distinct values. How can i resolve this

    Hi nancharaiah,
    If I understand correctly, you want to pass distinct values to report parameter. In Reporting Service, there are only three methods for parameter's Available Values:
    None
    Specify values
    Get values from a query
    If we utilize the third option that get values from a dataset query, then the all available values are from the returns of the dataset. So if we want to pass distinct values from a dataset, we need to make the dataset returns distinct values. The following
    sample is for your reference:
    Select distinct field_name  from table_name
    If you have any other questions, please feel free to ask.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Distinct-values() in XQuery

    According Q4, 1.1.9.4 in XML Query User Case and Oracle magazine (May2003), the function should be all right. Why the following XQuery can not be excuted in command line?
    Error message:
    XQE: unknown function 'distinct-values'
    Thanks a lot!
    <dataroot>
    let $a := document("Orders.xml")/dataroot/Orders
    for $o in distinct-values($a/CusomerID),
    $c in document("Customers.xml")/dataroot/Customers
    where $c/CustomerID = $o/CustomerID
    return
    <Customer>
    { $c/CustomerID }
    { $c/CustomerName }
    </Customer>
    </dataroot>

    Hi,
    Please let me know where It went wrong.The function's return value is declared as a string but you're actually returning sequences of string literals.
    One way to achieve that is using string-join function :
    (here for testing purpose, I used an external $doc variable)
    declare namespace xf = "http://tempuri.org/abcorg/Transformations/Distinct_Fruits/";
    declare default element namespace "http://www.abc.org.com/FormDetails";
    declare function xf:Distinct_Fruits( $fruits as element(Fruits)* )
    as xs:string
    string-join(
       for $d in distinct-values($fruits/fruit/@name)
       return concat($d, " = ", $fruits/fruit[@name=$d][1]/@color)
    , "|"
    xf:Distinct_Fruits($doc/Main/Fruits)Note that I assumed that a fruit with a given name will always have the same color.
    If that's not the case and you might have something like :
    <Main>
    <abcd first="1" second="2"/>
    <Fruits>
      <fruit name="banana" color="green"/>
      <fruit name="apple" color="red"/>
      <fruit name="grape" color="green"/>
      <fruit name="apple" color="red"/>
      <!-- here is a red banana! -->
      <fruit name="banana" color="red"/>
      <fruit name="apple" color="red"/>
      <fruit name="grape" color="green"/>
      <fruit name="orange" color="orange"/>
      <fruit name ="lemon" color="yellow"/>
    </Fruits>
    </Main>then the solution is to use deep-equal function to test if two nodes are identical (as per their values, attributes and children) :
    declare function xf:Distinct_Fruits( $fruits as element(Fruits) )
    as xs:string
    string-join(
       for $i in $fruits/fruit
       let $f := $i[not(some $x in $i/preceding-sibling::fruit satisfies fn:deep-equal($x,.))]
       where ($f)
       return concat($f/@name, " = ", $f/@color)
    , "|"
    };which gives :
    banana = green|apple = red|grape = green|banana = red|orange = orange|lemon = yellowEdited by: odie_63 on 12 juil. 2011 14:43 - changed first example to reflect sample modification

  • Retrieve Distinct Values using XQuery

    The following query is returning me duplicate rows. How can we retrieve the distinct values? Can we use Distinct somewhere in this query? Please help me.
    SELECT XMLQuery('<Update>
    { for $demo in (ora:view("TableA")),
    $demo_audit in ora:view("TableA_AUDIT")
    let $demo_id := $demo/ROW/ID/text(),
    $demo_audit_trans_date := $demo_audit/ROW/DATE/text(),
    $demo_audit_id := $demo_audit/ROW/ID/text(),
    $demo_audit_type := $demo_audit/ROW/TYPE/text()
    where $demo_id = $demo_audit_id and
    $demo_audit_type = "U"
    return
    <result>
    <type>U</type>
    <id>{$demo_id}</id>
    </result>}</Data>' RETURNING CONTENT)
    FROM dual;

    Geoff,
    I tried distinct-values in both let and return; however the result isn't distinct. Is the usage correct?
    SELECT XMLQuery('<Update>
    {for   $a in ora:view("EMP")
           let   $a_empno         := distinct-values($a/ROW/EMPNO/text()),
                 $a_ename         := $a/ROW/ENAME/text(),
                 $a_job           := $a/ROW/JOB/text(),
                 $a_mgr           := $a/ROW/MGR/text(),
                 $a_deptno        := distinct-values($a/ROW/DEPTNO/text())
           return
           <op>
                 <empno>{distinct-values($a_empno)}</empno>
    <name>{$a_ename}</name>
    <deptno>{distinct-values($a_deptno)}</deptno>
    </op>}
    </Update>'
    RETURNING CONTENT)
    FROM dual;
    The output generated is given below:
    <Update>
    <op>
    <empno>1</empno>
    <name>Henry</name>
    <deptno>10</deptno>
    </op>
    <op>
    <empno>1</empno>
    <name>Henry1</name>
    <deptno>10</deptno>
    </op>
    </Update>

  • XQuery: Retrieve Distinct Values

    The following query is returning me duplicate rows. How can we retrieve the distinct values? Can we use Distinct somewhere in this query? Please help me.
    SELECT XMLQuery('<Update>
    { for $demo in (ora:view("TableA")),
    $demo_audit in ora:view("TableA_AUDIT")
    let $demo_id := $demo/ROW/ID/text(),
    $demo_audit_trans_date := $demo_audit/ROW/DATE/text(),
    $demo_audit_id := $demo_audit/ROW/ID/text(),
    $demo_audit_type := $demo_audit/ROW/TYPE/text()
    where $demo_id = $demo_audit_id and
    $demo_audit_type = "U"
    return
    <result>
    <type>U</type>
    <id>{$demo_id}</id>
    </result>}</Data>' RETURNING CONTENT)
    FROM dual;

    Playing the devil here...
    SELECT distinct XMLQuery...

  • How to get distinct values from a list and display in a ListView webpart.

    Hi,
    I have a requirement in which I need to pull unique/distinct values from a custom list and then display it via a listview webpart. Can any one suggest how this can be done.
    If possible please share the CAMEL query to fetch distinct values from a custom list.
    Thanks,
    Ankit

    Hi Ankit,
    Is there any particular reason that the values need to be shown in a list view web part?  Are you going to use that web part for filtering via web part connections?
    I ask because the enterprise site collection features include the SharePoint List Filter web part, which may accomplish what you're looking for.
    If you just need to display the values in a grid view, you might have more luck with the JavaScript Client Object Model.  Try putting the following in a text file:
    <style>
    .CustomTableClass{display:table;table-layout:fixed}
    .CustomRowClass{display:table-row;}
    </style>
    <div id="distinct_values_div" class="CustomTableClass">
    <img src="/_layouts/loading.gif" />
    </div>
    <script language="JavaScript" type="text/JavaScript">
    var siteUrl = '/sitecollection/web'; //use the actual subsite URL here
    var listName = 'mylist'; // use the actual list name here
    var field = "Title" // use the actual field you want to display here
    var divToUpdate = document.getElementById("distinct_values_div");
    var rowClass = "CustomRowClass";
    ExecuteOrDelayUntilScriptLoaded(function(){
    var clientContext = new SP.ClientContext(siteUrl);
    var web = clientContext.get_web();
    var lists = web.get_lists();
    var list = lists.getByTitle(listName);
    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml('<View><Query></Query><RowLimit>500</RowLimit></View>');
    this.collListItem = list.getItems(camlQuery);
    clientContext.load(collListItem,"Include ("+field+")");
    clientContext.executeQueryAsync(
    Function.createDelegate(this, this.onQuerySucceeded),
    Function.createDelegate(this, this.onQueryFailed));
    },"sp.js");
    function onQueryFailed(sender, args){
    divToUpdate.innerHTML = 'Unable to retrieve values: '+args.get_message());
    function onQuerySucceeded(sender, args){
    var allValues = [];
    var listItemEnumerator = collListItem.getEnumerator();
    divToUpdate.innerHTML = "";
    while(listItemEnumerator.moveNext()){
    var listItem = listItemEnumerator.get_current();
    if(!containsString(allValues,listItem.get_item(field)){
    var value = listItem.get_item(field);
    allValues.push(value);
    var newDiv = document.createElement("div");
    newDiv.className = rowClass;
    newDiv.innerHTML = value;
    divToUpdate.appendChild(newDiv);
    function containsString(strArray, text){
    var contains = false;
    for (var i=0; i<strArray.length; i++){
    if(strArray[i]==text){contains = true; break;}
    return contains;
    </script>
    Upload the text file to a library on the site, then add a content editor web part to a page where you want the distinct values to appear. In the content editor web part's properties, edit the Content Link so that it links directly to the text file.  This
    will cause the JavaScript to run on the page.

  • Get distinct values from a coma seperated string variable

    Hi ,
    I am getting an comma seperated string as in parameter, now i want to get the distinct values from that string and will use those values to pass it to a query.
    any help

    try this:
    sorry about the messiness - it's just quickly copied from some badly formatted code....
    TYPE T_FieldArray IS TABLE OF varchar2(255) INDEX BY BINARY_INTEGER;
    function SPLIT_CSV_FIELDS (
    p_Input_Str in varchar2,
    p_Delimiter in varchar2,
    p_Quote_Char in varchar2)
    return t_fieldarray is
    v_FieldArray T_FieldArray;
    v_input_str varchar2(4000);
    v_field_str varchar2(255);
    v_pos number;
    e number := 0;
    v_delim_str varchar2(3);
    cur_pos number;
    begin
    loop
    -- find each delimiter char in string
    v_pos := INSTR(v_input_str, p_Delimiter);
    -- each time delimiter char is found
    if v_pos > 0 then
    -- current field value is current string to position prior to delimiter char
    v_field_str := UPPER(SUBSTR(v_input_str, 1, v_pos - 1));
    -- remove quote char from end of field (if any)
    v_field_str := TRIM(TRANSLATE(v_field_str, NVL(p_Quote_Char, p_Delimiter), ' '));
    -- increment element number
    e := e + 1;
    -- get remainder of input string to check
    v_input_str := SUBSTR(v_input_str, v_pos + 1, LENGTH(v_input_str) - v_pos);
    v_FieldArray(e) := v_field_str;
    else
    -- increment element number
    e := e + 1;
    -- last field value is what's left of input string less quote char (if any)
    v_field_str := TRIM(TRANSLATE(UPPER(v_input_str), NVL(p_Quote_Char, p_Delimiter), ' '));
    v_FieldArray(e) := v_field_str;
    exit;
    end if;
    end loop;
    return v_FieldArray;
    end;

  • "How to get distinct values of sharepoint column using SSRS"

    Hi,
        I have integrated sharepoint list data to SQL Server reporting services. I am using the below to query sharepoint list data using sql reporting services.
    <Query>
       <SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetListItems</SoapAction>
       <Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetListItems">
          <Parameters>
             <Parameter Name="listName">
                <DefaultValue>{GUID of list}</DefaultValue>
             </Parameter>
             <Parameter Name="viewName">
                <DefaultValue>{GUID of listview}</DefaultValue>
             </Parameter>
             <Parameter Name="rowLimit">
                <DefaultValue>9999</DefaultValue>
             </Parameter>           
          </Parameters>
       </Method>  
    <ElementPath IgnoreNamespaces="True">*</ElementPath>
    </Query>
    By using this query, I am getting a dataset which includes all the columns of sharepoint list. Among these columns, I wanted to display only 2 columns (i.e Region and Sales type) using chart. I have created a Region parameter but when I click preview, the drop down box is giving me all the repeatative values of region like RG1,RG1,RG1,RG2,RG2,RG2,RG2,RG3.......... I wanted to display only distinct values of Region parameter so that whenever end user select region from the parameter drop down, it will display the respective value of Sales type column.
    Also when I select only RG1 parameter, it is giving me a chart including the sales type of all the Regions. (it should display me only the sales type of RG1) How can I link these 2 columns so that they will display the values respectively.
              I would really appreciate if anyone can help me out with this.
    Thanks,
    Sam.

    Hi Sam,
    By code, the CAML language doesn’t have any reserved word (or tag) to set this particular filter to remove duplicate results.
    In this case, we could use the custom code to get distinct records.
    Here are the detailed steps:
    1.         Create a hidden parameter that gets all the records in one field.
    Note: Please create another dataset that is same of the main dataset. This dataset is used for the parameter.
    2.         Create a function that used to remove the duplicate records.
    Here is the code:
    Public Shared Function RemoveDups(ByVal items As String) As String
    Dim noDups As New System.Collections.ArrayList()
    Dim SpStr
    SpStr = Split(items ,",")
    For i As Integer=0 To Ubound(Spstr)
    If Not noDups.Contains(SpStr(i).Trim()) Then
    noDups.Add(SpStr(i).Trim())
    End If
    Next
    Dim uniqueItems As String() = New String(noDups.Count-1){}
    noDups.CopyTo(uniqueItems)
    Return String.Join(",", uniqueItems)
    End Function
    3.         Create another parameter that will be used for filtering the maindata.
    Please set the available value to be =Split(Code.RemoveDups(JOIN(Parameters!ISSUE_STATUS_TEMP.Value, ",")), ",")
    And the default value to be the value you what such as the first value:
    =Split(Code.RemoveDups(JOIN(Parameters!ISSUE_STATUS_TEMP.Value, ",")), ",").(0)
    4.         Go to the main dataset. Open the property window of this dataset.
    5.         In the “Filters” tab, set the filter to be:
    Expression: <The field to be filter>
    Operator: =
    Value: =Parameters!Region.Value
    The parameter “Region” should be the parameter we created in the step3.
    Now, we should get distinct values of SharePoint columns.
    If there is anything unclear, please feel free to ask.
    Thanks,
    Jin
    Jin Chen - MSFT

  • Return multiple values from a web method??

    Hi,
    I am wondering if it's possible for a web method to return multiple values to a client. I know each web method can return only one value of a given data type. I am looking for something like ref or out keyword in C#. If it's not available, is there any workaround? Thanks.
    Regards

    Java web service endpoints can return multiple values by using the javax.xml.rpc.holders classes. The following post might help:
    http://forum.java.sun.com/thread.jspa?threadID=684916
    If you'll be returning lots of values, it might be worth considering a document-style implementation rather than RPC-style.

  • CE function to get distinct values from Column table

    Hi All,
    Could you please let me know the appropriate CE function to get the distinct values from column table.
    IT_WORK = SELECT DISTINCT AUFNR FROM :IT_WO_DETAILS;
    Thank you.

    Hi,
    If you have 10g, you can use Model( with model performance is better than connect by )
    Solution
    ========================================================================
    WITH t AS
    (SELECT '0989.726332, 1234.567432, 3453.736379, 3453.736379, 0989.726332, 3453.736379, 1234.567432, 1234.567432, 0989.726332'
    txt
    FROM DUAL)
    SELECT DISTINCT TRIM(CHAINE)
    FROM T
    MODEL
    RETURN UPDATED ROWS
    DIMENSION BY (0 POSITION)
    MEASURES (CAST( ' ' AS VARCHAR2(50)) AS CHAINE ,txt ,LENGTH(REGEXP_REPLACE(txt,'[^,]+',''))+1 NB_MOT)
    RULES
    (CHAINE[FOR POSITION FROM  1 TO NVL(NB_MOT[0],1) INCREMENT 1] =
    CASE WHEN NB_MOT[0] IS NULL THEN TXT[0] ELSE REGEXP_SUBSTR(txt[0],'[^,]+',1,CV(POSITION)) END );
    =========================================================================
    Demo
    =======================================================================
    SQL> WITH t AS
    2 (SELECT '0989.726332, 1234.567432, 3453.736379, 3453.736379, 0989.726332, 3453.736379, 123
    4.567432, 1234.567432, 0989.726332'
    3 txt
    4 FROM DUAL)
    5 SELECT DISTINCT TRIM(CHAINE)
    6 FROM T
    7 MODEL
    8 RETURN UPDATED ROWS
    9 DIMENSION BY (0 POSITION)
    10 MEASURES (CAST( ' ' AS VARCHAR2(50)) AS CHAINE ,txt ,LENGTH(REGEXP_REPLACE(txt,'[^,]+',''))+1 NB_MOT)
    11 RULES
    12 (CHAINE[FOR POSITION FROM  1 TO NVL(NB_MOT[0],1) INCREMENT 1] =
    13 CASE WHEN NB_MOT[0] IS NULL THEN TXT[0] ELSE REGEXP_SUBSTR(txt[0],'[^,]+',1,CV(POSITION)) END );
    TRIM(CHAINE)
    3453.736379
    1234.567432
    0989.726332
    SQL>
    ========================================================================

  • How to retrieve value from xml file

    hi all,
    can somebody pls tell me how to retrieve value from xml file using SAXParser.
    I want to retrieve value of only one tag and have to perform some validation with that value.
    it's urgent .
    pls help me out
    thnx in adv.
    ritu

    hi shanu,
    the pbm is solved, now i m able to access XXX no. in action class & i m able to validate it. The only thing which i want to know is it ok to declare static ArrayList as i have done in this code. i mean will it affect the performance or functionality of the system.
    pls have a look at the following code snippet.
    public class XMLValidator {
    static ArrayList strXXX = new ArrayList();
    public void validate(){
    factory.setValidating(true);
    parser = factory.newSAXParser();
    //all factory code is here only
    parser.parse(xmlURI, new XMLErrorHandler());     
    public void setXXX(String pstrXXX){          
    strUpn.add(pstrXXX);
    public ArrayList getXXX(){
    return strXXX;
    class XMLErrorHandler extends DefaultHandler {
    String tagName = "";
    String tagValue = "";
    String applicationRefNo = "";
    String XXXValue ="";
    String XXXNo = "";          
    XMLValidator objXmlValidator = new XMLValidator();
    public void startElement(String uri, String name, String qName, Attributes atts) {
    tagName = qName;
    public void characters(char ch[], int start, int length) {
    if ("Reference".equals(tagName)) {
    tagValue = new String(ch, start, length).trim();
    if (tagValue.length() > 0) {
    RefNo = new String(ch, start, length);
    if ("XXX".equals(tagName)) {
    XXXValue = new String(ch, start, length).trim();
    if (XXXValue.length() > 0) {
    XXXNo = new String(ch, start, length);
    public void endElement(String uri, String localName, String qName) throws SAXException {                    
    if(qName.equalsIgnoreCase("XXX")) {     
    objXmlValidator.setXXX(XXXNo);
    thnx & Regards,
    ritu

  • How can I return multiple values with PL/SQL Web Services

    Hi,
    I'm new to developping Web Services. I'm doing some tests with JDeveloper and OC4J on my local machine with a Web Services based on a PL/SQL function within a package. Right now that function only returns one value. So the xml response only has one output.
    I'd like to know how can I return multiple values with my PL/SQL Web Service. For example, if I want to return an employee's name and id? And that the xml contains two output : <employee>, <empid>?
    Reginald
    ps : I have searched the forum and I couldn't find an answer to this question, if that has been discussed AND answered before, can you please post the link? Thanks

    Alright, I actually found my answer. Since this was asked I think as a followup somewhere else I'll give my answer.
    It is very simple, all you have to do is create an Object Type and then Return that object type. After that, JDeveloper will take care of everything and you will have an xml response with multiple values. Here
    {color:#ff0000}
    create or replace TYPE person AS OBJECT
    ( id_interv number,
    first_name VARCHAR2(50),
    last_name VARCHAR2(50),
    date_birth date
    );{color}
    Then your function used in your Web Service should look something like this :
    {color:#ff0000}
    function info_emp (p_empno IN VARCHAR2) RETURN person AS
    l_emp person := person(-1,'','','');
    BEGIN
    SELECT first_name
    ,last_name
    ,emp_no
    INTO l_emp.first_name
    ,l_emp.last_name
    ,l_emp.emp_no
    FROM emp
    WHERE upper(emp_no) = upper (emp_no);
    {color}
    {color:#ff0000}
    RETURN l_emp;
    EXCEPTION WHEN NO_DATA_FOUND THEN
    l_emp := person (-1,'n/a','n/a','n/a');
    RETURN l_emp ;
    END info_emp;{color}
    {color:#ff0000}{color:#000000}After that, this is what the xml response looks like :{color}{color}
    &lt;first_name xsi:type="xsd:string"&gt;John&lt;/first_name&gt;
    &lt;last_name xsi:type="xsd:string"&gt;Doe&lt;/last_name&gt;
    &lt;emp_no xsi:type="xsd:string"&gt;0250193&lt;/emp_no&gt;

  • Vbscript RegRead function not behaving consistently and/or returning correct values when they exist in the registry

    Hello.
    I seem to be having a problem using the RegRead function within vbscript to return a simple value from the registry. When I run it on my workstation (windows 7 x64 sp1), it seems to miss certain registry values that are indeed there (specifically, I am looking
    for instances of "Adobe" in the displayName value of HKLM\Software\wow6432node\microsoft\windows\uninstall). However, when I run on a test VM, it returns the values fine. I am hoping someone might be able to explain this inconsistency and why it
    is happening.
    The code is very simple:
    On Error Resume Next
    if wscript.arguments.count < 1 then
    wscript.echo "usage: regread.vbs <hostname> <appname>"
    wscript.quit
    end if
    AppName = wscript.arguments(1)
    strComputer = wscript.arguments(0)
    const HKEY_LOCAL_MACHINE = &H80000002
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!//"& strComputer & "/root/default:StdRegProv")
    strKeyPath = "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
    objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
    For Each subkey In arrSubKeys
    'wscript.echo subkey
    InstalledAppName = ""
    InstalledAppName = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\DisplayName")
    wscript.echo vbtab&"DisplayName: "&InstalledAppName
    if instr(InstalledAppName,AppName) > 0 then
    wscript.echo vbcrlf&"found"&vbcrlf
    end if
    Next
    When I run "cscript regread.vbs remoteHost Adobe" on my local machine, it does not "find" any instance of Adobe within the registry of machine "remoteHost". However, when I run it from a test VM, it does find the existing instances
    of Adobe within the DisplayName value of the uninstall key of the registry, here is the output from both, first the non-working one, then the working test VM.
    Non-working:
    Microsoft (R) Windows Script Host Version 5.8
    Copyright (C) Microsoft Corporation. All rights reserved.
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: GPL Ghostscript 8.60
    DisplayName: GPL Ghostscript Fonts
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Office Professional Plus 2010
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Microsoft ASP.NET 2.0 AJAX Extensions 1.0
    DisplayName:
    DisplayName: Sybase PowerBuilder 12.0 Standard Runtime
    DisplayName: MSXML 4.0 SP3 Parser
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: MSXML 4.0 SP3 Parser (KB2758694)
    DisplayName: Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Windows Journal Viewer
    DisplayName: Java Auto Updater
    DisplayName: VBA (2627.01)
    DisplayName: Microsoft Visual C++ 2005 Redistributable
    DisplayName:
    DisplayName: Apple Software Update
    DisplayName: SQL Anywhere 9 for Windows x64
    DisplayName: Microsoft Office Professional Plus 2010
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Update for Microsoft Office 2010 (KB2553267) 32-Bit Edition
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Update for Microsoft Office 2010 (KB2760631) 32-Bit Edition
    DisplayName:
    DisplayName:
    DisplayName: Update for Microsoft Office 2010 (KB2494150)
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{90140000-0011-0000-0000-0000000FF1CE}_Office14.PROPLUS_{9569DE03-1425-4D12-96EB-44D852AF759A}\DisplayName
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Update for Microsoft Office 2010 (KB2553065)
    DisplayName:
    DisplayName: Security Update for Microsoft Office 2010 (KB2598243) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2825640) 32-Bit Edition
    DisplayName:
    DisplayName: Update for Microsoft Outlook Social Connector 2010 (KB2553406) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2553371) 32-Bit Edition
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Security Update for Microsoft Office 2010 (KB2589320) 32-Bit Edition
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Update for Microsoft Office 2010 (KB2596964) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2566458)
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Office Access MUI (English) 2010
    DisplayName:
    DisplayName: Microsoft Office Excel MUI (English) 2010
    DisplayName:
    DisplayName: Microsoft Office PowerPoint MUI (English) 2010
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Office Publisher MUI (English) 2010
    DisplayName:
    DisplayName: Microsoft Office Outlook MUI (English) 2010
    DisplayName: Update for Microsoft Outlook Social Connector 2010 (KB2553406) 32-Bit Edition
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Office Word MUI (English) 2010
    DisplayName:
    DisplayName: Microsoft Office Proof (English) 2010
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Office Proof (French) 2010
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Office Proof (Spanish) 2010
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Office Proofing (English) 2010
    DisplayName:
    DisplayName: Microsoft Office InfoPath MUI (English) 2010
    DisplayName:
    DisplayName: Microsoft Office Shared MUI (English) 2010
    DisplayName:
    DisplayName:
    DisplayName: Update for Microsoft Office 2010 (KB2553310) 32-Bit Edition
    DisplayName: Microsoft Office OneNote MUI (English) 2010
    DisplayName:
    DisplayName: Update for Microsoft OneNote 2010 (KB2553290) 32-Bit Edition
    DisplayName: Microsoft Office Groove MUI (English) 2010
    DisplayName:
    DisplayName: Microsoft Office Shared Setup Metadata MUI (English) 2010
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Office Access Setup Metadata MUI (English) 2010
    DisplayName:
    DisplayName: Microsoft Office Visio Viewer 2003 (English)
    DisplayName: Cardiff TeleForm
    DisplayName:
    DisplayName:
    DisplayName: CodeMax Runtime Installer
    DisplayName: Microsoft .NET Framework 1.1
    DisplayName:
    DisplayName:
    DisplayName: Microsoft XML Parser
    DisplayName:
    DisplayName: Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    Working:
    Microsoft (R) Windows Script Host Version 5.8
    Copyright (C) Microsoft Corporation. All rights reserved.
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: DYMO Label v.8
    DisplayName:
    DisplayName: GPL Ghostscript 8.60
    DisplayName: GPL Ghostscript Fonts
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Microsoft Office Professional Plus 2010
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Microsoft ASP.NET 2.0 AJAX Extensions 1.0
    DisplayName: Adobe Flash Player 11 Plugin
    found
    DisplayName: Sybase PowerBuilder 12.0 Standard Runtime
    DisplayName: MSXML 4.0 SP3 Parser
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: MSXML 4.0 SP3 Parser (KB2758694)
    DisplayName: Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148
    DisplayName: Cisco WebEx Meeting Center for Internet Explorer
    DisplayName: Configuration Manager Client
    DisplayName: Java 7 Update 51
    DisplayName: Citrix Online Launcher
    DisplayName: MSXML 4.0 SP3 Parser (KB2721691)
    DisplayName: Microsoft Windows Journal Viewer
    DisplayName: Java Auto Updater
    DisplayName: VBA (2627.01)
    DisplayName: Microsoft Visual C++ 2005 Redistributable
    DisplayName: Microsoft Visual C++ 2005 Redistributable
    DisplayName: Apple Software Update
    DisplayName: SQL Anywhere 9 for Windows x64
    DisplayName: Microsoft Office Professional Plus 2010
    DisplayName: Update for Microsoft Filter Pack 2.0 (KB2810071) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2826035) 32-Bit Edition
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Update for Microsoft Office 2010 (KB2553267) 32-Bit Edition
    DisplayName: Update for Microsoft PowerPoint 2010 (KB2553145) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2589375) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2687276) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2760631) 32-Bit Edition
    DisplayName: Update for Microsoft OneNote 2010 (KB2810072) 32-Bit Edition
    DisplayName: Security Update for Microsoft InfoPath 2010 (KB2687422) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2494150)
    DisplayName: Security Update for Microsoft Office 2010 (KB2687423) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2597986) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2794737) 32-Bit Edition
    DisplayName: Update for Microsoft SharePoint Workspace 2010 (KB2589371) 32-Bit Edition
    DisplayName: Security Update for Microsoft Publisher 2010 (KB2553147) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2850016) 32-Bit Edition
    DisplayName: Definition Update for Microsoft Office 2010 (KB982726) 32-Bit Edition
    DisplayName: Security Update for Microsoft InfoPath 2010 (KB2760406) 32-Bit Edition
    DisplayName: Update for Microsoft Visio Viewer 2010 (KB2810066) 32-Bit Edition
    DisplayName: HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{90140000-0011-0000-0000-0000000FF1CE}_Office14.PROPLUS_{9569DE03-1425-4D12-96EB-44D852AF759A}\DisplayName
    DisplayName: Update for Microsoft Office 2010 (KB2767886) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2597087) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2687510) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2553065)
    DisplayName: Update for Microsoft Access 2010 (KB2553446) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2598243) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2825640) 32-Bit Edition
    DisplayName: Security Update for Microsoft Visio 2010 (KB2810068) 32-Bit Edition
    DisplayName: Update for Microsoft Outlook Social Connector 2010 (KB2553406) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2553371) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2826026) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2589298) 32-Bit Edition
    DisplayName: Security Update for Microsoft Excel 2010 (KB2826033) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2589320) 32-Bit Edition
    DisplayName: Security Update for Microsoft Word 2010 (KB2863902) 32-Bit Edition
    DisplayName: Security Update for Microsoft Office 2010 (KB2826023) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2760598) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2596964) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2566458)
    DisplayName: Update for Microsoft Office 2010 (KB2589352) 32-Bit Edition
    DisplayName: Security Update for Microsoft Outlook 2010 (KB2837597) 32-Bit Edition
    DisplayName: Microsoft Office Access MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office Excel MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office PowerPoint MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Update for Microsoft PowerPoint 2010 (KB2553145) 32-Bit Edition
    DisplayName: Microsoft Office Publisher MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office Outlook MUI (English) 2010
    DisplayName: Update for Microsoft Outlook Social Connector 2010 (KB2553406) 32-Bit Edition
    DisplayName: Update for Microsoft Outlook 2010 (KB2687623) 32-Bit Edition
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office Word MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office Proof (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Update for Microsoft Office 2010 (KB2850079) 32-Bit Edition
    DisplayName: Microsoft Office Proof (French) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Update for Microsoft Office 2010 (KB2850079) 32-Bit Edition
    DisplayName: Microsoft Office Proof (Spanish) 2010
    DisplayName: Update for Microsoft Office 2010 (KB2850079) 32-Bit Edition
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Update for Microsoft Filter Pack 2.0 (KB2810071) 32-Bit Edition
    DisplayName: Update for Microsoft OneNote 2010 (KB2810072) 32-Bit Edition
    DisplayName: Update for Microsoft SharePoint Workspace 2010 (KB2589371) 32-Bit Edition
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Update for Microsoft Office 2010 (KB2760598) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2589352) 32-Bit Edition
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office Proofing (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office InfoPath MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office Shared MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Security Update for Microsoft Office 2010 (KB2553284) 32-Bit Edition
    DisplayName: Update for Microsoft Office 2010 (KB2553310) 32-Bit Edition
    DisplayName: Microsoft Office OneNote MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Update for Microsoft OneNote 2010 (KB2553290) 32-Bit Edition
    DisplayName: Microsoft Office Groove MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office Shared Setup Metadata MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office Access Setup Metadata MUI (English) 2010
    DisplayName: Microsoft Office 2010 Service Pack 1 (SP1)
    DisplayName: Microsoft Office Visio Viewer 2003 (English)
    DisplayName: Cardiff TeleForm
    DisplayName: Adobe Acrobat XI Pro
    found
    DisplayName: QuickTime
    DisplayName: CodeMax Runtime Installer
    DisplayName: Microsoft .NET Framework 1.1
    DisplayName: WinZip 15.0
    DisplayName: McAfee VirusScan Enterprise
    DisplayName: Microsoft XML Parser
    DisplayName: McAfee Agent
    DisplayName: Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName:
    DisplayName: Apple Application Support
    Does anyone know why this might be happening? The only main difference is that the machine that the script does not work on, has visual studio 2013 installed.
    Please help

    Well I think we can agree that it is not supported remotely. Because while it did initially work remotely, it didnt behave consistently; that is, it worked on the VM, but not my desktop. That's the whole reason I created this thread. Sorry if you are confused,
    but I most certainly was not lying and not trying to troll the forum or whatever it is you are insuinuating. Chill out a little bit and maybe you might get that Microsoft MVP.
    I am trying to get you t understand why what you are saying is wrong.  You may have thought it worked but there were a number of things that make it impossible to actually work.
    You were enumerating a remote key.  You were using that key name with RegRead and it was looking up the local value.  That is why it could not find remote keys and values.  The local and remote machines will not match on all keys.
    The correct call is the "GetStringValue" of the registry provider because it is the only call that can read remote values. My point is that you were fooling yourself by thinking that it ever actually worked.  If anything it was just dumb luck
    that the keys would match. 
    So maybe you weren't actually lying but you were surely foolingyourself and confusing us.
    Anyway - glad you fixed it and just remember to not mix calls like you did.  Also don't use On Error Resume Next unless you plan on test every call for an error.
    ¯\_(ツ)_/¯

Maybe you are looking for

  • How can i call a method from the a subdirectory using packages

    This is my directory structure: java --p1 --One.java --p2 --Two.java package java.p1; import p2.Two; public class One      public static void main(String args[])           Two obj = new Two();           obj.p(); package java.p2; public class Two     

  • Share news----Oracle JHeadstart 10g release 9.0.4 is now production.

    Share the news and product information to all Jdeveloper member if you expect to achieve good coding productivity in J2ee environment, Oracle announces that Oracle JHeadstart 10g release 9.0.4 is now production. Main new features are: - generation su

  • Oracle-10g RAC on VMware installed on Windows-7(Host)

    Hi, My host OS is Windows-7. Docs. posted on this forum for RAC on VMware says: your Host OS should be Centos OS and in which you will install VMware and Client tools also. In this way u can clone another RAC2 machine. But I have Oracle VM Virtual Bo

  • Mac freezing

    my macbook air is freezing with Mac OS X Yosemite installed please help!!

  • JavaFX SDK - no tab widget?

    The previous JavaFX releases had somehow the possibility to use a tabbedPane and the tab widget. I don't see them back in the list of javafx.ext.swing widgets of the newly released javaFX SDK. Will they be added in a future SDK release or if not, doe