Change block where clause !!

hello !!
i wanna change the where clause of the data block in the runtime !!
i know that it can by Set_block_property
but it don't work with me !!!
can u give me an example for that !!
and what is the differance between default_where and onetime_where ,,, a two attributes in the set_block_property !!

and what is the differance between default_where and onetime_where ,,, a two attributes in the set_block_property !!Default_where remains with the block for every query until you change it using pl/sql. The onetime_where is set null automatically immediately after a single query is executed.
Look up the on-line help for Set_Block_Property on default_where and onetime_where, then click the onetime_where link, and read that.

Similar Messages

  • Chang the WHERE clause

    hi,
    I want to change the Where clause used in the block, to change runtime in the
    forms, need help.
    Thanks.

    You can use set_block_property that triggered from a button
    (When a button pressed):
    1. With default_where parameter:
    SET_BLOCK_PROPERTY('blockname', DEFAULT_WHERE, 'column = ''value''');
    SET_BLOCK_PROPERTY('emp', DEFAULT_WHERE, 'gender=''M''');
    2. With query_data_source_name parameter:
    PROCEDURE codevisibility IS
    qdsn varchar2(100);
    BEGIN
         go_block('myblock');
         clear_block;
         IF :urutblok.options = 'I' THEN     
              qdsn := ' (SELECT * FROM FERRY.mytab WHERE '
                   ||' CODE = '||:blk.code
                   ||' AND CODE2 = '||'''I'''||')';
         SET_BLOCK_PROPERTY('myblock',query_data_source_name, qdsn );
         ELSIF :urutblok.options = 'P' THEN                    
              qdsn := ' (SELECT * FROM FERRY.mytab WHERE '
                   ||' CODE = '||:blk.code
                   ||' AND CODE2 = '||'''P'''||')';
         SET_BLOCK_PROPERTY('myblock',query_data_source_name, qdsn );
    END IF;
         EXECUTE_QUERY;
    END;
    rgds,
    ferry.

  • Dynamically changing the WHERE clause in detail VO in Master Detail

    Hi, I want to develop a search functionality, results will be in a table, which will have an inline table displaying the details per row found.
    I have a MD defined trough viewlink. I do change the master VO at runtime (set the entire SQL), based on the criteria entered by the user.
    Is there a way to change the VO at the detail end of the link at runtime - that is what I haven't been able to do.
    I have read that the ADF framework creates internal VO for each master row, whenever accessed trough accessor (which is not I am trying to do). I haven't been able to find a way to get a hold of the REAL VO at the detail end and have its WHERE clause changed.
    Changes to the "VO instance in AM" (same one used as a definition in the detail end in the ViewLink def) does not seem to reflect the detail VO.
    I have a MasterView, DetailView, MasterDetailLink (MasterView->DetailView).
    MasterDetailLink is used to create a table with inline detail table. At runtime:
    1.get MasterView (from AM), change query trough setQuesry() - works.
    2.get DetailView (from AM), change query trough addWhereClause() - does not work (no exceptions) - the results I am getting DO NOT reflect the conditions of the where clause, I mean the clause have not been addedd.
    I 've looked at the logs (debug enabled) and it seems to me that there no "activities" related to the detail VO, even after the where clause of the VO from step 2 is changed.
    Looks like there is a separate VO which I would like to get a hold of :)
    Thanks, and sorry for the long explanation

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

  • Changing the where clause

    Hi all,
    Can anyone suggest an appropriate answer for this
    I want to change the where condition in Reports (Developer 2000) dynamically (in runtime)
    Thank you

    Hi,
    Try this in you pre-query trigger.
    -- if you want to add to the where clause do this
    -- first store the current where clause
    C_WHERE := get_block_property('your_block', default_where);
    IF <condition> THEN
         c_where := 'desired_condition'||' AND '||C_where;
    -- append your condition to the existing one.
    END IF;
    set_block_property('your_block', default_where,c_where);
    or if you want to totally replace it just use the set_block_property in the trigger.
    Hope this helps.
    Bob

  • Null global variable in block's WHERE clause - no records?

    I'm setting a :GLOBAL.emp_id in certain spots in my form. The EMPLOYEE block's WHERE clause says emp_id = :GLOBAL.emp_id. In the POST-QUERY, it sets that variable back to NULL so the next time they want to run a blind query, it will show all records.
    Well when the :GLOBAL.emp_id is NULL, nothing comes up in a blind query. I even changed the WHERE clause to say emp_id = NVL(:GLOBAL.emp_id,'') but that didn't do anything either.
    How can I get the WHERE clause to (basically) do nothing when that global variable is null? Or should I be messing with DEFAULT_WHERE instead of these global variables
    I'm in 6i

    I'm sorry - I stumbled on something soon after I posted and changed it to:
    emp_id = NVL(:GLOBAL.emp_id,emp_id)
    and it worked - duh

  • Change JDBC select SQL query's where clause at runtime

    Hi,
    I have one JDBC sender channel with Select SQL Query which helps in fetching data from JDE table. We have defined where clause to fetch some particular records i.e. if ABC = NULL then fetch the record.. and then update query is used to turn that flag to "Y" i.e. ABC ="Y" so that next time the channel don't pick the same records again.
    Now the problem is that if we want to fetch some records again whose flag has been set to "Y" we cannot change the select query again and again in the production environment.
    Is there any way to change the select query of the JDBC channel at runtime e.g. Picking up some flat file where the conditions for the particular records to be picked are defined (ID=123) and changing the WHERE clause of select query in the JDBC channel for those records to be picked without using BPM.
    Thank you!
    With regards,
    Simran

    Hi Simran,
    Yes, it is possible with the help of store procedure. In SQL Server there is a IF-Else Conditional block, which you can use inside store procedure. Create a SP with 2 additional parameter something like FlagReadAgain and KeyField. Pass the flag always as True or False. For the Key field pass the record key which you want to read again if you are passing the Flag as True else pass it as 0 or whatever.
    In the procedure check if the value of flag is True -> If yes, Read the entry with key name specified in where part.
    In the else part put the query which you are using for the normal flow.
    IF (FlagReadAgain) = TRUE
    BEGIN
       SELECT EmpName, EmpAddress
       FROM Employee
       WHERE EmpID = 'E001'
    END
    ELSE
       BEGIN
         SELECT EmpName, EmpAddress
         FROM Employee
         WHERE Status = 'N'
       END
    You may also use the approach which Srini mentioned. Create an application to restore any value to intial stage so that it can be picked up by XI when it poll again.
    Choose any approach which you like.
    Regards,
    Jitender Chauhan

  • How to change where clause in VO query in bean

    Hi experts
    I have to modify vo object query where clause on run time .. is it possible??
    if yes please suggest me,

    as mentioned by Timo, it is very much possible
    see this following link -
    Changing the WHERE clause or VO Query at runtime in Oracle ADF | Techartifact
    Dynamically changing query in view object in Oracle ADF | Techartifact

  • Change where clause filter based on prompt?

    Hi,
    I am trying to change my where clause filter based on a prompt selected. What I want to do logically looks like this - although it doesn't work as it is not valid case statement syntax:
    select *
    from table t
    where t.calc_result_info_key in (case when :product_prompt = 'GAS' then (310, 160, 4000)
                                     else (320, 330, 340, 350, 170, 180, 190, 200, 4010, 4020, 4030, 4040)  end)Is there any way to change filter logic like this?
    Edited by: dgouin on Sep 16, 2010 9:02 AM

    The good old ugly OR statement.
    select *
    from table t
    where
          t.calc_result_info_key in (310, 160, 4000)
             and
          :product_prompt = 'GAS'
       or
          t.calc_result_info_key in (320, 330, 340, 350, 170, 180, 190, 200, 4010, 4020, 4030, 4040)
       and
          (:product_prompt != 'GAS' or :product_prompt is null)
       )

  • How to dynamically update columns in a where clause to a SQL query in OSB?

    Hi Gurus,
    I have a requirement where in we need to dynamically update a where clause to a SQL query in OSB(11.1.1.6.0).
    For example:
    If the JCA sql string is "select * from emp where emp_id = 100 and emp_status ='Permanent'" now i want to change this where clause and the new query has to be like "select * from emp where emp_name like 'S%' and emp_dept like 'IT' ". basically we need to change the where clause dynamically.
    We can also use "fn-bea:execute-sql()" in a xquery but I don't want to use this function as creates a new connection.
    I have done some home work and found out --> as per the DOC "http://docs.oracle.com/cd/E23943_01/dev.1111/e15866/jca.htm#OSBDV943" section: "25.5.2 JCA Transport Configuration for Proxy and Business Services", when a business service is created by using JCA, we can see Interaction Spec Properties under JCA Transport Tab. This will have a property "SqlString' and we can over ride it. But I am unable to figure out how to over ride the value. I have tried by using Transport Headers activity but no luck. Please guide me how to achieve this?
    Thanks in advance
    Surya

    I solved my problem.
    In my header renderer, I simply added a line to set the text to the object value "label.setText( (String) value );" (where label is an instance of a JLabel.
    Thank you to who took some time to think about it.
    Marc

  • Tree issue using a where clause

    Tree created
    select "ID" id,
    "PARENT_ID" pid,
    "TITLE" name,
    "LINK" link,
    null a1,
    null a2
    from apexim.TREE_NAV
    I am attempting to alter this tree this way
    select "ID" id,
    "PARENT_ID" pid,
    "TITLE" name,
    "LINK" link,
    null a1,
    null a2
    from apexim.TREE_NAV
    WHERE INSTR(PAGE_ID_1,:app_page_id) > 0
    This returns rows in PL/SQL however does not return tree values to the page.
    this throw the error
    Warning: Tree root ID "1" not found.
    When I change the where clause to:
    where 1=1
    I get all the enitire tree as i would expect.
    We are creating a report delevery application that will allow people to see specific leaves passed on authority level.
    The Tree_nav table ha the url for the page to display and has the page_id_1 for the portal that launches specific content page.
    So ultimatly I will include the following into the where clause
    (and authority_level <= :p100_auth_level)
    I have tried several things and am at wits end.

    rbackmann wrote:
    And the page_id_1 is a field in the table (SORRY EXAMPLE BAD NAMING CONVENTIONS) that IS VARCHAR
    and houses a comma seperated list of page numbers ie 28,29, 30Okay, I was wrong about the field name :(
    Carefully examine the query, expecially the INSTR line. Get the values in both the column and the bind variable and make sure they are what you think they are.
    The example on the other post might have failed because you were equality comparing the column value to '28' when it might have been a csv with commas unless you changed it (something worth trying).
    On 4th look I may (or may not) have something. PAGE_ID_1 is a VARCHAR2, while the 28 you compared it to was a number. Its a long shot, but maybe SQL is trying to convert the csv field to a number, failing to raise an error message where you can find it, and failing for that reason. Try using '28' on the equality test.
    Edited by: riedelme on May 8, 2009 6:03 AM

  • SQL query optimization by changinf the WHERE clause

    Hi all,
    I need to know about the SQL query performance improvement by changing the WHERE clause. Consider a query :
    select * from student where country ='India' and age = 20
    Say, country = 'India' filters 100000 records and age = 20 filters 2000 records if given one by one. Now can anyone tell if the performance of the query can be changed by changing the query like this :
    select * from student where age = 20 and country ='India'
    as first where clause will give 2000 results and next filter will be applicable on only 2000 rows. While in the former query first where clause would give 100000 rows and seconde filter, hence, would be applicable on 100000 rows???
    Kindly explain.
    Thanks in advance.
    Abhideep

    in general the order of the where condition should not be important. However there are a few exeptions where sometimes it might play a role. Sometimes this is called order of filter conditions. Among others it depends on RBO or CBO used, Oracle Version, Indexes on the columns, statistic information on the table and the columns, CPU statistics in place etc.
    If you want to make this query fast and you know that the age column has much better selectivity then you can simply put an index on the age column. An index on the country column is probably not useful at all, since to little different values are in this column. If you are already in 11g I would suggest to use a composite index on both columns with the more selective in first position.
    Edited by: Sven W. on Nov 17, 2008 2:23 PM
    Edited by: Sven W. on Nov 17, 2008 2:24 PM

  • Conditional WHERE clause for APEX

    Dear SQL gurus,
    I know that there's a APEX forum, but I think that there maybe an sql based solution for this...
    What I have is a query like this:
    SELECT COMMENT_ORIG, COMMENT_CHARGING
    FROM  CL_INVENTORY_OPEN_OUT
    WHERE INCIDENTAL_FK=:P13_INCIDENTAL_FK where :P13_INCIDENTAL_FK is a field in the Web Based GUI...
    What I need is to change the WHERE clause to something like this
    WHERE
      DECODE(:P13_INCIDENTAL_FK, NULL, 1=1, INCIDENTAL_FK=:P13_INCIDENTAL_FK)so to say:
    if the : P13_INCIDENTAL_FK is null, then let the clause be 1=1, otherwise let it be NCIDENTAL_FK=:P13_INCIDENTAL_FK.
    Is there a way to do this inside a sql statement?
    Best Regards and THX
    Johann

    SELECT COMMENT_ORIG, COMMENT_CHARGING
    FROM  CL_INVENTORY_OPEN_OUT
    WHERE INCIDENTAL_FK=:P13_INCIDENTAL_FKDo not know how you are using the query, but you might try something like this
    BEGIN
      CASE :P13_INCIDENTAL_FK
        WHEN NULL THEN
          SELECT COMMENT_ORIG, COMMENT_CHARGING
            FROM  CL_INVENTORY_OPEN_OUT
        ELSE
          SELECT COMMENT_ORIG, COMMENT_CHARGING
            FROM  CL_INVENTORY_OPEN_OUT
           WHERE INCIDENTAL_FK=:P13_INCIDENTAL_FK
      END CASE;
    END;Edited by: ajallen on May 7, 2010 6:44 AM

  • Dynamic where clause for MULTIPLE values

    In the following of dynamic where clause?
    i have some somewhat different problem.
    Is a dynamic where clause for multiple values possible?
    If the inputvariable varCode1,varCode2,varCode3,varCode4 are 0 then show all id's otherwise filter the resultset on var1 and/or var2,and/or var3,and/or var4.
    Example table:
    create table t
    (d int,var int);
    insert into t values (1 ,1 );
    insert into t values (2 ,1 );
    insert into t values (3 ,2 );
    insert into t values (4 ,3 );
    insert into t values (5 ,4 );
    insert into t values (6 ,4 );
    insert into t values (7 ,4 );
    insert into t values (8 ,4 );
    insert into t values (9 ,5 );
    insert into t values (10, 6);
    insert into t values (11, 6);
    So what i want to change the where clause upon the value of the varCodes. If var1 and var are not 0 a "AND" should be used otherwise an "OR"
    select id
    from tst
    where var = DECODE( :varCode1, 0, var, :varCode1)
    or/and(?) DECODE( :varCode2, 0, var, :varCode2)
    or DECODE( :varCode3, 0, var, :varCode3)
    or DECODE( :varCode4, 0, var, :varCode4)

    Please turn off your Caps Lock
    and try this link
    Dynamic WHERE clause

  • Where clause causing a query to slow down in a cursor

    I have a table "the_table" with about 10,000 rows and four columns (id, description, inventory, and category).
    This query returns all rows immediately:
        select id
             , description
             , inventory
        from the_table
        where category =  nvl(null, category);
    However, when it is put into a cursor, like this:
    (p_user_category is a user-defined variable which can be null if the user wants all of the rows)
        c_results  sys_refcursor;
        open c_results for
            select id
                 , description
                 , inventory
            from the_table
            where category =  nvl(p_user_category, category);
        fetch c_results into v_id, v_description, v_inventory;
        close c_results;
    then it takes five minutes to return even just one row when p_user_category is null.
    However, if I change the where clause to:
        where (p_user_category is null or category = p_user_category)
    then it returns all rows immediately.
    It started being a problem right around the time of the most recent update - I am running 11.2.0.2.0 (64-bit production).

    The optimizer is smart enough to recognise that null is null, so "nvl(null,category)" collapses to "category", and your predicate "category = nvl(null, category)" is transformed to "category is not null" (if it's allowed to be null) or simply disappears - so the SQL test is not the same as the PL/SQL run.
    In PL/SQL your manual rewrite is not logicall the same as the original unless you have declared category to be non-null because your first disjunct will allow rows with a null category to be reported, while the original query would lose them.
    Check the execution plans for the SQL and the PL/SQL versions.
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    Now on Twitter: @jloracle

  • Modifying where clauses for View Objects in Backing Beans

    In studying the RichTable class I saw no get/set methods that would allow me to manipulate the underlying view instance and rowset for the table in the Backing Bean. I know there is a way to do it, but I having great difficulty in finding it. The tutorials show how to build view objects and display them, but I haven't seen a tutorial that show how to respond to events from the Web page and directly change the data model and what is displayed via the backing bean.
    Can some one point to a tutorial or give me an example on how I can change a view object via a backing bean?

    What you want to do is add a method to your View Object Implementation class that changes the WHERE clause with setWhereClause or addWhereClause. Expose the method to your client. Then call the method from your page by binding it to a commandButton or commandLink. You can bind it through a pageDef file or a backing bean.

Maybe you are looking for

  • Help with listing records from two tables

    Hi: I have two tables joined by the first field. The field is primary key in first table. Need help listing records from both tables with each record one line/record. create table EVENTS ( event_key varchar2(64) primary key, event_description varchar

  • Radio & [not] Buffering. What's with it?

    We play the delightful, blissfully (almost) ad free internet radio through an amplifier for our office musac. Or try to. It continually interrupts itself with the message 'rebuffering stream'. We have the Streaming Buffer set to large in Preferences-

  • Error message when logging into iCloud

    I can not log in to iCloud as an error message comes up however I can log in fine on App Store please advise what I must do

  • BUPA_MAIN F05 Bdocs

    Hi Experts, Now a days we are facing SYSFAIL R3AD_CUSTOME* Queues in SMQ2. The Queues are failing in "Error in Mapping; check transaction SMW01" and in SMW01 there are some BUPA_MAIN F05 Bdocs with error text as "A business partner cannot be determin

  • RMI, stubs and skeleton and EJB

    HI, IN RMI we copy stub on client machine and skeleton on Server machine. EJBs are said to be extension of RMI. In EJB when we deploy EJB on the app Server server generates stubs and skeleton. But on the client machine we don't copy any stub. So from