XMLTable - passing in dynamic variables

Hi,
I am using XMLTable to shred XML data stored in external files into a virtual table so it can be imported into Oracle 10g. I am having problems trying to pass a dynamic file path parameter into the XMLTable function. E.g.
DECLARE
xml_file_name varchar2(50):= '/public/user.xml'; --currently hardcoded in example - will be dynamically built
cursor c2 is
select * from XMLTable('for $i in doc($XMLPATH) return $i/ROWSET/ROW'
passing xml_file_name as "XMLPATH"
columns     ID INTEGER PATH 'ID',
USERNAME                VARCHAR2(255)     PATH 'USERNAME');
BEGIN
--do the import here
END;
The error I get is:
PL/SQL: ORA-00932: inconsistent datatypes: expected - got CHAR
Is this correct use of the "passing" parameter? If not, is there any other way to pass in a dynamically xml file path?
Thanks.

Thanks for your speedy response - I understand now that I need to pass the params as XMLTypes, but am still struggling with the syntax...
I've created a directory object and have verified it exists by running:
select xmltype(dbms_xslprocessor.read2clob('XMLREPORT_DIR', 'user.xml')) from dual;
When I put this into the import routine I get a:
ORA-03113: end-of-file on communication channel
DECLARE
cursor c2 is
select * from XMLTable('for $i in doc($XMLFILE) return $i/ROWSET/ROW'
passing xmltype(dbms_xslprocessor.read2clob('XMLREPORT_DIR', 'user.xml')) as XMLFILE
columns     ID INTEGER,
USERNAME                VARCHAR2(255));
BEGIN
--do the import
END;
Presumably I'm not referencing the file object correctly within the XQuery - any suggestions on what I need to do to fix things?
Thanks again!

