Looping dynamic variables

Hi
I have the following...
<Cfloop from 1 to 100 index i>
<cfif isDefined ('FORM.JACKET#i#')>
    <cfset jacketsize = #FORM.JACKET#i##>
</cfif>
</cfloop>
I need to know how to get the correct value from #FORM.JACKET#i##
Can anybody assist?
thank you
Delon

In the context of an HTML incoming data-stream (i.e. FORM), the data will always be "flat."  Therefore, repeating values must be given unique names such as "JACKET18," which you do when building your code.  It is perfectly acceptable thereafter to loop through "all possible values," checking that each one does or doesn't exist, as has been shown.  Browsers vary in their handling of empty-fields:  some browsers include them in the stream while others do not.
Outside of the context of an HTML data-stream, though, in the general sense any element of a Struct may be any sort of complex data-type you care to invent... array, another structure... or a simple data-value such as the numeral "2."  myStruct.jacket could be an array of "jacket description" structures, each one containing who-knows-what.

Similar Messages

  • Multiple Copies of Same Data in RTF - Looping using variable

    We have a requirement, where an Invoice batch job will run
    at night and pick up all the entire invoices, batch would contain invoices of
    different customers.
    Each customer will have DFF at site level informing number
    of copies required to be printed.
    Eg:
    Customer ABC Invoice ABC111 No. of Copies -4
    Customer PQR Invoice PQR222 No. of Copies -2
    Customer XYZ Invoice XYZ3333 No. of Copies -1
    I am trying to use following variable in the RTF, for the data to loop but it creates various problems
    Grouping and Variables:
    <?for-each@section:G_HEADER?>
    <?for-each@section:xdoxslt:foreach_number($_XDOCTX,1,DFF,1)?>  --- value coming in XML tag from DFF
    <?for-each:/?>
    The actual invoice tables and rtf
    <?end for-each?>
    Problems:
    If I remove <?for-each:/?> tag, I am
    getting the looping of data but the output file has no data from tags – only column
    labels / headers appear ---- But looping happens
    a.) With <?for-each:/?> tag,
    sometimes the RTF works and looping happens along with data and something the RTF crashes with below error
                  oracle.xdo.XDOException:java.lang.reflect.InvocationTargetException
    b.) When I try with a data containing just single invoice – looping and everything works as expected.
    However, if I load data which has multiple invoices each having different value in DFF for looping, entire file only contains first invoice ---- Looping happens still but does not proceed to next group
    Solutions:
    Can someone please guide me to the solution?
    Please recommend what would be the correct syntax, so that each invoice gets looped dynamically in the RTF.

    Here's the dataset I used and tried to replicate what you were trying to achieve:
    <ROWSET>
    <ROW>
    <ITEM>A</ITEM>
    <COUNT>3</COUNT>
    </ROW>
    <ROW>
    <ITEM>B</ITEM>
    <COUNT>5</COUNT>
    </ROW>
    </ROWSET>
    Here's the code:
    <?for-each@section:ROW?><?variable@incontext:G1;current()?>
      <?for-each@section:xdoxslt:foreach_number($_XDOCTX,1,COUNT,1)?>
      <?$G1/ITEM?>
    <?end for-each?>
    <?end for-each?>
    So based on the count, there are 3 pages where A (from ITEM field) is printed and 5 pages where B is printed.
    Hope this helps.
    Bipuser

  • IMPORT statement with dynamic variable

    Friends, Need Help!!!!!!!
    Im trying IMPORT variable contents from a cluster table VARI. I can do a IMPORT without issues when I use exact name of the variable but I have issues with dynamic variable selection. Pls see code below.
    loop at objects.
       assign objects-name to <fs>.
       IMPORT <fs> to tmp_var from database vari(va) id st_key.
    endloop.
    I do not get any value to tmp_var.  Need help!
    thanks
    Bhaskar

    Try this.
    loop at objects.
    IMPORT (objects-name) to tmp_var from database vari(va) id st_key.
    endloop.
    Does it work?
    Regards,
    RIch Heilman

  • 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

  • Creating dynamic variable names

    I know there has got to a way to do this but I am not finding anything on google. I want to create a dynamic variable name like name + i so when your in a loop the names come out name1, name2 and so on till however many you want. I have tried
    int name + i = 3;
    int name[i] = 3; // which obviously won't but I had to try
    int name{i} = 3;and I am out of ideas. Thanks for all your help.

    I'd suggest using variables named j or x when posting code which uses them as array indexes.
    [i] - is for italics formatting
    [u] - is for underlined formatting
    [code] is for class Example { ... } code formatting
    etc.

  • Dynamic Variable Names

    Okay, I just need to figure out how to make dynamic variable
    names. In this case, I have a loop, and inside the loop I need to
    create a new array for every iteration of the loop. Something like
    <cfloop from="0" to="10" index="i">
    <cfset LoopArray#i# = Some Value>
    </cfloop>
    But that doesn't work. How can you make dynamic variable
    named? I think it's probably something to do with evaluate or DE,
    but I don't know how to use them, and the livedocs make no sense to
    me. Thanks!

    On Thu, 22 May 2008 17:14:42 +0000 (UTC), kenji776 wrote:
    > Thank you both for your replied, I did manage to find a
    solution (the same one
    > posted by JR "Bob" Dobbs). Pretty much just looks
    like...
    >
    >
    > <cfloop from="1" to="3" index="i">
    > <cfset LinkResults["#i#"][1] = "Player 1's Move
    ID">
    > <cfset LinkResults["#i#"][2] = "Player 2's Move
    ID">
    > <cfset LinkResults["#i#"][3] = "Damage to player
    1">
    > <cfset LinkResults["#i#"][4] = "Damage to player
    2">
    > </cfloop>
    From your values, you don't want a two-dimensional array
    (which although
    you're actually building LinkResults as a struct, with the
    sequential
    numeric keys, it's basically an array), you want an array of
    structs, eg:
    LinkResults
    .player1.moveId
    LinkResults.player1.damage
    What is "i" actually counting through? IE: from 1-3 things...
    which are...
    what?
    Adam

  • Dynamic Variable Names in OpenScript

    Is there a way to use dynamic variable names? What I mean by this is that the variable name in the file could be:
    Name1, Name2, Name3, etc.
    I may want to loop through these by saying something like:
    For i = 0; i < iLoop; i++
    String sFieldName = "{{ViewList.Name" + Integer.toString(i) + "}}";
    JOptionPane.showMessageDialog(null, "sFieldName: " + "{{ViewList.{{sFieldName}}}}");
    I don't want it to use the literal string of {{ViewList.Name1}}, but rather, I want to use the value from the DataBank for Name1. Thanks.
    -John

    Nishanth,
    Thanks for your suggestion. Unfortunately, this is not a simple variable replacement. I want the name of the variable to be dynamic in nature. Imagine that I have 5 variables in the files named:
    Name
    FoodPref1
    FoodPref2
    FoodPref3
    FoodPref4
    I would like to loop through these and construct the variable name dynamically so it would be something similar to:
    for i=1 to 4; i++
    sFoodPrefVar = "FoodPref" + i;
    getVariables().set("FoodPref",sFoodPrefVar);
    JOptionPane.showMessageDialog(null, "Your Food Pref is: " + {{FoodPref}} + "\n");
    This is pseudo code, but it would theoretically loop through the 4 food preferences. Thanks.
    -John

  • 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 Declare

    Hi experts,
    How can i declare Dynamic variable under loop,
    I have Data from CABN Table with Char Name /Data type/Length.
    Is there any function module or method where i provide the parameters for declaration.
    thanks.

    DATA r_elemdescr TYPE REF TO cl_abap_elemdescr.
    r_elemdescr ?= cl_abap_elemdescr=>describe_by_name( 'DATA_ELEMENT_HERE' ).
    DATA r_field TYPE REF TO data.
    FIELD-SYMBOLS <field> TYPE ANY.
    CREATE DATA r_field TYPE HANDLE r_elemdescr.
    ASSIGN r_field->* TO <field>.
    <field> = .....
    "now <field> is your dynamic field value
    Regards
    Marcin

  • How to generate report with dynamic variable number of columns?

    How to generate report with dynamic variable number of columns?
    I need to generate a report with varying column names (state names) as follows:
    SELECT AK, AL, AR,... FROM States ;
    I get these column names from the result of another query.
    In order to clarify my question, Please consider following table:
    CREATE TABLE TIME_PERIODS (
    PERIOD     VARCHAR2 (50) PRIMARY KEY
    CREATE TABLE STATE_INCOME (
         NAME     VARCHAR2 (2),
         PERIOD     VARCHAR2 (50)     REFERENCES TIME_PERIODS (PERIOD) ,
         INCOME     NUMBER (12, 2)
    I like to generate a report as follows:
    AK CA DE FL ...
    PERIOD1 1222.23 2423.20 232.33 345.21
    PERIOD2
    PERIOD3
    Total 433242.23 56744.34 8872.21 2324.23 ...
    The TIME_PERIODS.Period and State.Name could change dynamically.
    So I can't specify the state name in Select query like
    SELECT AK, AL, AR,... FROM
    What is the best way to generate this report?

    SQL> -- test tables and test data:
    SQL> CREATE TABLE states
      2    (state VARCHAR2 (2))
      3  /
    Table created.
    SQL> INSERT INTO states
      2  VALUES ('AK')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('AL')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('AR')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('CA')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('DE')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('FL')
      3  /
    1 row created.
    SQL> CREATE TABLE TIME_PERIODS
      2    (PERIOD VARCHAR2 (50) PRIMARY KEY)
      3  /
    Table created.
    SQL> INSERT INTO time_periods
      2  VALUES ('PERIOD1')
      3  /
    1 row created.
    SQL> INSERT INTO time_periods
      2  VALUES ('PERIOD2')
      3  /
    1 row created.
    SQL> INSERT INTO time_periods
      2  VALUES ('PERIOD3')
      3  /
    1 row created.
    SQL> INSERT INTO time_periods
      2  VALUES ('PERIOD4')
      3  /
    1 row created.
    SQL> CREATE TABLE STATE_INCOME
      2    (NAME   VARCHAR2 (2),
      3       PERIOD VARCHAR2 (50) REFERENCES TIME_PERIODS (PERIOD),
      4       INCOME NUMBER (12, 2))
      5  /
    Table created.
    SQL> INSERT INTO state_income
      2  VALUES ('AK', 'PERIOD1', 1222.23)
      3  /
    1 row created.
    SQL> INSERT INTO state_income
      2  VALUES ('CA', 'PERIOD1', 2423.20)
      3  /
    1 row created.
    SQL> INSERT INTO state_income
      2  VALUES ('DE', 'PERIOD1', 232.33)
      3  /
    1 row created.
    SQL> INSERT INTO state_income
      2  VALUES ('FL', 'PERIOD1', 345.21)
      3  /
    1 row created.
    SQL> -- the basic query:
    SQL> SELECT   SUBSTR (time_periods.period, 1, 10) period,
      2             SUM (DECODE (name, 'AK', income)) "AK",
      3             SUM (DECODE (name, 'CA', income)) "CA",
      4             SUM (DECODE (name, 'DE', income)) "DE",
      5             SUM (DECODE (name, 'FL', income)) "FL"
      6  FROM     state_income, time_periods
      7  WHERE    time_periods.period = state_income.period (+)
      8  AND      time_periods.period IN ('PERIOD1','PERIOD2','PERIOD3')
      9  GROUP BY ROLLUP (time_periods.period)
    10  /
    PERIOD             AK         CA         DE         FL                                             
    PERIOD1       1222.23     2423.2     232.33     345.21                                             
    PERIOD2                                                                                            
    PERIOD3                                                                                            
                  1222.23     2423.2     232.33     345.21                                             
    SQL> -- package that dynamically executes the query
    SQL> -- given variable numbers and values
    SQL> -- of states and periods:
    SQL> CREATE OR REPLACE PACKAGE package_name
      2  AS
      3    TYPE cursor_type IS REF CURSOR;
      4    PROCEDURE procedure_name
      5        (p_periods   IN     VARCHAR2,
      6         p_states    IN     VARCHAR2,
      7         cursor_name IN OUT cursor_type);
      8  END package_name;
      9  /
    Package created.
    SQL> CREATE OR REPLACE PACKAGE BODY package_name
      2  AS
      3    PROCEDURE procedure_name
      4        (p_periods   IN     VARCHAR2,
      5         p_states    IN     VARCHAR2,
      6         cursor_name IN OUT cursor_type)
      7    IS
      8        v_periods          VARCHAR2 (1000);
      9        v_sql               VARCHAR2 (4000);
    10        v_states          VARCHAR2 (1000) := p_states;
    11    BEGIN
    12        v_periods := REPLACE (p_periods, ',', ''',''');
    13        v_sql := 'SELECT SUBSTR(time_periods.period,1,10) period';
    14        WHILE LENGTH (v_states) > 1
    15        LOOP
    16          v_sql := v_sql
    17          || ',SUM(DECODE(name,'''
    18          || SUBSTR (v_states,1,2) || ''',income)) "' || SUBSTR (v_states,1,2)
    19          || '"';
    20          v_states := LTRIM (SUBSTR (v_states, 3), ',');
    21        END LOOP;
    22        v_sql := v_sql
    23        || 'FROM     state_income, time_periods
    24            WHERE    time_periods.period = state_income.period (+)
    25            AND      time_periods.period IN (''' || v_periods || ''')
    26            GROUP BY ROLLUP (time_periods.period)';
    27        OPEN cursor_name FOR v_sql;
    28    END procedure_name;
    29  END package_name;
    30  /
    Package body created.
    SQL> -- sample executions from SQL:
    SQL> VARIABLE g_ref REFCURSOR
    SQL> EXEC package_name.procedure_name ('PERIOD1,PERIOD2,PERIOD3','AK,CA,DE,FL', :g_ref)
    PL/SQL procedure successfully completed.
    SQL> PRINT g_ref
    PERIOD             AK         CA         DE         FL                                             
    PERIOD1       1222.23     2423.2     232.33     345.21                                             
    PERIOD2                                                                                            
    PERIOD3                                                                                            
                  1222.23     2423.2     232.33     345.21                                             
    SQL> EXEC package_name.procedure_name ('PERIOD1,PERIOD2','AK,AL,AR', :g_ref)
    PL/SQL procedure successfully completed.
    SQL> PRINT g_ref
    PERIOD             AK         AL         AR                                                        
    PERIOD1       1222.23                                                                              
    PERIOD2                                                                                            
                  1222.23                                                                              
    SQL> -- sample execution from PL/SQL block
    SQL> -- using parameters derived from processing
    SQL> -- cursors containing results of other queries:
    SQL> DECLARE
      2    CURSOR c_period
      3    IS
      4    SELECT period
      5    FROM   time_periods;
      6    v_periods   VARCHAR2 (1000);
      7    v_delimiter VARCHAR2 (1) := NULL;
      8    CURSOR c_states
      9    IS
    10    SELECT state
    11    FROM   states;
    12    v_states    VARCHAR2 (1000);
    13  BEGIN
    14    FOR r_period IN c_period
    15    LOOP
    16        v_periods := v_periods || v_delimiter || r_period.period;
    17        v_delimiter := ',';
    18    END LOOP;
    19    v_delimiter := NULL;
    20    FOR r_states IN c_states
    21    LOOP
    22        v_states := v_states || v_delimiter || r_states.state;
    23        v_delimiter := ',';
    24    END LOOP;
    25    package_name.procedure_name (v_periods, v_states, :g_ref);
    26  END;
    27  /
    PL/SQL procedure successfully completed.
    SQL> PRINT g_ref
    PERIOD             AK         AL         AR         CA         DE         FL                       
    PERIOD1       1222.23                           2423.2     232.33     345.21                       
    PERIOD2                                                                                            
    PERIOD3                                                                                            
    PERIOD4                                                                                            
                  1222.23                           2423.2     232.33     345.21                       

  • 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 do I use a dynamic variable from a prolog script?

    I have my test broken in to three scripts, a login, an update, and a logout. There is a dynamic variable, SERVICE_VIRTUAL_CLIENT, from the login script that I need to use in the update script, but I can't figure out how to do it. Any help would be appreciated.
    Edit: I forgot to mention that the login script is only run in the prolog portion of the UDP.
    Scott
    Message was edited by: scottmorgan

    Scott,
    You would do this the same way you would in a stand-alone script. Create the variable pattern in the login in script and name the variable. Save the login script and open the other script and select the parameter where you need the value. Set the parameter value to {{variableNameFromLogin}} (Variables are transferred from one script to the next in a UDP).
    I hope this makes sense

  • Dynamic variable Time for Select

    Hi,
    I try to develop some scripts but always I have the same problem , when I try to put in a Select instruction the variable Time, it doesn´t work correctly (for example):
    *SELECT(%example%,"ID","TIME","[ID]='%TIME_SET%' ")
    It doesn´t read correctly the variable Time_Set.
    Have you got any idea to try to do selects using dynamic variable?
    Thanks for all.

    Hi,
    Dynamic variables like %TIME_SET% do not interact very well with the compiled default logic (LGX files) when it is run after a data send. If you look at the Default.LGX file, you will notice that your *SELECT statement does not appear there because that *SELECT statement has already been compiled. That is why the logic works when it is run via the debugger (because the LGF file is getting executed at run time) and it does not work when it is run via a data send (because the LGX is being executed).
    What you will need to do is:
    1. Create a another logic file (for example: Calculation1.LGF) and copy the text from the Default.LGF to this new logic file.
    2.  Place the following text in the Default.LGF file:
    *RUNLOGIC
    *LOGIC=Calculation1.LGF
    *ENDRUNLOGIC
    3. Validate and save the Default.LGF file
    Now try running the logic after a data send and see if that works.
    Good luck,
    John

  • Dynamic Variable In a Type Definition

    Can someone tell me how to define and use a dynamic variable, which resides in a Type Definition.  I.E...
    Type: beg of type1,
            field 1 type c,
            field 2 <---this dynamic
            field 3 type c.
          end of type1.
    Can this be done in Netweaver 2004.  And if so, can you show me how?
    Thanks for your time.
    Kind Regards,
    Jason

    Don't think it is available now, but I do believe they are working on this for a future release.
    Regards,
    Rich Heilman

  • Dynamic variable value based on a value from xml

    I have a invoice template and it is for 4 different companies in my organization. Based on the organization I need to have a different value for a variable that adds blank lines to the end of the invoice. Is there anyway to assign a value to variable based on the value of a xml tag.
    Thanks

    I should have explained better before. I have one invoice template and we want to keep it one template for all companies. Each invoice is run individually, each companies footer is different, I am calling multiple headers and footers based on each company. Since the headers and footers are different I need to be able to add different amounts of lines and the end of each invoice depending on that company. I have accounted for the page break in my logic based on the amount lines the page is long. I just need a dynamic variable that I can assign different values on the fly.
    Thanks

Maybe you are looking for

  • IMac 2006 Frequently Shutting Down

    Hey! For a while now, my iMac 2006 has been very frequently shutting itself down and then it can sometimes take up to and over and hour for it to turn back on. this started over a year ago and then it went away this past summer but recently it has be

  • Here I go again... I need a little help on sizing

    In another posting I wrote the following and was told nicely no one would see it there... So I am posting it here... Thanks to Brian... I want the same thing, but when I deleted all the master slides I wasn't using. (All but two). The size of the ppt

  • What to do after an Archive and Install operation?

    Hello: Near the end of a hard drive defrag on the laptop using Drive Genius, something (I am not sure what) caused the computer to shut down before the defrag had finished. Most of the hard drive info. ended up in a folder called Lost and Found. The

  • Import and export parameters of an FM are passed by value---why?

    Q]      By default the import and export parameters of an FM are passed by value---what is  the advantage of this system?

  • Standard and Non-standard exports and queries issue

    Hi, We have created a few STANDARD books with standard exports in them. The standard exports use standard queries. The ISSUE is that in the Verifications/Filters tab, where we have put in a lot of queries - ONLY the STANDARD queries show up. We would