Multiselect list in APEX 3.2.1.00.12

Hello,
I'm having troubles with a multiselect list that could potentially return a very large result set. I have a function called 'GET_LIST' that basically calls the apex_util.STRING_TO_TABLE(p_string,p_delimiter); function since the multiselect list returns a colon delimited string. If I try to select all of the values on the list I get the following message:
Bad Request
The request could not be understood by server due to malformed syntax.Are there any known workarounds to this issue?
Thanks in advance!
~Jake

Do any pros out there have a suggestion for this? My multiselect list has over 35,000 entries in it for certain owners. It is doubtful that anyone would ever select them all but if they should happen to they would receive an error.
The list of values (P10_ACCTS) is simply
select a.account_name d, a.account_id v
           from accounts a
         where a.owner = :P10_OWNERI then display a report that uses the results of the select list in the where clause:
and (account.id in (select column_value from table (GET_LIST(nvl(:P10_ACCTS,'::'))))GET_LIST is defined as:
CREATE OR REPLACE FUNCTION GET_LIST (
   p_string      IN   VARCHAR2,
   p_delimiter   IN   VARCHAR2 DEFAULT ':'
   RETURN vc_array_1 PIPELINED
IS
    l_string     varchar2(32000);
    l_array     wwv_flow_global.vc_arr2;
BEGIN
   l_array := apex_util.STRING_TO_TABLE(p_string,p_delimiter);
   for i in l_array.first..l_array.last loop
      pipe row (trim(l_array(i)));
   end loop;
   return;
end;I believe that my limitation is the 'l_string varchar2(32000);' I need (in some cases) to be able to pass over 100,000 characters. I've tried converting GET_LIST to use a clob instead of varchar2 but have yet to be successful in implementing that approach.
THanks in advance!
Edited by: jhammer on Oct 15, 2010 3:13 PM

Similar Messages

  • ApEx How 2  turn a multiselect list value (eg. 1:2:3:4 ) into (1,2,3,4)

    ApEx newbie here,
    I'm trying to get the output of a multi select list into an in list of a sql query for a report. The error message I'm getting is report error:
    ORA-01722: invalid number. (The inlist is a list of id numbers, and the data type for this column in the database is NUMBER)
    I've got a page item called P3_x which is populated from a MultiSelect list. I learned that these come out as colon delimited strings. (found a reference to hidden items in a blog that helped me figure this out)
    So I created a hidden item called P3_x_in_list which does this:
    Select '('|| regexp(:p3_x,':',',')||')' from dual which turns this into a comma separated list, like so: (1,2,3,4)
    I put this hidden item, P3_X_IN_LIST into the sql in my report region
    So in the report my sql looks like:
    select a, b, c
    from t1
    where id in: P3_x_in_list
    and some_date between :P1_X and :P2_X
    For some reason it throws an invalid number error when it runs. I haven't been able to find anything in the documentation or on the web that sheds any light on this. I'm hoping that there is a benevolent, experienced developer that can point me in the right direction. The debuging information from the page is below:
    Here is the debugging information
    0.24: ...Session State: Save "P3_X" - saving same value: "1:2:3:4:5"
    0.24: ...Session State: Save "P1_X" - saving same value: "01-DEC-2008"
    0.24: ...Session State: Save "P2_X" - saving same value: "04-DEC-2008"
    0.30: ...Session State: Save Item "P3_X_IN_LIST" newValue="(1,2,3,4,5)" "escape_on_input="N"
    0.30: Processing point: ON_SUBMIT_BEFORE_COMPUTATION
    0.46: show report
    0.46: determine column headings
    0.46: parse query as: my_schema
    1.76: binding: ":P3_X_IN_LIST"="P3_X_IN_LIST" value="(1,2,3,4,5)"
    2.64: binding: ":P2_X"="P2_X" value="04-DEC-2008"
    report error:
    ORA-01722: invalid number
    ORA-02063: preceding line from my_schema
    3.23: Computation point: AFTER_BOX_BODY
    3.23: Processing point: AFTER_BOX_BODY
    3.23: Computation point: BEFORE_FOOTER
    3.23: Processing point: BEFORE_FOOTER
    3.23: Show page tempate footer

    Well, let's say you had a SQL statement like
    select * from obj where object_id in 12345
    where object_id is defined to be a number type.
    Now, if you replace the literal '12345' with a bind variable and then bind "(1,2,3,4,5)" to this bind variable it will be clear why the SQL fails.
    As for using pipeline functions it is pretty straightforwad
    Here's an example
    CREATE OR REPLACE TYPE vc_array_1 AS TABLE OF VARCHAR2 (50);
    CREATE OR REPLACE FUNCTION get_list (
       p_string      IN   VARCHAR2,
       p_delimiter   IN   VARCHAR2 DEFAULT ':'
       RETURN vc_array_1 PIPELINED
    IS
        l_string     varchar2(32000);
        l_array     wwv_flow_global.vc_arr2;
    BEGIN
       l_array := apex_util.STRING_TO_TABLE(p_string,p_delimiter);
       for i in l_array.first..l_array.last loop
          pipe row (trim(l_array(i)));
       end loop;
       return;
    end;
    select column_value from table (get_list('1:2:3:4:5'));Your query can now be
    select a, b, c
    from t1
    where id in (select column_value from table get_list(: P3_x_in_list)) )   
    and some_date between :P1_X and :P2_XVarad

  • Delete in database based on multiselect list values

    Hi,
    I have a selectlist in Apex and a function in the database to do some delete based on the selected value from the select list.
    FUNCTION delete_batch (v_batch VARCHAR2) RETURN VARCHAR2
    IS
    BEGIN
    IF v_batch like 'M%'
    THEN
       RETURN ('A monthrun cannot be deleted');
    ELSE
       DELETE FROM so_disco_pa
       WHERE  batch = v_batch
       DELETE FROM so_batch_pa
       WHERE  batch = v_batch
       COMMIT;
       RETURN ('Batch '||v_batch||' has been deleted');
    END IF;
    EXCEPTION
    WHEN OTHERS THEN
        RETURN ('Batch could not be deleted');
    END delete_batch;The package function is called when the delete button is clicked with following process:
    BEGIN
    DECLARE
    x   varchar2(100);
    BEGIN
    x := pa_control.delete_batch (:P3_BATCH);
    :F105_MESSAGE := x;
    END;
    END;Now I want to change the selectlist to a multiselect list so that multiple batches can be deleted.
    How do I change my procedure and process to delete batches based on the selected values?
    Thanks,
    Diana

    I got this so far, but only the first batch selected in the list is being deleted. The other selected batch values are not deleted.
    Some help please.
    FUNCTION delete_batch (v_batch VARCHAR2) RETURN varchar2
    IS
    T Apex_application_global.vc_arr2;
    BEGIN
    T := apex_util.string_to_table(v_batch);
    For I in 1..t.count loop
    IF  t(i) like 'M%'
    THEN
       RETURN ('A monthrun cannot be deleted');
    ELSE
       DELETE FROM so_disco_pa
       WHERE  batch = t(i)
       DELETE FROM so_batch_pa
       WHERE  batch = t(i)
       COMMIT;
       RETURN ('Batch '||v_batch||' has been deleted');
    END IF;
    end loop;
    EXCEPTION
    WHEN OTHERS THEN
        RETURN ('Batch could not be deleted');
    END delete_batch;

  • Referencing multiselect lists in SQL

    Hello,
    If I have a multiselect list input and the user selects more than one entry, how do I retrieve the values and how can I use it in an SQL statement?
    e.g.
    select * from mytable where :P1_MULTISELECT in col1
    Thanks,
    j

    See this example:
    http://apex.oracle.com/pls/otn/f?p=31517:138
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • Build Dynamic Query based on values of multiselect list

    I am trying to implement the same functionality as shown in this app.
    http://htmldb.oracle.com/pls/otn/f?p=9741:6:13406902443304236283:::::
    I have hit a brick wall when I try to set the value of my text area/select statement, even after viewing the detail section in above app.
    Does anybody know exactly how I can set the value of a text area from multiselect list values??

    Hi Sam,
    check out How to use multi select in a query report
    See also Denes sample application which has and example where you can still do an index access if a index is defined for the column. http://htmldb.oracle.com/pls/otn/f?p=31517:138
    Patrick
    My APEX Blog: http://inside-apex.blogspot.com
    The ApexLib Framework: http://apexlib.sourceforge.net
    The APEX Builder Plugin: http://sourceforge.net/projects/apexplugin/

  • Create multiple Insert statements from multiselect list

    I want to thank everyone in advance for the help on this one.
    I have a multiselect list that I would like to use to create multiple Insert statements. I would like to then take those statements and execute them against the database, thus inserting the records. My thoughts are below;
    1.     Customer selects multiple items in the list
    2.     Clicks the submit button
    3.     onclick event walks through the string created by the multiselect list and creates the Insert statements by walking through an array of the values.
    4.     the Insert statements get executed against the database
    5.     page redirects to the proper page after the process is done.
    I actually have already created a javascript function that will use the split command on the string to create an array. I then get the length of the array and walk through a loop creating the sql statements. I am not sure what to do from here. How can I get the sql to execute.
    I am not wed to this approach. If there is a better idea out there please do not hesitate to share it with me. I am relatively new to APEX and have not done much work in pl/sql or javascript. But I learn fast, so don’t hold back.
    Thanks again and please let me know what questions you have for me.
    Derek.

    I setup the demo app on apex.oracle.com:
    http://apex.oracle.com/pls/apex/f?p=26255:3
    Login as demo / demo
    Go to the "products" tab. There is a Test region with a multiselect list. It shows product names (with product id's) from the demo_product_info table.
    When you select multiple things from the list and click apply, it uses the following procedure to simply insert a new record for each into the product table. It increments the product_id by 1000 and prepends "DUPLICATE " to the product_name:
    declare
    cursor c_products is
    select product_name, product_id
    from demo_product_info
    where instr(':' || :P3_X || ':', ':' || product_id || ':') >= 1
    order by 1
    begin
    for r_product in c_products loop
    insert into demo_product_info (product_id, product_name)
    values (r_product.product_id + 1000, 'DUPLICATE ' || r_product.product_name);
    end loop;
    end;
    You can see that is working by using it on the duplicate entries themselves.
    -Richard

  • Ajax - Populate Multiselect List

    I have a requirement to populate a multiselect list using Ajax. Does anyone of you know
    how to acomplish that?
    I would klick on rows in a report and pick the values from there and the values would be
    concatenated to the existing content of a multiselect list item.
    Denes Kubicek

    Hi Denes,
    have a look at the code of the "List Manager" item type. I think that's exactly what you are looking for.
    Patrick
    Check out my APEX-blog: http://inside-apex.blogspot.com
    Check out the ApexLib Framework: http://apexlib.sourceforge.net

  • How to get the selected values from multiselected list

    Hi,
    I have a multiselect list displaying all the years from 2003 to 2008 (used dynamic LOV). The user can choose one or more years as per his needs, and then when user clicks on the link the selected values of the list are to be captured and a pop up page of a Discoveror report needs to be opened where these years get passed as a parameter. I tried several methods to capture the value, but either one or all are getting passed but not exactly what the user has chosen.
    This is how it looks:
    P2_FISCAL_YEAR is a multiselect list containing values from 2003,2004... 2008
    If user chooses 2004 and 2007
    then I want the url to capture these values and pass as parameters for my discoveror reports. as '&qp_fiscal_year=2004,2007'
    Any help is appreciated!
    Thanks in advance,
    Sapna.

    Hi,
    I have a multiselect list displaying all the years from 2003 to 2008 (used dynamic LOV). The user can choose one or more years as per his needs, and then when user clicks on the link the selected values of the list are to be captured and a pop up page of a Discoveror report needs to be opened where these years get passed as a parameter. I tried several methods to capture the value, but either one or all are getting passed but not exactly what the user has chosen.
    This is how it looks:
    P2_FISCAL_YEAR is a multiselect list containing values from 2003,2004... 2008
    If user chooses 2004 and 2007
    then I want the url to capture these values and pass as parameters for my discoveror reports. as '&qp_fiscal_year=2004,2007'
    Any help is appreciated!
    Thanks in advance,
    Sapna.

  • Need to create an edit Page from a Multiselect List

    I make one or more selections of values from a Multiselect List; I need to branch to another page in which I display all of the selected List items and two other columns (per item) that can be edited; i.e., this second page will look like one or more rows consisting of (1) List item, (2) value1 from a Table, (3) value2 from a Table. I need to be able to change value1 and/or value2 for any or all of the rows and have those changes reflected in the Database. (The List item is display only).
    My question is: which construction wizard can I use for this second page? I can collect my List items in a PL/SQL Table, but how can I display them and their related columns so the column values are editable?

    Thanks for the reply. I understand how to create Collections with the values I need to display and modify; however, I'm unsure which construction Wizard to employ to launch the Page ("Form based upon a Procedure", etc.)
    I looked in the Tutorials for a "collection demo" and found these potential candidates: "Build an Issue Tracking System", "Create a Simple Survey Application", and "Serving Application Express Reports". Is it one of these? If not, please tell me where I can find the "collection demo". Thanks.

  • Help with Multiselect List Item

    Assuming one employee can work for multiple departments, I want to display the departments employee 7844 works for preselected in a multiselect list.
    I am using the following query statement in a report region.
    select htmldb_item.select_list_from_query_xl(1, deptno ,'select DEPTNO,DNAME from scott.dept ','MULTIPLE HEIGHT=25', 'Y',null,null,null,'Department',null) a from scott.emp where empno = 7844
    The result I am seeing is a multiple multiselect lists with one department selected in each list.
    How should I modify the query to get what I want?
    Thanks
    Mina

    Hi Carlos,
    I set up a test case in exactly the same way and it worked fine for me. I created a page item called P1_DA_DEMO and added some static select list values then added some help text. The settings I used are below, I suggest you try again but also make sure you have no other Javascript errors on the page. Use a tool like firebug to check.
    Name : Dynamic Action Demo
    Sequence: 10
    Even: Click
    Selection type: Item(s)
    Item(s): P1_DA_DEMO <- a selection list item
    Condtion: - No Condition -
    True Actions
    Sequence: 10
    Action : Execute JavaScript Code
    Fire when event result is :True
    Fire on page load: Not Ticked
    Code: javascript:popupFieldHelp('277938589795252851','1545903379570909')
    Event Scope set a s Bind.
    Thanks
    Paul

  • Multiselect List and Branches

    Hi,
    1. I understand that multiselect list problem has discussed here multiple times but I could not find any answer for my situation. May be someone can give me an advise.
    I have a page that has 8 multiselect lists. A user makes his selection, presses button “Report” and gets redirected to the report page (say page A) that displays records according to the user selection. Report source on page A is PL/SQL function body returning SQL query.
    I created the button “Report” with wizard (selected option Submit Page & Redirect to URL). Everything was working fine till report was created in the same browser window. But a customer wanted to have a report displayed as a new page. So I changed ”Optional URL Redirect” target from “No Target” as it was before to URL and inserted a call to the JavaScript as URL Target ( I use this approach on several other pages).
    Now when a user presses “Report” button he is redirected to the page A but that page displays completely different set of records. It looks like multiselect lists values are not passed to the report on page A any more. What am I missing?
    2. As I mentioned before a main page has 8 multiselect lists so SQL statement is very long and I will need to create a lot of different reports based on the selections in those multiselect lists .
    Is it possible to create an Application Level Variable, pass “WHERE” part of the SQL statement into it when button “Report” is pressed ( button has setting Submit Page & Redirect to URL!) and then use it in the SQL report source to generate reports?
    Thank you in advance.
    Val

    Scott,
    Thank you for your reply.
    At the moment I switched to the URL it stopped passing multiselect list parameters( I have javascript function in the HTML Header section and call this function from the button).
    If I understand the problem correctly I do not submit page as it was before. Session window does not show any parameters.
    The only reason I need this switch - create a report in a new window.
    Val

  • Query Regarding multiselect list

    Hi,
    I have a multiselect list having the names of columns of one of the table say "example" table. I want to select only those columns from the "example " table which the user has chosen from the multiselect list.
    eg:
    the multiselect list has the following entries say entr1,entr2,entr3
    and my "example" table has 3 columns entr1,entr2,entr3.
    If the user selects entr1 and entr2 from the multiselect list then , I want to select only entr1 and entr2 columns from my table ie "select entr1,entr2 from example"
    I need to display those columns only in a report.
    Is there any way to do it. Any input would help.
    Regards,
    Deepthi

    You could have a dynamic query region where the column list is built using the value of the multiselect list.
    declare
    q long;
    begin
      q := 'select pk,';
      q := q || replace(:P1_MULTI_SELECT,':',',');
      q := q ||' from some_table where ....';
      return q;
    end;And choose the 'Generic columns, parse query at run-time' option under Region Definition.
    An easier option would be to write a static query with all possible columns and simply put a PL/SQL condition on each column (Report Attributes/Column Attributes) to hide it if the column name/alias is not in the multiselect's value. Something like
    instr(:P1_MULTI_SELECT,'COLUMN_NAME') > 0Hope this helps.

  • How to pass multiselect list values to javascript?...

    Hi, guys...
    (continuation...)
    Here is a Q. I have two multiselect lists item on the page. I need to use the values of these items in ODP. The button calls javascript, and javascript envoke ODP. Everything is working fine if i submit the page and then call javascript, But this is extra step and it's not kind of cool...
    So i am looking for the way to pass the value of multiselect lists to javascript without submitting the page first...
    Thnks...
    Mike
    Edited by: mishkar on Oct 1, 2009 10:59 AM

    Mike:
    Try using v('page_item') instead of :page_item in the ODP code
    varad

  • Help on Multiselect list

    I created a Multiselect list for item :P5_REGIONS(USING DYNAMIC )
    DYNAMIC QUERY IS
    SELECT DISTINCT DEPTNO FROM DEPT;
    Mutiselect list
    10
    20
    30
    40
    50
    I have another item name :P5_SELECTED_REGIONS
    So what I want to do is
    When user select multi values from Multiselect list
    10,20,30,40
    I want to display in :P5_SELECTED_REGIONS as string '10,20,30,40'
    I have another Submit button which will take the :P5_SELECTED_REGIONS values and pass to database package
    Any help is appreciated

    Hi,
    Add the following into the regions "Region Header" setting:
    &lt;script type="text/javascript"&gt;
    function showSelected(item, field)
         var sel = new Array();
         var index = 0;
         for (var intLoop = 0; intLoop &lt; item.options.length; intLoop++)
              if (item.options(intLoop).selected)
                   index = sel.length;
                   sel&#91;index&#93; = item.options(intLoop).text;
         $f_SetValue(field, sel.join());
    &lt;/script&gt;
    add the following into the HTML Form Element Attributes for the select list:
    onchange="showSelected(this, 'P5_SELECTED_REGIONS');"
    That should do it.
    Regards
    Andy

  • Facing Problem in Multiselect List ....

    Hi Andy,,
    We are facing one more problem..
    In the Menu selection ..... As u given a solution for dropdownlist hiding which is working fine... but the same logic is not working for Multiselect List item .Why so...
    anoo..
    Edited by: anoo on Nov 17, 2008 5:22 AM

    hai andy...
    if i try to give one more selection list, its not hididng the list???? y so?
    if ($x('P39_BATES_DESCRIPTION')) {$x('P39_BATES_DESCRIPTION').style.display ='none';}
    if ($x('P63_ATTRIBUTE_CLASS_CODE')) {$x('P63_ATTRIBUTE_CLASS_CODE').style.display ='none';}
    if ($x('P63_ATTRIBUTE_TYPE')) {$x('P63_ATTRIBUTE_TYPE').style.display ='none';}
    if($x('P65_BATES_DESCRIPTION')) {$x('P65_BATES_DESCRIPTION').style.display ='none';} ----- i added this but its not firing..
    also can i call a function from javascript in the html header to perform the independent hiding of the items....
    sample code we used in Html header..
    function hidelist()
    alert("Hello");
    document.getElementById('P39_BATES_DESCRIPTION').style.display = 'none';
    function showlist()
    document.getElementById('P39_BATES_DESCRIPTION').style.display = 'block';
    let us knw where to call this 2 functions... usually we call it in html form element attributes.. whether can we call two functions simultaneously in html form element attributes....
    anoo
    anoo

Maybe you are looking for

  • System Settings-Audio Capture

    In FCE, trying to capture VHS via DV converter box. The sound is not coming over. In system settings/scratch disk (internal hard drive) the audio capture is grayed out. Analog RCA composite video & stereo audio connectors in place. How do I get my so

  • How to display the file status in the status bar?

    Hi all, Can anyone tell me how to display the file status in the status bar? The file status can consists: the type of the file, the size of the file etc.. thanx alot..

  • Permanent deltion of Production Order

    Dear friends, My requirement is like this, they created one material without batch managed check in WS view, now for the same material tried to mark the batch management indicator. system is giving the error. As my understand bach managed material ca

  • Finder "Go" menu - can items fly open?

    The Finder Go menu lists all the directory folders for Home, Documents, Applications, Utilities, etc. It sure would be nice if they would fly open, allow one to select the item one wants, and then shut. Just like the Recent Items does under the Apple

  • I'm having a problem logging into the Netflix app (117)

    I've repeatedly entered the correct username and password, only to have it tell me that I have entered them wrong with an error code of 117. I've contacted customer support at Netflix, and it seems that their solution is to recommend changing my Netf