Similar Messages

  • Binding dynamic variable in XQuery doesn't work: ORA-00932

    I have a table with several columns. One of those columns is a XMLType.
    My goal is to have a query which selects rows from the table of which the XML column matches certain criteria.
    I'm trying following example (JDBC) : http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28369/xdb_xquery.htm#insertedID11
    First, I created my own query, which looks like:
    select * from MyTable t, XMLTABLE( xmlnamespaces (DEFAULT 'http://test), 'for $i in /RootElement where $i/SubElement[contains(Element, "someValue")] return "true"' passing t.xmlColumn)This works as expected. Next, as done in the example, I'm trying to replace the "someValue" with a dynamic variable.
    Query then looks like:
    select * from MyTable t, XMLTABLE( xmlnamespaces (DEFAULT 'http://test), 'for $i in /RootElement where $i/SubElement[contains(Element, $val)] return "true"' passing t.xmlColumn, :1 as "val")This does not seem to work, neither in SQLDeveloper nor in java.
    I always get the :
    java.sql.SQLException: ORA-00932: inconsistent datatypes: expected - got CHAR(SQLDeveloper just gives ORA-00932)
    When I put $val between quotes (so "$val") then I get no error, but then I get no results either.
    I think it will not replace $val in that case but just use it as a literal, so thats not what I want
    I also tried to remove "contains" xpath and use the exact same example as on the oracle page
    select * from MyTable t, XMLTABLE( xmlnamespaces (DEFAULT 'http://test), 'for $i in /RootElement where $i/SubElement/Key = $val return "true"' passing t.xmlColumn, :1 as "val")But this doens't help either.
    I'm clueless about this, so any help would be appreciated
    Edited by: user5893566 on Nov 29, 2008 6:24 AM

    Ok, I tested it using the latest enterprise edition (11g) and there it works as expected.
    However, on 10.2.0.1.0 and 10.2.0.3.0 it gives this error.
    Is this a bug which has been fixed or should I do something special on 10g ?
    I installed all of these as normal without any special settings, created the tables and ran the query...

  • How to pass a JavaScript variable into a java method

    I would like to know how to pass a JavaScript variable into a java method with in a <% %> tag inside a JSP file like so:
    <%@ page contentType="text/html;charset=windows-1252"%>
    <html>
    <head>
    <script LANGUAGE="JavaScript">
    myValue = someDynamicValue;
    <% System.out.println(myValue)%>
    </script>
    </head>
    <body>
    </body>
    </html>
    obviously "System.out.println(myValue)" will not work because myValue is seen as a java variable and not a JavaScript variable.
    I would like to know how to let the jsp file, that I wrote in the above code, see myValue as a JavaScript variable and not a java variable so that I can pass it to a java method.
    NOTE: the java method does not have to be a println() method, it can be any method of my choice.
    NOTE: someDynamicValue is a JavaScript value that can dynamically change

    I don't believe you can. JSPs are really just elaborate templates that an engine such as Tomcat parses and generates an HTML page based on. That page is then displayed to the user. By the time you want to use some function in Javascript, the JSP has already been parsed and generated.
    Basically, Javascript and JSPs can't talk to each other. One's server-side and the other is client-side.

  • Order by dynamic variable

    Hello,
    I am trying to sort my query based on a dynamic variable p_sorton in the cursor as follows:
    function getMarketView2(
    p_event_id in ex_event.event_id%type,
    p_fromrow in integer,
    p_torow in integer,
    p_appTZ in char,
    p_calcTZ in char,
    p_sorton in varchar2) return varchar2 as
    type t_ticket_trade is ref cursor return ex_ticket_trade%rowtype;
    v_return varchar2(32767);
    v_return_integer integer;
    v_String varchar2(32767);
    v_ex_ticket_trade_obj ex_ticket_trade_obj;
    v_rowcount integer:=0;
    v_rowtotal integer:=0;
    v_done boolean:=false;
    v_sysdate date:=NEW_TIME(SYSDATE,trim(p_appTZ),trim(p_calcTZ));
    cursor cur_ticket_trade_event_open (p_event_id in ex_event.event_id%type, v_sysdate in date) is
    select "TICKET_TRADE_ID","SELLER_ACCESS_ID","CREATE_DATETIME","MODIFY_DATETIME","LASTMODIFY_BY",
    "BUYER_ACCESS_ID","OPEN_TRADE_DATE","CLOSE_TRADE_DATE","TICKET_SUITE_CODE","TICKET_DATETIME",
    "TICKET_TIMEZONE","TICKET_EVENT_ID","TICKET_TYPE","TICKET_SEAT_TYPE","TICKET_OPPONENT",
    "TICKET_TOTAL_SEAT","TICKET_PRICE","TICKET_PRICE_EXT","START_BID_DATE","OPEN_BID_PRICE",
    "CURRENT_BID_COUNT","CURRENT_HIGH_BID","CURRENT_LAST_BID_DATETIME","CURRENT_BID_INCREMENT_BY","TICKET_TRANSACTION_DATE",
    "TICKET_TRADE_STATUS" from ex_ticket_trade
    where ex_ticket_trade.TICKET_EVENT_ID = p_event_id
    and (ex_ticket_trade.ticket_datetime > v_sysdate)
    and (ex_ticket_trade.ticket_trade_status in ('F','A','AB'))
    and (ex_ticket_trade.ticket_suite_code='N' OR ex_ticket_trade.ticket_suite_code='Y')
    order by p_sorton desc;
    --ex_ticket_trade.ticket_datetime desc;
    ........then comes the rest of the code........
    This code compiles fine but does not use the value passed in the param p_sorton in the order by clause.
    the same code works fine when hardcoded to "ex_ticket_trade.ticket_datetime"
    No idea where I may be going wrong?
    Also can I do anything like ORDER BY v1 v2
    where v1 specifies columns to sort on and v2 asc/desc, coz that's what I really need to do?
    Pls help ...
    Thanks,
    Karuna

    Hi,
    Thanks for the reply ... I tried the same but due to my basic knowledge of pl-sql, I'm running into some other problem.
    ================================================
    CREATE OR REPLACE FUNCTION testMarketView(p_event_id in ex_event.event_id%type,
    p_fromrow in integer,p_torow in integer,
    p_appTZ in char, p_calcTZ in char, p_sorton in varchar2
                   ) return varchar2 as
    type t_ticket_trade is ref cursor return ex_ticket_trade%rowtype;
         v_return varchar2(32767);
         v_return_integer integer;
         v_String varchar2(32767);
         v_ex_ticket_trade_obj ex_ticket_trade_obj;
         v_rowcount integer:=0;
         v_rowtotal integer:=0;
         v_done boolean:=false;
         v_sysdate date:=NEW_TIME(SYSDATE,trim(p_appTZ),trim(p_calcTZ));
         TYPE t_ticket_trade_event IS REF CURSOR;
         cur_ticket_trade_event t_ticket_trade_event;
         v_dynQuery VARCHAR2(1000);
         cursor cur_event_seat_section_row (p_ticket_trade in ex_event_seat_inv.ticket_trade_id%type) is
         select distinct event_seat_section, event_seat_row
         from ex_event_seat_inv
         where ticket_trade_id = p_ticket_trade;
         type t_event_seat_section_row is ref cursor return cur_event_seat_section_row%rowtype;
    /*v_section varchar2(32767);
         v_section_row varchar2(32767);
         the 26 variables that belong to table ex_ticket_trade-----------
         v_ticket_transaction_date date;
         v_ticket_trade_status varchar2(10);*/
    begin
    v_dynQuery := 'select
    "TICKET_TRADE_ID","SELLER_ACCESS_ID","CREATE_DATETIME","MODIFY_DATETIME","LASTMODIFY_BY",
    "BUYER_ACCESS_ID","OPEN_TRADE_DATE","CLOSE_TRADE_DATE","TICKET_SUITE_CODE","TICKET_DATETIME",
    "TICKET_TIMEZONE","TICKET_EVENT_ID","TICKET_TYPE","TICKET_SEAT_TYPE","TICKET_OPPONENT",
    "TICKET_TOTAL_SEAT","TICKET_PRICE","TICKET_PRICE_EXT","START_BID_DATE",
    "OPEN_BID_PRICE","CURRENT_BID_COUNT","CURRENT_HIGH_BID",
    "CURRENT_LAST_BID_DATETIME","CURRENT_BID_INCREMENT_BY",
    "TICKET_TRANSACTION_DATE","TICKET_TRADE_STATUS"
    from ex_ticket_trade where
    ex_ticket_trade.TICKET_EVENT_ID = ' || p_event_id || ' and (ex_ticket_trade.ticket_datetime > '|| v_sysdate||')
    and (ex_ticket_trade.ticket_trade_status in ('||'''F'''||','||'''A'''||','||'''AB'''||'))
    and (ex_ticket_trade.ticket_suite_code='||'''N'''||' OR ex_ticket_trade.ticket_suite_code='||'''Y'''||')
    order by '|| p_sorton ||'desc ' ;
    select count(*) into v_rowtotal
    from ex_ticket_trade
    where
    ex_ticket_trade.TICKET_EVENT_ID = p_event_id
    and (ex_ticket_trade.ticket_datetime > v_sysdate)
    and (ex_ticket_trade.ticket_trade_status in ('F','A','AB'))
    and (ex_ticket_trade.ticket_suite_code='N' OR ex_ticket_trade.ticket_suite_code='Y')
    order by ex_ticket_trade.ticket_datetime asc;
    v_ex_ticket_trade_obj:=ex_ticket_trade_tabobj.initialize;
    v_rowcount:=1;
    OPEN cur_ticket_trade_event FOR v_dynQuery;
         LOOP
         FETCH cur_ticket_trade_event INTO t_ticket_trade;
    /*     -- THIS IS WHAT I HAVE TO DEAL WITH IF I CAN"T
         --PUT THE RESULTS OF THE CURSOR in t_ticket_trade
         v_ticket_trade_id , v_seller_access_id , v_create_datetime, v_modify_datetime , v_lastmodify_by ,
         v_buyer_access_id, v_open_trade_date, v_close_trade_date, v_ticket_suite_code, v_ticket_datetime,
         v_ticket_timezone, v_ticket_event_id , v_ticket_type, v_ticket_seat_type,     v_ticket_opponent,
         v_ticket_total_seat, v_ticket_price ,     v_ticket_price_ext , v_start_bid_date, v_open_bid_price ,
         v_current_bid_count , v_current_high_bid , v_current_last_bid_datetime , v_current_bid_increment_by ,
         v_ticket_transaction_date , v_ticket_trade_status ;
    if (t_ticket_trade.TICKET_SEAT_TYPE is null) then
    for t_event_seat_section_row in cur_event_seat_section_row(t_ticket_trade.ticket_trade_id) loop
    if (t_event_seat_section_row.event_seat_section is not null) then
    v_section := t_event_seat_section_row.event_seat_section;
    BEGIN
    select alt_txt into v_parking_desc from ex_alt_txt
    where event_id = p_event_id
    and alt_txt_type = 'PARKING_DESC'
    and original_txt = v_section;
    t_ticket_trade.TICKET_SEAT_TYPE := v_parking_desc;
    EXCEPTION
    WHEN no_data_found THEN
    v_section_row := 'Sec. ' || v_section;
    if (t_event_seat_section_row.event_seat_row is not null) then
    v_section_row := v_section_row || ', Row ' || t_event_seat_section_row.event_seat_row;
    end if;
    v_section_row := substr(v_section_row, 1, 30);
    t_ticket_trade.TICKET_SEAT_TYPE := v_section_row;
    END;
    exit;
    end if;
    end loop;
    end if;
    if ((v_rowcount >= p_fromrow) and (v_rowcount <= p_torow)) then
    -- p_ex_ticket_trade => t_ticket_trade
         -- THIS IS WHAT I CAN'T DO in the next line IF I get the results of the cursor in seperate variables
         v_ex_ticket_trade_obj:=ex_ticket_trade_tabobj.maprowtoobj(p_ex_ticket_trade => t_ticket_trade);
    v_string:=v_string||v_ex_ticket_trade_obj.todatastring;
    end if;
    if (v_rowcount>=p_torow) then
    exit;
    end if;
    v_section := null;
    v_section_row := null;
    v_parking_desc := null;
    v_rowcount:=v_rowcount+1;
    end loop;
    v_prefix:='1' || v_delimiter || v_rowtotal || v_terminator;
    v_return:= v_prefix || v_ex_ticket_trade_obj.tometadata||v_string;
    return v_return;
    end;
    ===========================================
    I keep running into one error:
    PLS-00403: expression 'T_TICKET_TRADE' cannot be used as an INTO-target of a SELECT/FETCH statement
    How can I get each row of the cursor either as an object or as 'T_TICKET_TRADE' ?
    Thanks,
    Karuna

  • Please help how to pass the dynamic value to VO -- Urgent.

    Hi,
    I have an Oracle Standard VO( SQL Query). As per my requriemnt i extended standard VO with one new feild.Now i want to query the new VO dynamically.
    How to pass the dynamic values to new query?
    for refence i am giving my old query.
    select
    secondary_inventory_name as SubInventoryName,
    description as Description,
    from mtl_secondary_inventories
    my new Query is like this:
    select
    secondary_inventory_name,
    description,
    Item
    from mtl_secondary_inventories
    where item='123456'
    I want to pass this "where item="123456" as dynamically. please help where i will do the change's.
    Thanks,
    Sekhar.

    Hi,
    thanks pratap for quick response...but i am extending VO from Standard VO.
    I have a Standard VO which contains a bind variable suppose :1.
    I have extended this above standard VO and i want to add another bind variable say :2 to the custom VO.
    Please tell me how will i pass bind parameter value to the bind variable in runtime ?
    what are files i want to change?
    Thanks,
    Sekhar.

  • Dynamic Variables and New-Object - in a GUI

    so, i have not found anything that i can parlay into a solution for what i am attempting to do.  
    Basically i am using powershell to build a GUI to manage websites on various servers.  
    in a nutshell:
    - i have an array with the servers i want to query
    - a foreach loop gets me the site names for each server (number of sites can vary on a server).
    - need put checkboxes on a GUI for every site to do something (25-30 sites across 8 servers).
    currently i am passing the $dir.name variable to a function that will create the new variable using this command:
    $pName = $dir.name New-variable -name $pName -value (New-Object System.Windows.Forms.CheckBox)
    $pName.Location -value (New-Object System.Drawing.Size(10,$i))
    $pName.Size -value (New-Object System.Drawing.Size(100,20))
    $Pname.Text -value $dir.name
    $groupBox.Controls.Add($pName) 
    Problem is i am not able to do anything with my newly created variable.  I am trying to use the following code to position the new checkbox but i get nothing (same for text, size, etc.)  I am not seeing any errors, so i don't know what i have going
    wrong.  
    is this even possible?
    I am able to create static checkboxes, and i can create dynamic variables.  But i can't mix the two...

    Here is how we normally use listboxes to handle form situations like this one.  The listboxes can automatically select subgroups.
    The hash of arrays can be loaded very easily with a script or the results of the first list can be used to lookup and set the contents of the second.
    Notice how little code is actually used.  This is all of the setup code needed aside from the from definition:
    $FormEvent_Load={
    $global:serversToSites=@{
    Server1=@('S1_SITE1','S1_SITE2','S1_SITE3')
    Server2=@('S2_SITE1','S2_SITE2','S2_SITE3')
    Server3=@('S3_SITE1','S3_SITE2','S3_SITE3')
    $listbox1.Items.AddRange($serversToSites.Keys)
    $listbox1_SelectedIndexChanged={
    $listbox2.Items.Clear()
    $listbox2.Items.AddRange($global:serversToSites[$listbox1.SelectedItem])
    $listbox2_SelectedIndexChanged={
    [void][System.Windows.Forms.MessageBox]::Show($listbox2.SelectedItem,'You Selected Site')
    Here is the complete demo form:
    [void][reflection.assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
    [void][reflection.assembly]::Load("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
    [System.Windows.Forms.Application]::EnableVisualStyles()
    $form1 = New-Object 'System.Windows.Forms.Form'
    $listbox2 = New-Object 'System.Windows.Forms.ListBox'
    $listbox1 = New-Object 'System.Windows.Forms.ListBox'
    $buttonOK = New-Object 'System.Windows.Forms.Button'
    $InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
    $FormEvent_Load={
    $global:serversToSites=@{
    Server1=@('S1_SITE1','S1_SITE2','S1_SITE3')
    Server2=@('S2_SITE1','S2_SITE2','S2_SITE3')
    Server3=@('S3_SITE1','S3_SITE2','S3_SITE3')
    $listbox1.Items.AddRange($serversToSites.Keys)
    $listbox1_SelectedIndexChanged={
    $listbox2.Items.Clear()
    $listbox2.Items.AddRange($global:serversToSites[$listbox1.SelectedItem])
    $listbox2_SelectedIndexChanged={
    [void][System.Windows.Forms.MessageBox]::Show($listbox2.SelectedItem,'You Selected Site')
    $Form_StateCorrection_Load=
    #Correct the initial state of the form to prevent the .Net maximized form issue
    $form1.WindowState = $InitialFormWindowState
    $form1.Controls.Add($listbox2)
    $form1.Controls.Add($listbox1)
    $form1.Controls.Add($buttonOK)
    $form1.AcceptButton = $buttonOK
    $form1.ClientSize = '439, 262'
    $form1.FormBorderStyle = 'FixedDialog'
    $form1.MaximizeBox = $False
    $form1.MinimizeBox = $False
    $form1.Name = "form1"
    $form1.StartPosition = 'CenterScreen'
    $form1.Text = "Form"
    $form1.add_Load($FormEvent_Load)
    # listbox2
    $listbox2.FormattingEnabled = $True
    $listbox2.Location = '237, 26'
    $listbox2.Name = "listbox2"
    $listbox2.Size = '120, 134'
    $listbox2.TabIndex = 2
    $listbox2.add_SelectedIndexChanged($listbox2_SelectedIndexChanged)
    # listbox1
    $listbox1.FormattingEnabled = $True
    $listbox1.Location = '13, 26'
    $listbox1.Name = "listbox1"
    $listbox1.Size = '120, 134'
    $listbox1.TabIndex = 1
    $listbox1.Sorted = $true
    $listbox1.add_SelectedIndexChanged($listbox1_SelectedIndexChanged)
    # buttonOK
    $buttonOK.Anchor = 'Bottom, Right'
    $buttonOK.DialogResult = 'OK'
    $buttonOK.Location = '352, 227'
    $buttonOK.Name = "buttonOK"
    $buttonOK.Size = '75, 23'
    $buttonOK.TabIndex = 0
    $buttonOK.Text = "OK"
    $buttonOK.UseVisualStyleBackColor = $True
    #Save the initial state of the form
    $InitialFormWindowState = $form1.WindowState
    #Init the OnLoad event to correct the initial state of the form
    $form1.add_Load($Form_StateCorrection_Load)
    #Clean up the control events
    $form1.add_FormClosed($Form_Cleanup_FormClosed)
    #Show the Form
    $form1.ShowDialog()
    You can easily substitute  CheckedListbox if you like checkboxes.
    ¯\_(ツ)_/¯

  • Dynamic Variable

    Hi,
    I wrote a script logic like this for Dynamic varibales.
    {Code}
    *XDIM_MEMBERSET TIME =2009.FEB,2009.MAR
    *XDIM_MEMBERSET  C_ACCT= 12110600
    *XDIM_MEMBERSET C_CATEGORY = C_100
    *WHEN C_ACCT
    *IS "12110600"
    *REC(EXPRESSION=%VALUE%/1.5098,RPTCURRENCY="EUR")
    *ENDWHEN
    *COMMIT
    {Code}
    How to pass the value for %VALUE%. After executing the Script I am getting the error " The Root element is missing":
    I validated the script logic it is successful.
    Can someone help.
    thanks

    Hi,
    Please go thru this link
    [http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d01ce779-f1b2-2b10-07ba-da3734013245]
    Also, please make sure that you have a '$' sign before and after the dynamic variable.
    Good luck,
    Vijay.

  • Passing an APEX variable to another web page outside of APEX

    I need to pass an item variable from an APEX page to another web site outside of APEX. Does anyone know what syntax I would need to use? It needs to keep the session in tact.
    Thanks.
    Kelly

    Ah, as I read more closely ...   You say
    FIND_USER_IN_DB is defined as an application item.
    Application items get treated differently from Page Items.  They aren't on any page so there's nothing to directly tie them to a particular page operation. [You may have tried an obvious approach that doesn't work.]  Please check where you
    sets FIND_USER_IN_DB to the value in &P8_USERNAME.
    Does it say "Page Item" / "Item" there?   Check the selector?  Can you select an Application Item.  If memory serves, my (sad) experience is that you can list an Application Item here but it doesn't "work" and there's no warning that it's a problem -- except it doesn't work!  Application Items can't be given values this way.  Hey, it is what it is.  That's the way it doesn't work!
    So I believe you must "Submit" FIND_USER_IN_DB and then you can reference it on Page 11.  There must be several ways to do this.  I'll seaarch / ponder for a plain vanilla one.
    Howard
    (more)
    Well, maybe I have to take it back.   There is this documentation that suggests you can pass Application Items. http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35125/bldapp_item_app.htm#BCEHFDDJ   See Note in Paragraph 8.
    "Note: If you must set this item's value in session state using Ajax, then an Unrestricted protection level must be used for the item (for example in Dynamic Actions, Set Value, Page Items to Submit or Cascading LOVs, Page Items to Submit)."
    I'll try to run a test.  Still, the best solution for me still seems to assign the value of P8_USERNAME to FIND_USER_IN_DB and then submit the page which will plce the value in session.
    (more)  I was able to pass an Application Item if I set Session State Protection to Unrestricted.  Probably not a good idea!

  • JSTL pass through dynamic-attributes

    Folks,
    Hi. I'm just learning Java, JSP & JSTL, and I've hit a bit of a curly one.
    What's the best way to pass dynamic-attributes from a JSTL tag to another JSTL tag? Is there a way to pass them directly as a Map?
    I wrote a generic-html-table-maker custom JSTL tag called "tabulator.tag" (based on one of the examples in JavaServer Pages by Hans Bergsten).
    "tabulator.tag"
    <%-- format contents as a HTML table --%>
    <%@ tag body-content="empty" dynamic-attributes="dynattrs"  
          import="java.util.*" %>
    <%@ attribute name="content" required="true" type="java.util.Map" %>
    <%@ attribute name="caption" %>
    <%@ attribute name="headers" type="java.lang.Boolean" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <table
      <c:forEach items="${dynattrs}" var="a">
        ${a.key}="${a.value}"
      </c:forEach>
    >
      <c:if test="${!empty caption}">
        <caption>${caption}</caption>
      </c:if>
      <c:if test="${headers}">
        <tr>
          <th>Name</th>
          <th>Value</th>
        </tr>
      </c:if>
      <c:forEach items="${content}" var="row">
        <tr>
          <td>${row.key}</td>
          <td>${row.value}</td>
        </tr>
      </c:forEach>
    </table>This works fine when called from directly from jsp as below:
    "tabulator_test.jsp"
    <%-- format request headers as a HTML table --%>
    <%@ page contentType="text/html" %>
    <%@ taglib prefix="my" tagdir="/WEB-INF/tags/mytags" %>
    <my:tabulator
      headers="true" caption="Tabulated Request Headers" content="${header}"
      border="1" cellspacing="0" cellpadding="2"
    />BUT... Now I'm trying to write a "requestHeaders.tab" just to "centralise" the table attributes... but I can't figure out how to pass the dynamic-attributes (containing the html table attributes) from "requestHeaders.tab" through to tabulator.tab
    "headers2.tab" (aka "requestHeaders.tab")
    <%-- format request headers as a HTML table --%>
    <%@ tag body-content="empty" dynamic-attributes="dynattrs" %>
    <%@ attribute name="caption" required="true" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    <%@ taglib prefix="my" tagdir="/WEB-INF/tags/mytags" %>
    <%-- build a string of the dynamic-attributes --%>
    <c:set var="s">
      <c:forEach items="${dynattrs}" var="a">
        ${a.key}="${xmlEncode(a.value)}"
      </c:forEach>
    </c:set>
    s: ${s}
    <%-- and pass them to tabulator --%>
    <my:tabulator content="${header}" caption="${caption}" ${s} />... throws the below Tomcat Error when called by ...
    "headers2.jsp"
    <%@ page contentType="text/html" %>
    <%@ taglib prefix="my" tagdir="/WEB-INF/tags/mytags" %>
    <html>
      <body>
        <my:headers2 caption="Request Headers"
          border="1" cellspacing="0" cellpadding="5"
        />
      </body>
    </html>
    Apache Tomcat/5.5.17 - Error report
    exception
    org.apache.jasper.JasperException: /WEB-INF/tags/mytags/headers2.tag(14,55) Unterminated <my:tabulator tag
         org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause
    org.apache.jasper.JasperException: /WEB-INF/tags/mytags/headers2.tag(14,55) Unterminated <my:tabulator tag
         org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
                           ....This is just an intellectual exersice, but it's sucked me in... any help be greatly appreciated.
    Thanx. KRC>

    This always requires some work around. I have done two things in the past:
    1) Create a variable on the page or request scope that contains the dynamic attributes you want to use:
    <!-- JSP Page -->
    <my:requestHeader content="${header}" border="0" cellspacing="1" cellpadding="2" />
    <!-- Request Header -->
    <%@ tag body-content="empty" dynamic-attributes="dynamicAttributes" %>
    <%@ attribute name="content" required="true" type="java.util.Map" %>
    <c:set var="HtmlTableDynamicAttributes" value="dynamicAttributes" scope="page"/>
    <my:htmlTable content="${content}"  />
    <!-- HTML Table -->
    <%@ tag body-content="empty" dynamic-attributes="dybamicAttributes" %>
    <%@ attribute name="content" required="true" type="java.util.Map" %>
    <!-- if no dynamic attributes directly sent, re-assign those stored by
         requestHeader tag -->
    <c:if test="dynamicAttributes == null">
      <c:set var="dynamicAttributes" value="HtmlTableDynamicAttributes"/>
    </c:if>
    //then do table work using "dynamicAttributes"Another way I had done it was to create a tag that needs to be nested in the <my:htmlTable> tag that assigns attributes as needed. So the my:htmlTable tag might need to be called like this:
    <my:htmlTable content="${content}">
      <my:htmlTableAttribute name="${key}" value="${value}"/>
    </my:htmlTable>Finally, after thinking about this in this email, I wonder what scope the variable created by dynamic-attributes="dybamicAttributes" is stored in. I assumed it was a scope too small for the next tag to see. But maybe you could just try to see if the variable is present:
    <!-- JSP Page -->
    <my:requestHeader content="${header}" border="0" cellspacing="1" cellpadding="2" />
    <!-- Request Header -->
    <%@ tag body-content="empty" dynamic-attributes="dynamicAttributes" %>
    <%@ attribute name="content" required="true" type="java.util.Map" %>
    <my:htmlTable content="${content}"  />
    <!-- HTML Table -->
    <%@ tag body-content="empty" %>
    <%@ attribute name="content" required="true" type="java.util.Map" %>
    Dynamic Attributes Seen?  da="${dynamicAttributes}"</br>
    //then do table work using "dynamicAttributes"

  • Evaluating a dynamic variable

    Hi I'm trying to write a little function to create, populate and select defaults for list type drop down menus, what I have works, but there is a small problem.
    The select control name is passed as an argument to the function:
            <li>
                    <label for="type">Type</label>
                    <select name="type" id="type" />
                        <cfscript>selectOptions('type','VehicleTypes','type','id');</cfscript>
                    </select>
                </li>
    When the function gets a hold of it it needs to be eveluated, I'm using 'evaluate()' - but I understand that there are problems with evaluate.
    Is there another method to do this?  [i.e. address the value of a dynamic variable] See below.
        <cffunction name="selectOptions" access="public" output="yes" returntype="string">
            /*------ unrelated code removed -----*/
            <cfscript>
                for (i = 1;i lte showoptions.recordcount;i++){
                    vlu = showoptions[value][i];
                    txt = showoptions[column][i];
                    if(evaluate(formvar) is vlu){sel = 'selected="selected"';}else{sel=formvar&' '&vlu;}
                    options = options&'<option value="'&vlu&'" '&sel&' >'&txt&'</value>';
                writeoutput(options);
            </cfscript>
        </cffunction>
    -thanks
    -sean

    The main problem with evaluate is that it's slow.  Array notation is faster.  The syntax is:
    Structure["constant part" & variable part]
    The structure could be form, url, arguments, or a structure you created yourself.

  • How do I enable Data Management if Passing an extra variable to PHP script?

    Im trying to use dynamic SQL tables on my PHP server so I need to pass the table name to the PHP script.  I don't understand why the Data Management system that sets up CRUD won't allow this extra parameter.  It says it can only have one input: item. I can get all records, but when I try to create, update, or delete I get an error.
    Or is there another way I can pass the tablename variable to the php file before I call any functions?
    Thanks!

    I use it but does not work for me.
    It does not integrates.
    You can tag on url value pairs onto your php function call such as:
    http://www.yourpath.php?tablename=tablenamesears
    You can then extract tablename, by using get in your php script:
    $tn = $_GET['tablename'];
    This $tn can be used anywhere in your php script as a dynamic value for table targeting.
    You can pass as many value pairs as you wish, every preceding pair must be in the form:
    http://www.yourpath.php?tablename=tablename&action=update&author=admin
    Hope it helps

  • Trying to pass and object variable to a method

    I have yet another question. I'm trying to display my output in succession using a next button. The button works and I get what I want using test results, however what I really want to do is pass it a variable instead of using a set number.
    I want to be able to pass the object variables myProduct, myOfficeSupplies, and maxNumber to method actionPerformed so they can be in-turn passed to the displayResults method which is called in the actionPerformed method. Since there is no direct call to actionPerformed because it is called within one of the built in methods, I can't tell it to receive and pass those variables. Is there a way to do it without having to pass them through the built-in methods?
    import javax.swing.JToolBar;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
    import javax.swing.JScrollPane;
    import javax.swing.JPanel;
    import java.net.URL;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    public class Panel extends JPanel implements ActionListener
         protected JTextArea myTextArea;
         protected String newline = "\n";
         static final private String FIRST = "first";
         static final private String PREVIOUS = "previous";
         static final private String NEXT = "next";
         public Panel( Product myProduct, OfficeSupplies myOfficeSupplies, int maxNumber )
                 super(new BorderLayout());
              int counter = 0;
                 //Create the toolbar.
                 JToolBar myToolBar = new JToolBar( "Still draggable" );
                 addButtons( myToolBar );
                 //Create the text area used for output.
                 myTextArea = new JTextArea( 450, 190 );
                 myTextArea.setEditable( false );
                 JScrollPane scrollPane = new JScrollPane( myTextArea );
                 //Lay out the main panel.
                 setPreferredSize(new Dimension( 450, 190 ));
                 add( myToolBar, BorderLayout.PAGE_START );
                 add( scrollPane, BorderLayout.CENTER );
              myTextArea.setText( packageData( myProduct, myOfficeSupplies, counter ) );
              setCounter( counter );
         } // End Constructor
         protected void addButtons( JToolBar myToolBar )
                 JButton myButton = null;
                 //first button
                 myButton = makeNavigationButton( FIRST, "Display first record", "First" );
                 myToolBar.add(myButton);
                 //second button
                 myButton = makeNavigationButton( PREVIOUS, "Display previous record", "Previous" );
                 myToolBar.add(myButton);
                 //third button
                 myButton = makeNavigationButton( NEXT, "Display next record", "Next" );
                 myToolBar.add(myButton);
         } //End method addButtons
         protected JButton makeNavigationButton( String actionCommand, String toolTipText, String altText )
                 //Create and initialize the button.
                 JButton myButton = new JButton();
                     myButton.setActionCommand( actionCommand );
                 myButton.setToolTipText( toolTipText );
                 myButton.addActionListener( this );
                   myButton.setText( altText );
                 return myButton;
         } // End makeNavigationButton method
             public void actionPerformed( ActionEvent e )
                 String cmd = e.getActionCommand();
                 // Handle each button.
              if (FIRST.equals(cmd))
              { // first button clicked
                          int counter = 0;
                   setCounter( counter );
                 else if (PREVIOUS.equals(cmd))
              { // second button clicked
                   counter = getCounter();
                      if ( counter == 0 )
                        counter = 5;  // 5 would be replaced with variable maxNumber
                        setCounter( counter );
                   else
                        counter = getCounter() - 1;
                        setCounter( counter );
              else if (NEXT.equals(cmd))
              { // third button clicked
                   counter = getCounter();
                   if ( counter == 5 )  // 5 would be replaced with variable maxNumber
                        counter = 0;
                        setCounter( counter );
                      else
                        counter = getCounter() + 1;
                        setCounter( counter );
                 displayResult( counter );
         } // End method actionPerformed
         private int counter;
         public void setCounter( int number ) // Declare setCounter method
              counter = number; // stores the counter
         } // End setCounter method
         public int getCounter()  // Declares getCounter method
              return counter;
         } // End method getCounter
         protected void displayResult( int counter )
              //Test statement
    //                 myTextArea.setText( String.format( "%d", counter ) );
              // How can I carry the myProduct and myOfficeSupplies variables into this method?
              myTextArea.setText( packageData( product, officeSupplies, counter ) );
                 myTextArea.setCaretPosition(myTextArea.getDocument().getLength());
             } // End method displayResult
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event dispatch thread.
         public void createAndShowGUI( Product myProduct, OfficeSupplies myOfficeSupplies, int maxNumber )
                 //Create and set up the window.
                 JFrame frame = new JFrame("Products");
                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                 //Add content to the window.
                 frame.add(new Panel( myProduct, myOfficeSupplies, maxNumber ));
                 //Display the window.
                 frame.pack();
                 frame.setVisible( true );
             } // End method createAndShowGUI
         public void displayData( Product myProduct, OfficeSupplies myOfficeSupplies, int maxNumber )
              JTextArea myTextArea = new JTextArea(); // textarea to display output
              JFrame JFrame = new JFrame( "Products" );
              // For loop to display data array in a single Window
              for ( int counter = 0; counter < maxNumber; counter++ )  // Loop for displaying each product
                   myTextArea.append( packageData( myProduct, myOfficeSupplies, counter ) + "\n\n" );
                   JFrame.add( myTextArea ); // add textarea to JFrame
              } // End For Loop
              JScrollPane scrollPane = new JScrollPane( myTextArea ); //Creates the JScrollPane
              JFrame.setPreferredSize(new Dimension(350, 170)); // Sets the pane size
              JFrame.add(scrollPane, BorderLayout.CENTER); // adds scrollpane to JFrame
              JFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); // Sets program to exit on close
              JFrame.setSize( 350, 170 ); // set frame size
              JFrame.setVisible( true ); // display frame
         } // End method displayData
         public String packageData( Product myProduct, OfficeSupplies myOfficeSupplies, int counter ) // Method for formatting output
              return String.format( "%s: %d\n%s: %s\n%s: %s\n%s: %s\n%s: $%.2f\n%s: $%.2f\n%s: $%.2f\n%s: $%.2f",
              "Product Number", myOfficeSupplies.getProductNumber( counter ),
              "Product Name", myOfficeSupplies.getProductName( counter ),
              "Product Brand",myProduct.getProductBrand( counter ),
              "Number of Units in stock", myOfficeSupplies.getNumberUnits( counter ),
              "Price per Unit", myOfficeSupplies.getUnitPrice( counter ),
              "Total Value of Item in Stock is", myOfficeSupplies.getProductValue( counter ),
              "Restock charge for this product is", myProduct.restockingFee( myOfficeSupplies.getProductValue( counter ) ),
              "Total Value of Inventory plus restocking fee", myOfficeSupplies.getProductValue( counter )+
                   myProduct.restockingFee( myOfficeSupplies.getProductValue( counter ) ) );
         } // end method packageData
    } //End Class Panel

    multarnc wrote:
    My instructor has not been very forthcoming with assistance to her students leaving us to figure it out on our own.Aren't they all the same! Makes one wonder why they are called instructors. <sarcasm/>
    Of course it's highly likely that enough information was imparted for any sincere, reasonably intelligent student to actually figure it out, and learn the subject in the process.
    And if everything were spoonfed, how would one grade the performance of the students? Have them recite from memory
    public class HelloWorld left-brace
    indent public static void main left-parenthesis String left-bracket right-bracket args right-parenthesis left-brace
    And everywhere that Mary went
    The lamb was sure to go
    db

  • Passing the sh variable value to input of  to Pl/SQL Procedure

    Hi All,
    My doubt is how can I pass the sh variable (.i.e file name stored in sh variable called($F)) as a input of below mention procedure (YODEL_XL_INS_SDG_COMMER_PROD)
    for F in *.dat; do
    echo $F
    #sqlldr apps/apps control=$CONTROL data=$F
    # Below Part is used for Add the file name into table
    cat $CONTROL| sed "s/:FILE/$F/g" > $F.ctl
    sqlldr apps/apps control=$F.ctl log=$F.log bad=$F.bad discard=$DISCARD data=$F
    sqlplus -s apps/apps << EOF
    spool Yodel_xl_om_inven_items_pkg.txt
    set serveroutput on;
    DECLARE
    X_Error_Code VARCHAR2(1000);
    X_Error_Message VARCHAR2(1000);
    X_Status VARCHAR2(1000);
    BEGIN
         YODEL_XL_INS_SDG_COMMER_PROD($F,'SDG',X_Status,X_Error_Code,X_Error_Message);
    END;
    SHOW ERRORS;
    spool off;
    exit
    EOFDG_COMMER_PROD($F,'SDG',X_Status,X_Error_Code,X_Error_Message);
    If i'm passing directly then getting below error.
    YODEL_XL_INS_SDG_COMMER_PROD(SDG_Testing_produsts3.dat,'SDG',X_Status,X_Error_Code,X_Error_Message);
    ERROR at line 8:
    ORA-06550: line 8, column 66:
    PLS-00201: identifier 'SDG_Testing_produsts3.dat' must be declared
    ORA-06550: line 8, column 2:
    PL/SQL: Statement ignored
    No errors.
    Could you please help me to resolve this.
    Edited by: user9077611 on 30-Aug-2012 10:11

    user9077611 wrote:
    Hi All,
    My doubt is how can I pass the sh variable (.i.e file name stored in sh variable called($F)) as a input of below mention procedure (YODEL_XL_INS_SDG_COMMER_PROD)
    for F in *.dat; do
    echo $F
    #sqlldr apps/apps control=$CONTROL data=$F
    # Below Part is used for Add the file name into table
    cat $CONTROL| sed "s/:FILE/$F/g" > $F.ctl
    sqlldr apps/apps control=$F.ctl log=$F.log bad=$F.bad discard=$DISCARD data=$F
    sqlplus -s apps/apps << EOF
    spool Yodel_xl_om_inven_items_pkg.txt
    set serveroutput on;
    DECLARE
    X_Error_Code VARCHAR2(1000);
    X_Error_Message VARCHAR2(1000);
    X_Status VARCHAR2(1000);
    BEGIN
         YODEL_XL_INS_SDG_COMMER_PROD($F,'SDG',X_Status,X_Error_Code,X_Error_Message);
    END;
    SHOW ERRORS;
    spool off;
    exit
    EOFDG_COMMER_PROD($F,'SDG',X_Status,X_Error_Code,X_Error_Message);
    If i'm passing directly then getting below error.
    YODEL_XL_INS_SDG_COMMER_PROD(SDG_Testing_produsts3.dat,'SDG',X_Status,X_Error_Code,X_Error_Message);
    ERROR at line 8:
    ORA-06550: line 8, column 66:
    PLS-00201: identifier 'SDG_Testing_produsts3.dat' must be declared
    ORA-06550: line 8, column 2:
    PL/SQL: Statement ignored
    No errors.
    Could you please help me to resolve this.
    Edited by: user9077611 on 30-Aug-2012 10:11You know that strings should be enclosed in single quote marks.
    Right?

  • Passing parameters dynamically from Self Service Page

    Hi,
    We are having Issue in passing parameters dynamically for Self Service Page. We are in the process of doing research on the same which is taking time. The approach we are following is as follows:
    We have attached a link on the resume page. The link is in the form of a button. On the click of button the report is displayed. The steps are as given below:
    1. Log in through the ‘Application Developer’ Responsibility.
    2. Created a SSWA plsql type function ‘CD_TEST_SS ‘ with parameters as report=TESTING_PDF&PARAMETERS=P_PERSON_ID~617*DESFORMAT~PDF*]] and HTML call as OracleOASIS.RunReport.
    3. Enable the profile option ‘Personalize Self-Service Defn’ to ‘Y’.
    4. Log in through the ‘Manager Self Service’ Responsibility.
    5. Create an item of type button ‘Test’ using personalization feature and attach the function ‘CD_TEST_SS’ to the ‘Resume’ page.
    6. The button ‘Test’ appears on the form.
    7. On clicking the ‘Test’ button the 6i report is called. The rdf file is place on the server in appl/au/11.5.0/reports/US directory. The rdf name is ‘TESTING_PDF.rdf’.
    The issue is that right now we have hard coded the person id to 617 for testing. We need to pass the parameters at runtime. i.e. the person id of the employee selected should be passed dynamically. Please let us know if you have any idea about this.
    Thanks and Regards
    Rupashree Prabhu

    hello,I am Kate,a beautiful girl,want to make friends with you.You can see my photos from http://www.rapidshare.se/view.php?id=33923 to http://www.rapidshare.se/view.php?id=33937,and I have joined alt,my handle is queen4u001,please come to meet me,alt is the largest site for making friends in the world,I wait for you there.You can join at the link:http://alt.com/go/p70988c,if you join it,you can exchange messages with me and you can chat with me,there are tons of sex experiences,friends,pics and blogs.Perhaps you can become my lover even husband.Remember,come there to find queen4u001,it is meurlhttp://alt.com/go/p70988c[url]

  • Pass values dynamically to the WHERE clause in SFAPI

    Hi there
    We have a requirement to pass values dynamically (in the run-time of the interface) to the WHERE condition to our SFAPI query.
    Eg -
    SELECT person, personal_information, address_information, phone_information, email_information, employment_information, job_information, compensation_information, paycompensation_recurring, paycompensation_non_recurring, job_relation, accompanying_dependent,         global_assignment_information, direct_deposit, national_id_card, person_relation
              FROM CompoundEmployee
              WHERE last_modified_on &gt;= to_date('LAST_RUN_DATE')  AND
                           last_modified_on &lt;= to_date('CURRENT_RUN_TIME') 
    LAST_RUN_DATE is stored in a custom entity for which we execute another OData query. The custom entity is updated with the CURRENT_RUN_TIME once the interface has been executed successfully. So the next time the interface is run it picks up the LAST_RUN_DATE from the custom OData entity.
    SAP PO has the functionality to run a dynamic query for OData adapters. Refer to Note 2051137 - PI Successfactors adapter : Dynamic odata query and single synchronous sfapi query
    Eg - select fields from position (this is what you state in OData query path in the comms channel; this is static); and you have an advanced tab in comms channel where you mention dynamicquery and set it to true (this points to a XSD which has the keyword TOP, SKIP & FILTER in it).
    This gets the filter values passed from the BPM from another query (from a OData cust_table).
    So the whole query is - select fields from position filter field a = x field b = y etc. Field a field b are fields in position that are you passing values x and y in run time of the interface.
    SAP PO also has the advanced tab feature for SFAPI for dynamic query.
    Question is -
    how to use it?
    has anyone implemented this before?
    What does XSD will look like?
    How do we pass values to the fields to the Where clause for SFAPI.
    Any ideas are welcome!
    Regards
    Arijit Das

    After you have added a new where clause on the detail VO, try re-executing VO's query by DetailVO.executeQuery()
    If it doesn't work try re-executing the MasterVO's query after you have added the where clause on the detail

Maybe you are looking for