How to put more than 1000 values into an Oracle IN clause

Is there any way to get around the Oracle 10g limitation of 1000 items in a static IN clause? I have a comma delimited list of many of IDs that I want to use in an IN clause, Most of the times values may exceed 5000. And I don't have privileges to create a temporary table, so that I can put all those in that and run at a time.
Thanks
Sreenivas

Although the trick of using OR would likely work, why don't you use a dynamic collection on the right-hand-side of the where in clause?
This thread has details Re: Binding collection to right-hand-side of WHERE num_col in (:1) clause?
Binding a VArray is not super easy, but at least with a bind value (the collection), you can have a single prepared statement, and vary just the collection you pass in. --DD                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Similar Messages

  • How to put more than 1200 characters in a text form within a pdf created in Adobe Acrobat

    I need to know how to put more than 1200 characters in a text form within a pdf created in Adobe Acrobat. I have a request from a customer to do so and after googling I have came up with nothing. Also the customer would like it if they could convert said pdf form to a microsoft word document with the text form.

    There's no limit on the number of characters you can enter into a text
    field, unless you set it as such.

  • How to pass more than one value for one column in procedure

    hi
    select id, name from col_tab where dept_name in ('ECE','CIVIL');
    when i was running this it is working well.
    CREATE OR REPLACE PACKAGE pack_str
    AS
    TYPE type_refcur IS REF CURSOR;
    PROCEDURE str(char_in VARCHAR2,ans OUT type_refcur);
    END pack_str;
    CREATE OR REPLACE PACKAGE BODY pack_str
    AS
    PROCEDURE str(char_in VARCHAR2,ans OUT type_refcur)
    IS
    BEGIN
    OPEN ans FOR
    select id,name from col_tab where dept_name in char_in ;
    END str;
    END pack_str;
    the package was created.
    my doubt is
    1.how to pass more than one value for char_in (e.g ('ECE','CIVIL'))
    2. when i was storing the value in string like val = 'ECE,CIVIL' ,
    how to get the id,name for ECE and CIVIL.
    plz help me

    Hi Rebekh ,
    I am recreating your packages for the desired output.
    CREATE OR REPLACE PACKAGE pack_str
    AS
         TYPE type_refcur IS REF CURSOR;
         PROCEDURE str(char_in VARCHAR2,ans OUT type_refcur);
    END pack_str;
    CREATE OR REPLACE PACKAGE BODY pack_str
    AS
         PROCEDURE str(char_in VARCHAR2,ans OUT type_refcur)
         IS
              lv_t varchar2(200);
         BEGIN
              lv_t := REPLACE(char_in,',',''',''');
              lv_t := 'select id,name from col_tab where dept_name in (''' || lv_t || ''')' ;
              OPEN ans FOR lv_t;
         END str;
    END pack_str;
    Note:-
    Input Parameter char_in is a comma seperated value for dept_name
    -Debamalya

  • IN operator with more than 1000 values

    Hi,
    For a given list of IDs (PKs), I need to fetch the corresponding rows.
    The problem is that I have more than 1000 values and as far as I know that IN operator is limited to 1000
    values.
    I thought about using UNION such that each Select contains up to 1000 IDs.
    example":
    select * from temp where id in(1....1000)
    union all
    select * from temp where id in(1001....2000)
    Is there a better way to do that?
    Thanks
    dyahav

    As others have presented technical solutions, i'll present you a logical one (seemingly logical anyways, but it will depend on your application).
    I have seen some applications where you get
    select * from some_table where ... <conditions>;That result set is returned to the front end and presented to the users who then pick a series of records and submit another request to the database which ends up being...
    --note, this could be a many table join, with lots more information that just the some_table, this is illustrative only
    select * from some_table where pk_value in (super_super_duper_list_based_on_last_result_set);If this mimics what you have in your application, i'd recommend just fixing it so the users can select a reasonable set of data, OR the entire set (in the last case you'd just send the <conditions> instead of a massive list of PK values).
    Again, highly speculative but i thought i'd mention it in the off chance it's useful to you.

  • Html check box pass more than one value into bean

    Hi all'
    I have group of check box in html , I need to pass more than one value
    into bean an ddisplay in jsp
    what do i do wrong
    private Vector select =new Vector();
      private String mybox =null;
      public download() {
         again(); 
      /* Accessor Methods */
    private void addmybox(String name){
        select.addElement(name);}
    public void setMybox(String name) {
         mybox = name;
    public String[] getMybox() {
         String[] s = new String[select.size()];
         select.copyInto(s);
         return s;
            in my htmli have <%
         String[] mybox= format.getMybox();
         for (int i=0; i<Mybox.length; i++) {
             <%= format.getMybox%>
    %>
    i got error at <%= format.getMybox[i]%>

    Hi ram,
    thank you, I don't have ideal in my mide .
    in my jsp I have
    <td>  <input type=checkbox name=mybox value=<%= link.getNewNum()%>></td>in my servlet I have something like
    String[] checked = request.getParameterValues("mybox");
            try {
            conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433","A#$","RE@89");
            conn.setCatalog("sequences");  
          stmt = conn.createStatement();  
           for(int i=0; i<checked.length; i++){
                   String select=checked;
    String Sql=" select NewNum, Name, Length, Segment, Sequence";
    Sql+=" from Sec04";
    Sql+=" where NewNum='"+select+"'";
    Sql+=" union";
    Sql+=" select NewNum, Name, Length, Segment, Sequence";
    Sql+=" from MySec";
    Sql+=" where NewNum='"+select+"'";
    Sql+=" union";
    Sql+=" select NewNum, Name, Length, Segment, Sequence";
    Sql+=" from Sec03";
    Sql+=" where NewNum='"+select+"'";
    Sql+=" union";
    Sql+=" select NewNum, Name, Length, Segment, Sequence";
    Sql+=" from Sec02";
    Sql+=" where NewNum='"+select+"'";
    Sql+=" union";
    Sql+=" select NewNum, Name, Length, Segment, Sequence";
    Sql+=" from Sec01";
    Sql+=" where NewNum='"+select+"'";
    rs = stmt.executeQuery (Sql);
    while(rs.next()) {              
    String Name = rs.getString("Name");
    String Segment =rs.getString("Segment");
    String Length = rs.getString("Length");
    String Sequence = storeSequenceData(rs.getString("Sequence"));
    String SContent = Name + " ," Segment ", "+ Length + "\n" +Sequence  ;
    now I want
    String SContent = Name + " ," +Segment + ", "+ Length +  "\n" +Sequence  +"\n" + Name+"Segment+","+length+"+"\n" +Name......untill the end
    it sees like I need to look st on shipp car. is that right??
    Thank you !!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How to pass more than 1000 entries in 'IN' clause, Oracle 11g

    Hi All,
    I know this is a very common question in Oracle discussion forum. But, Im in different zone.
    I use C#, .NET and Oracle 11g. I have a situation where I will create a query statement using 'IN' clause in C# code based on my requirement and execute that statement from code itself with oracle connection object. I do not have any procedures. I must phrase my query statement and pass it on to OracleConnection object to execute it.
    My code looks like this....
    List<decimal> x_Ids = new List<decimal>();
    I will load my IDs into x_Ids here;
    string whereInClause = ........I will prepare a 'IN' clause (All IDs separated by ',')
    My query would looks like this....
    string query = select * from MYTABLE where X_ID in [ whereInClause with more than 1000 entries]
    oraConn.ExecuteQuery(query);
    I have a workaround with OR operator with 'IN' clause like below.
    X_ID in [ Ids till 1000 entries] OR X_ID in [Next 1000 entries] OR X_ID in [Next 1000 entries] ....so on.....
    It is working, but, I heard that this may slowdown the performance of the application. Is this really a performance hit to my application?
    Can you please suggest any other workaround to overcome this situation?

    >
    I have a workaround with OR operator with 'IN' clause like below.
    X_ID in [ Ids till 1000 entries] OR X_ID in [Next 1000 entries] OR X_ID in [Next 1000 entries] ....so on.....
    It is working, but, I heard that this may slowdown the performance of the application. Is this really a performance hit to my application?There should be no performance difference between a statement like
    select * from myTab
    where ID in (1,2,3,4,5)
    OR ID in (6,7,8,10,12) and
    select * from myTab
    where ID in (1,2,3,4,5,6,7,8,10,12) The execution plan should be identical.
    However those values might better be send as a single object (collection or table of numbers type).
    I think the ODP or OO4O connectivity allows to create and such oracle object types.
    Another way could be to think about how all the values are created? Did any user enter them manually? Certainly not. Then maybe you can apply the same logic to the SQL statement that created those values in your .Net application.
    something like
    select * from myTab
    where ID in (select t2.FK_ID from otherTab t2 where t2.Col1 = 100) This approach would probably beat all others performancewise. Since you avoid the overhead of constructing the in-lists.

  • More than 1000 values

    Dear All,
    I am using oracle 10g with odp.net. I have values more than 1000 to be passed in the IN condition. How do i achieve this. When i pass the values it says only 1000 parameters are allowed in the IN condition.
    Please let me know.
    Regards
    Fkhan

    fkhan wrote:
    What i have thought of is to insert all the selected values in a global temporary table and then in my procedure use the subquery and use the values from the global temporary table.A better approach than using a massive IN list of values. But still problematic ito having a user interface deal with a 1000+ item/code selection. Still a performance problem shipping that amount of data across the network every single time from every single client running this app. And still a flawed ito data modelling and 3NF.
    The correct approach would be permanent tables to deal with this. In its basic and simplest form:
    // defines a keyword for a 1000+ items/codes
    KEYWORDS = ( keyword_id, keyword_description )
    // associates a keyword id with an item/code id
    KEYWORD_MAP = ( keyword_id, code_id )The user interface displays the keyword description. The select clause uses the keyword_id to select from the KEYWORD_MAP the associated list of values as filter criteria for the main query (using a join or IN sub-select for example).
    If the keyword is more complex than this basic approach (e.g. partially dynamic and specific per user), then this basic approach can be extended to serve as a "+favourites per user+" list (kind of like bookmarks, but per individual user). Or designed as to cater for the business requirements.
    But as you have (very simplistic I realise) describe the problem so far, I do not see a problem as much as a basic flaw in your code and data model.
    A user interface for entering and selecting 1000+ codes is clunky. And slow. Sending that data across to Oracle is slow. Inserting that each time around into a temp table for use, is slow.
    There's a lot of moving parts here. And that always contributes in degrading performance and making stuff complex (and usually unnecessarily so).

  • How to send more than one value to the Jump target report variable screen.

    Hi,
       I have two reports with Plant variable on their input variable screens. Say this Plant can take two values X and Y. The first report is executed with Plant value X and displays data. When a jump is made  to report two, Plant value X is retrievd into report two's plant varible value. Now how to send value Y also to Report two when jump is made. I think we can do it with a customer exit? Any help is appreciated
    Thanks
    Bhanu

    Hi Bhanu,
    I guess u have created a Variable with Sinlge value ,So Create a Variable which has Multiple Sinlge Values or Interval so that u can have more than one value and if u hvae more than value u will get data for those values and when u do a jump then u can see the data in the JUMP query for both the Values of Input.
    Rgds
    SVU123

  • How to return more than one value from a  function

    hello everybody,
    Can anyone tell me how to return more than a single value from a function, the problem is i have 4 points,
    2 points form one line ,another 2 points form 2nd line ,each point is 3 dimensional(x,y,z coorinates) so i will pass these values to func(x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4), i will find the point of intersecton of two lines and i will get it as x,y,z , now how to return these 3 coordinates,usually the function returns only one value, please help me to solve it out.
    Thanks.

    I think the easiest way or trick here is (easiest isn't always the best as we know, but atleast this one will work) to create simple data array. and pass that. Create an array with:
    <code>
    class justArray {
    int x=0
    int y=0;
    int z= 0;
    ...somewhere
    justArray[] points= new justArray[4];
    points[0].x= ..
    points[0].y= ..
    points[0].z= ..
    points[1].x= ..
    return points[]
    </code>

  • How to create more than 1000 entitie in FDQM

    Hi Gurus
    1.How to load locations to FDQM without manual Entry?
    Can we load locations by using flat files?
    Requirement: I have to create more than 1000 entities in FDM Application for mapping Target in HFM Application.
    How to achieve this?
    regards
    Dev

    Two things :
    #1 - The tables you need to add data to are : tPOVPartition, tStructPartitionHierarchy, tStructPartitionLinks. The first table is the basic location information. The last two tables define the relationship hierarchy of where the locations belong. I would expect that if the Strcut information is missing, FDM will not be able to place it anywhere on the locations screen.
    Additionally, for the tPOVPartition, there is required information and you need to make sure you are including all of that info when you create your record.
    #2 - If you are handy at coding, I'm positive there is an API call to create a location. It would make more sense perhaps to write a script that uses the APIs to create the locations so that you can be sure that it is being done right.

  • How to pass more than one value to the procedure

    How can I pass more than one letting date to this procedure. If it is only one letting date, I do not have a problem but when it is more than one letting date at the same time then I am stuck. please help
    example I would like to pass this three letting dates : '01/17/2010', '01/27/2010','05/22/2010'
    CEATE OR REPLACE PROCEDURE TPLCP.PLANHOLDERSLIST
    P_LettingDate IN  VARCHAR2,
    p_results OUT sys_refcursor
    AS
    BEGIN
        OPEN p_results FOR
    SELECT DISTINCT DECODE (TRIM (MIN (j.route)), NULL, 'N/A',TRIM (MIN (j.route))) rt,l.lcontid conid,
                     SUBSTR (q.cprojnum, 1, 10) pr, SUBSTR (l.letting, 3, 2)|| '-'|| SUBSTR (l.letting, 5, 2)|| '-'|| SUBSTR (l.letting, 1, 2) lt,
                    (q.cdescr) jbtyp, INITCAP (q.clocat1 || q.clocat2) loc
               FROM vendor v,
                    vendaddr r,
                    letprop l,
                    planhold p,
                    proposal q,
                    project j,
                    propproj k,
                    bidlet bd
              WHERE v.vendor = r.vendor
                AND k.contid = q.contid
                AND k.pcn = j.pcn
                AND l.lcontid = k.contid
                AND p.vendor = v.vendor
                AND l.letting = p.letting
                AND TO_CHAR (bd.datelet, 'MM/DD/YYYY') IN P_LettingDate
                AND l.CALL = p.CALL
                AND r.addrnum = p.billto
                AND bd.letting = l.letting
           GROUP BY v.vendor,
                    r.addrnum,
                    v.vnamel,
                    r.aaddr1,
                    p.billto,
                    r.acity,
                    r.astate,
                    q.cdescr,
                    q.clocat1,
                    q.clocat2,
                    bd.letting,
                    r.azipcode,
                    r.vasst1,
                    r.aphone,
                    l.letting,
                    l.lcontid,
                    q.cprojnum;
    END PLANHOLDERSLIST;

    you can create your on array type and then pass that as the parameter. I use the suffix of ttyp to represent a table type.  The name of the column when using the table() syntax is columnvalue.
    I altered my session to set the default date format to match your format. you could have used the to_date function to set the values for the arr type.
    Hope this helps.
    create type msw_ttyp as table of date
    create or replace
    procedure msw_test(p_arr     in msw_ttyp) as
    v     integer;
    begin
    select count(*)
       into v
       from table(p_arr);
    dbms_output.put_line('count: '||v);
    for rec in (select column_value
                   from table(p_arr))
    loop
      dbms_output.put_line(rec.column_value);
    end loop;
    end msw_test;
    alter session set nls_date_format = 'MM/DD/YYYY';
    set serveroutput on size 1000000
    exec msw_test(msw_ttyp('01/17/2010', '01/27/2010','05/22/2010'));
    begin
    msw_test(msw_ttyp(to_date('01/17/2010', 'MM/DD/YYYY'),
                       to_date('01/27/2010', 'MM/DD/YYYY'),
                       to_date('05/22/2010', 'MM/DD/YYYY')));
    end;
    /

  • How to convert More than one order into Commercial Invoice?

    Dear All,
             I am facing one problem in Export senario, i have to create Commercial Invoice with reference to One or more than one order but PO no. in order are different. Is it possible?
            Also i have to create one delivery & one Tax invoice in reference to one or more order or Delivery, How?
          Plz give me solution to solve the problem.
          Award pts for useful answers.
    Thx & Regards,
    Pankaj

    Hi,
    This can be definitely done. There can be multiple sales orders of a single customer and the shipping address is also the same, so it will be logical to create a single delivery and thus a single invoice for the same.
    For clubbing multiple sales orders into one delivery go through the following process:
    Using transaction code <b>VL10A</b> we can club multiple sales orders into a single delivery provided the following details are the same in case of all sales orders:
    1. Sales document type.
    2. Delivery document type.
    3. Division.
    4. Sold to party.
    5. Ship to party.
    6. Goods issue Date.
    <b>Process:</b>
    1. go to <b>VL10A</b> - enter the <b>shipping point</b>, <b>delivery creation date</b> (automatically proposed) & <b>"CalcRuleDefltDlvCrDt"</b> - this is the rule for determining default value for delivery creation date. The following are implemented:
    1. All documents due for delivery today
    2. All documents due for delivery today and tomorrow
    3. All documents due for delivery up until the end of next week (includingthose that were due before today)
    4. All documents due for delivery up until and including tomorrow(including those that were due before today)
    Below you have tabs for <b>"general data"</b>, <b>"sales orders"</b>, <b>"material"</b>, <b>"partners"</b>, <b>"user role"</b>. You can select accordingly. It is not necessary to select from these. Now click on <b>"execute"</b> or press <b>"F8"</b>.
    2. Here in this screen you will see the <b>sales order nos</b>., the <b>ship to party</b> , the <b>delivery priority</b>. Select the required sales orders by simultaneously pressing the <b>"shift key"</b> and now clcik on <b>"background"</b>. The system will now create a single delivery in the <b>background</b>.
    3. Go back to the original screen and click on <b>"collective processing logs"</b>. Just click on "<b>execute"</b> or press <b>"F8"</b>. You will face a screen for <b>"log of collective run"</b> Here you can see how many documents were created for those sales orders and if there had been any errors those also can be seen.
    <b>If you see error</b> then select that line and in the menu bar click on <b>"go to"</b> and in this click on <b>"notes"</b>. or you can directly click <b>"Shift + F8"</b>. You can see what exactly was the error.
    click on the line and click on <b>"documents"</b> Here you will see the delivery document number - <b>"copy this number/make a note of it"</b>. You will know the time when you clicked on <b>"background"</b>. Just go through it to ge the correct delivery document number.
    4. Go to <b>"VL02N"</b> - paste/enter the delivery document number and press enter. Now you can do the picking as per your requirement and do the PGI.
    This is the way how the process works for <b>VL10A</b> and completing the delivery with PGI.
    Now like this say you have<b> "5"</b> deliveries created by clubbing multiple sales orders for a single customer. Now you want to club all <b>"5"</b> deliveries to create a single invoice. The settings will have to be done in the copy controls from <b>"delivery document"</b> to "<b>billing document"</b>. Go to transaction code <b>"VTFL"</b> - select the export billling document type and the export delivery document type select the line and double click on the same - here you have 4 fields:
    Copying requirements - maintain <b>"003"</b> here
    Determ. export data - <b>"A"</b>
    Assignment number - <b>"E"</b>
    Reference number - <b>leave blank</b>
    Copy item number - <b>"tick on it"</b>
    <b>At the item level:</b>
    Select the item category and in
    Copying requirements - <b>"004"</b>
    Data VBRK/VBRP - <b>"001"</b>
    Save the settings.
    <b>Now when you you clucb multiple deliveries into one invoice the following must be same:</b>
    1. Sold to party should be same
    2. Ship to party should be same
    3. Delivery document types should be same
    4. Billing document type should be same
    5. Incoterms should be same
    6. Payment terms should be same
    7. Shipping type should be same
    <b>Clubbing multiple deliveries into 1 invoice:</b>
    Go to <b>VF01</b> - select the delivery document numbers - press enter - click on <b>"execute"</b> or press <b>"F8"</b>. Here if there is no split criterias then the system will show you all the line items - <b>save</b> the invoice. If the system finds any data <b>mismatch</b> then it will show a button for the <b>"split analysis"</b> - when you click on it the system will show you why the split has occured.
    Reward points if solution helps.
    Regards,
    Allabaqsh G. Patil
    Message was edited by:
            allabaqsh patil

  • Can I put more than one statement into a Condition in TestStand

    I'm trying to learn to use the Conditional statement in more than it's simplest form and I have 2 questions:
    Question 1:
    For instance simple statement is:
    Locals.nValue=(Locals.Compare>5) ? 1 : 2
    However, I want to do 2 things in the Condition
    Locals.nValue=(Locals.Compare>5) ? 1,Locals.sString = "Yes" : 2, Locals.sString = "No"
    But, this doesn't work (using the comma separator). Is there a way to put 2 statements into the conditional case?
    Question 2:
    For a series:
    Locals.nValue=(Locals.Compare>5) ? 1 : Locals.nValue
    Locals.nValue=(Locals.Compare<=5)? 2 : Locals.nValue
    Also, is there a way to do NOTHING in the Else? (The folowing was suggested in the TestStand class that I took but
    it doesn't work:
    Locals.nValue=(Locals.Compare>5 ? 1 : NOTHING
    This makes "Locals.nValue" = Nothing and I find that I can't leave the "False" condition blank.
    Mike

    Mike -
    1) You wanted to do something like this:
    Locals.nValue=(Locals.Compare>5) ? 1,Locals.sString = "Yes" : 2, Locals.sString = "No"
    You can do this like this:
    Locals.nValue=(Locals.Compare>5) ? (Locals.sString = "Yes", 1) : (Locals.sString = "No", 2)
    By using the parethesis, the parser assumes that last element in the list is the final value to be "returned".
    2) There is no way to do nothing in a conditional assignment. You wanted to do this:
    Locals.nValue=(Locals.Compare>5 ? 1 : NOTHING
    You have to assign the orginal value back to the target, like this:
    Locals.nValue=(Locals.Compare>5) ? 1 : Locals.nValue
    Scott Richardson (NI)
    Scott Richardson
    National Instruments

  • How to pass more than one value in RfcRequest ?

    Hi  Experts,
    I have a FModule (addition) which is exposed as an Enterprise Service. This FM takes two values as input(VAL1 and VAL2) and gives the result (RESULT). I have done the configuration to connect to the backend system via SAP Widget Foundation. When i tried to test in URL :
    http://localhost:7531/SapMiddleTier/REST/ewcs/service/rfct/form , i gave the input for the RFC Query Parameters as : <VAL1>10</VAL1><VAL2>20</VAL2> , but i get an error "Expecting Expression" .
    Am i giving the input in the wrong format ?
    I wrote another FM which doesnt take any input but returns some text as output and  when i queried it via the above URL, i get the correct result. I again tested with changing the Fmodule that accepts one input and returns one output and i find that it returning perfectly.  But when i try with more than one input i get the below error.
    Could some one please help ?
    See the error :
    <?xml version="1.0" encoding="UTF-8"?>
          <root>
             <Status text="expecting expression" code="-1" type="E"/>
             <StatusDetailList>
                <StatusDetail type="I" text="expecting expression" code="0"/>
                <StatusDetail text="" code="0" type="I" source="net.axyana.qizxopen.xquery.XQEvalException: expecting expression at net.axyana.qizxopen.xquery.ext.XfnEval$Exec.eval(XfnEval.java:62) at net.axyana.qizxopen.xquery.op.Expression.evalAsEvents(Expression.java:556) at net.axyana.qizxopen.xquery.op.ElementConstructor.evalAsEvents(ElementConstructor.java:105) at net.axyana.qizxopen.xquery.op.FLWRExpr.evalAsEvents(FLWRExpr.java:423) at net.axyana.qizxopen.xquery.impl.CompiledQuery.evalAsEvents(CompiledQuery.java:82) at net.axyana.qizxopen.xquery.impl.XQueryExprImpl.doExecuteQuery(XQueryExprImpl.java:267) at
    Best Regards,
    Sam..

    Hi John,
    Thank you for your reply.
    Am trying to test my FM(using http://localhost:7531/SapMiddleTier/REST/ewcs/service/rfct/form) as mentioned in this link:
    http://nvpal168.pal.sap.corp:1080/widgetgallery/staticPage.seam?pageId=staticPage9
    I had downloaded the SAP Widget Foundation and its running.
    Using the link : http://localhost:7531/SapMiddleTier/REST/ewcs/service/rfct/form we can test exposed function modules . If you are using SAP Widget Foundation, then the above link will open up a form
    where in the user gives RFC parameters.
    I gave it as <VAL1>10</VAL1><VAL2>20</VAL2> and click on Query RFC = > i get the above mentioned error. If this works, then i can call my function module via Adobe flex using HTTP Service with the service url as "http://localhost:7531/SapMiddleTier/REST/ewcs/service/rfct/form".
    Best Regards,
    Sam.

  • SQL select query having more than 1000 values in 'IN' clause of predicate.

    Hi,
    We are executing a select query from a table and showing it through a front end screen. When the count of values given in the 'IN' clause of predicate are exceeding 1000 , it is throwing error.
    eg. select * from Employees where emp.Id. in('111',123','121','3232',........1001 Ids)
    We are using Oracle version 10.2.0.
    Please suggest how to tackle such issue.
    Regards,
    Naveen Kumar.C.
    Edited by: Naveen Kumar C on Aug 30, 2008 10:01 PM

    Use a nested table:
    create or replace type numbertype
    as object
    (nr number(20,10) )
    create or replace type number_table
    as table of numbertype
    create or replace procedure tableselect
    ( p_numbers in number_table
    , p_ref_result out sys_refcursor)
    is
    begin
    open p_ref_result for
         select *
    {noformat}     from   employees
         ,        (select /*+ cardinality(tab 10) */ tab.nr
                   from   table(p_numbers) tab) tbnrs
         where id = tbnrs.nr;
    end;
    /{noformat}
    Using nested tables will reduce the amount of parsing because the sql statement uses binded variables! The cardinality hint causes Oracle to use the index on employees.id.

Maybe you are looking for