Question on VO bind variable ?

Hi,
In one of my VO query's Select part, Im calling a function which accepts a parameter that comes from the pageContext
eg: select abc(:1) from xyz;
Any ideas on how to set the bind variable in the select clause of the VO query?
Thanks!!

I had tried the setWhereClauseParam today and could not get it to work. I used a PL/SQL function in my VO, and it was reading :3 as a string value. I would like to know which method user550094 was able to use.
If I see this in an Oracle-delivered VO, I'll reverse engineer to see which method they are using.
- Oracle Hack

Similar Messages

  • BC4J: Question on bind variables and DML in view objects

    Hello,
    I have a view object with a bind variable in the WHERE clause of the underlying query. I'm curious about how the state of this bind variable affects the use of the view object for inserting, updating, etc., at various stages of the commit cycle (before posting changes, after posting changes, after commit).
    Specifically, what happens in the following scenarios?
    1. The bind variable is not bound (and the query has not been executed) and a row is inserted into the VO
    2. The bind variable is set to some value and an inserted or updated row in the VO does not meet the criteria specified by the bind variable; the transaction is then committed
    If there is a weblog entry, help file, or HOWTO somewhere, I'd welcome a link to it.
    Thanks,
    Alan

    The variable would only come into play when the VO's query is executed. It can be executed implicitly -- for example, accessing the first() row if the query hasn't been executed yet -- or explicitly by a call to executeQuery().
    By setting setMaxFetchSize(0) on your VO, no rows will be fetched and you can use the VO for insert only.

  • Question reg bind variable...

    hi,
    I have learnt that when we pass parameter to proc/func. those parameters are auto. treated as bind variables...
    but what if I have a simple proc. which does not accept any argumets nor it returns anything just a batch job type for e.g to send emails.. then how will the variables declared in that proc treated as bind variables or not?
    If not, how can i modify the proc to use bind variables
    thx

    Any PL/SQL variables or parameters will be automatically treated as bind variables in static SQL. There is nothing special you have to do.

  • Question about bind variables.

    Hi,
    I'm looking to do an oracle prepared statement in some code and I'm having issues with the bind variables. If I have this query:
    SELECT count(*) FROM accessp WHERE id IN (?) AND groupies LIKE \'%?%\'
    and I want to bind a list like this:
    2,4,6
    to the first ?
    and a value like this:
    cap
    to the second ?
    it seems as if it would work but I keep getting errors about oracle not seeing the bind variable. After some doing a little research I found that it looks like I need to create a type or types for my columns I'm doing the binding to.
    Is that correct?
    Any help, greatly appreciated.
    Thanks,
    Jon

    No, that doesn't work. Unfortunately this is one of the few times when PreparedStatements are inconvenient.

  • How to get binding variables from request

    We are trying to use html-db to develop an application which need to get values from user request to use in the queries, i.e. we will have pages depend on several binding variables and the value of these variables will be provided by the user through get/post request. Because the request will be initialed by another application so to use a form to collect the values is not an option.
    I am a html-db newbie. Does anyone here know how to do that?

    you're right in thinking this is a bit of a newbie html db question. it's a pretty straightforward matter to set up a report in html db that runs off of bind variables that can be set from a URL. you can see a pretty simple example on the first page of our "Sample Application" that's available to install into your workspace. try taking a look at that to see what i mean. you can install the Sample Application by clicking the "Review Demonstration Applications" link that's available right after logging into htmldb.oracle.com. that resulting screen lets you create (or re-create) the Sample App in your workspace. once it's installed, take a look at how the report on page 1 calls the first report on page 201. that report on 201 is dependent on a bind variable, :P202_CATEGORY, that's set from the URL. this particular URL is generated from the report on page 1, but it could just as easily have been generated from your other application. when you look at this example, the two key points to pay attention to are the 1) syntax used in the URL to set the bind variable (which is explained in our online help at http://htmldb.oracle.com/i/doc/mvl_fund005.htm#sthref357) and 2)the way in which that bind variable is referenced in the first sql query region on page 201. take a look at those when you get a chance, and let us know if you have further questions.
    thanks,
    raj

  • Can viewObject get a parameter from sessionScope to binding variable?

    hello,
    using Jdev11g ADF Fusion application
    Can viewObject get a parameter from sessionScope and assign into binding variable ? without using executeWithParameter
    Thanks
    greenApple

    A. Safwat,
    As I said before, I was not trying to be offensive, but simply to explain some of the shortcomings of one solution over another. One of the reasons people give such short answers is that many questions (including this one) have been asked and answered many many many times before on the forum. As to my reasons:
    1). Overkill - overkill because you are writing code to do what the framework already provides for you.
    2). Not bind-variable friendly - you are gluing in literals into a SQL statement. That means that Oracle will have to hard parse the query for each new value of the filter clause, yielding to poor performance, particularly in a multiuser environment. It should ideally be done using bind variables.
    3). Insecure (think about what happens if you put "'xyz' or 1=1" into the filterValue there) - not using bind variables is a security hole. Think through what happens if a filter criteria comes through like the one I mentioned.
    4). Inflexible - because you are overriding executeQueryForCollection, this VO becomes inflexible and can only be used in this particular place. Using the declarative approach outlined by Timo is more flexible
    5). Bad (ok, that's my opinion there) - OK, perhaps this was a bit offensive ;)
    Please don't take a critique of a post as offensive, as I assure you it was not intended to be in that spirit. As I mentioned, I greatly appreciate when people point out issues/problems/etc with my ideas, as that is the best way for me to learn. I have in the past written applications that were not bind-variable friendly, and I learned the downsides the hard way (system was horribly non-performant) - I wish someone had reviewed my approach and told me "bad idea" before the application made it into production.
    Respectfully,
    John

  • Report Using Bind Variables

    Hey Everyone,
    I'm having a bit of trouble creating a report. I need the FROM part of the code to use bind variables. I have come up with this peice of code below but im getting the following error:
    failed to parse SQL query:
    ORA-06550: line 1, column 8:
    PLS-00103: Encountered the symbol "" when expecting one of the following:
    begin function package pragma procedure subtype type use
    form
    current cursor
    The symbol "" was ignored.
    ORA-06550: line 2, column 24:
    PLS-00103: Encountered the symbol "" when expecting one of the following:
    begin function package pragma procedure subtype type use
    form
    current
    Can anyone see where im going wrong?
    Thanks in advance,
    -N.S.N.O.
    Code*
    DECLARE
    x VARCHAR2 (4000);
    BEGIN
    x := x || 'select *';
    x := x || 'from ';
    x := x || :p13_schema;
    x := x || '.ddl_log@';
    x := x || :p13_db_name;
    x := x || '_DBAAPEX.TNTEWW.COM';
    RETURN (x);
    END;

    Hey Roel and Daylocks,
    After getting frustrated for a while i deleted the page and started again. I put in the exact same code and it worked just how i wanted in the first place :S
    The only thing i did different is when i was creating the report region the first time around i used a normal SQL query, For Example:
    select sysdate from dual;
    Then i modified it to
    DECLARE
    x VARCHAR2 (4000);
    BEGIN
    x := x || 'select ';*
    x := x || 'from ';
    x := x || :p14_schema;
    x := x || '.ddl_log@';
    x := x || :p14_db_name;
    x := x || '_DBAAPEX.TNTEWW.COM';
    RETURN (x);
    END;
    Whereas on the second attempt i used the peice of code in question straight away. Its been a bit of a frustrating morning because i used a similar peice of code for a different application, nevermind tho :)
    Thanks for your replys, much appreciated.
    -N.S.N.O.

  • VO with bind variable defined in SQL is not updated correctly

    Hi Experts,
    I have one simple question here, could you please help answer? Thanks a lot!
    I have 2 pages, the first page displays an employee table, the second page shows some details related to the selected employee. When select one employee and click on the detail button I can be naviaged to the second page and see the details for the selected employee. The vo used on the second page uses a bind variable called "empId" which is binding to a pageFlowScope value 'adf.context.pageFlowScope.empId', and this pageFlowScope value will be populated to the selected empId in detail button actionListener at runtime).
    The question here is, now the first navigating is ok, the detail page can show the correct information for the employee selected on the employee page, but when navigating back and choosing another employee, and then click on the detail button again, the detail page is NOT updated, it still shows the first selected employee information. I do debug the actionListener in the backing bean and the second selected empId does get passed to pageFlowScope.empId, the bind variable in the VO should get the new value, right? but why the second page does not get updated (query using the new bind variable value)?
    Thanks!
    Edited by: user774592 on Jul 20, 2011 11:13 PM
    Edited by: user774592 on Jul 20, 2011 11:15 PM
    Edited by: user774592 on Jul 20, 2011 11:15 PM

    Hi Timo,
    Thanks for you response! The JDev version I used is 11.1.2.0.0. Actually, they are different VOs, the 1st page is EmployeeVO, the second page is ResourceSummaryVO which binds the empId variable in SQL. The ActionListener code is as below.
    public void viewResSummary(ActionEvent actionEvent) {
    // Add event code here...
    DCBindingContainer bc = (DCBindingContainer)this.getBindings();
    DCIteratorBinding empIteBinding =
    bc.findIteratorBinding("SEmployeeView1Iterator");
    //Get employee id from the current selected employee record
    Row currentRow = empIteBinding.getRowSetIterator().getCurrentRow();
    Long employeeId = ((DBSequence)currentRow.getAttribute("EmployeeId")).getValue();
    //Set employeeId as a pageFlowScope object which will be used in ResourceSummaryPage
    AdfFacesContext.getCurrentInstance().getPageFlowScope().put("empId", employeeId);
    empId is defined using Bind Variable Dialog and is referenced in ResourceSummaryVO on the second page. I used the EL expression to defined its value to adf.context.pageFlowScope.empId which will be populated using above code at runtime.
    Again, thanks for your help!

  • Problem with bind variable in a procedure

    Hi Experts,
    I'm migrating forms from 5 to 6i. And in most of the forms I'm getting the error in the procedure "G$_KEY_OPT_MENU".
    This is the most common error I'm getting in almost like 30 forms.
    The error is:
    Error 49 at line 21, column 3
    bad bind variable "SELECT_ITEM"
    Error 49 at line 22, column 3
    bad bind variable "SELECT_ITEM"
    Error 49 at line 21, column 3
    bad bind variable "OPT_SEL"
    Error 49 at line 21, column 3
    bad bind variable "OPT_SEL"
    Error 49 at line 50, column 3
    bad bind variable "SELECT_ITEM"
    PROCEDURE G$_KEY_OPT_MENU (ITEM_NAME_IN IN CHAR,
                               SEL_A_DESC IN CHAR,SEL_A_KEY IN CHAR,
                               SEL_B_DESC IN CHAR,SEL_B_KEY IN CHAR,
                               SEL_C_DESC IN CHAR,SEL_C_KEY IN CHAR,
                               SEL_D_DESC IN CHAR,SEL_D_KEY IN CHAR) IS
         ITM          VARCHAR2(1);
         DESC_VAR     VARCHAR2(36);
         KEY_VAR      VARCHAR2(30);
         ITEM_ID      ITEM;
    BEGIN
      ITEM_ID := FIND_ITEM(NAME_IN('SYSTEM.CURSOR_BLOCK')||
                   SUBSTR(NAME_IN('SYSTEM.TRIGGER_ITEM'),
                   INSTR(NAME_IN('SYSTEM.TRIGGER_ITEM'),'.'),
                   INSTR(NAME_IN('SYSTEM.TRIGGER_ITEM'),'_LBT')-1 -
                   INSTR(NAME_IN('SYSTEM.TRIGGER_ITEM'),'.')+1));
      IF ID_NULL(ITEM_ID) THEN
         IF G$_DISPLAY_ALERT('','The Button you pressed is outside the current block') IS NOT NULL
            THEN RAISE FORM_TRIGGER_FAILURE;
         END IF;
      END IF;
      :SELECT_ITEM := '';
      :OPT_SEL := '';
      For Loop and some conditions, setting properties.
      GO_ITEM('G$_OPT_BLOCK.OPT_SEL');
      :SELECT_ITEM := ITEM_NAME_IN;
    END;Edited by: user12290512 on Mar 14, 2011 2:16 PM

    FRM-18108: Failed to load the following objects.Source Module:GOQOLIB
    Source Object: G$_WARNING_ALERT
    Source Module:GOQOLIB
    Source Object: G$_OPT_BLOCK
    Source Module:GOQOLIB
    Source Object: G$_OPT_CANVAS
    Source Module:COQOLIB
    Source Object: CTRDETC_CHG_LOV
    Source Module:GOQOLIB
    Source Object: GUROPTM_LOV
    Source Module:COQOLIB
    Source Object: CTRDETC_PMT_LOV
    Source Module:COQOLIB
    Source Object: CBBDACC_ACCOUNT_ID_LOV
    Source Module:COQOLIB
    Source Object: CBBDACC_ACCOUNT_ID_RG
    Source Module:COQOLIB
    Source Object: CTRDETC_PMT_RG
    Source Module:COQOLIB
    Source Object: CTRDETC_CHG_RG
    Source Module:GOQOLIB
    Source Object: GUROPTM_RG
    Source Module:GOQOLIB
    Source Object: G$_NVA_LOV
    Source Module:GOQOLIB
    Source Object: G$_NVA_BUTTON_ITEM
    Source Module:GOQOLIB
    Source Object: G$_NVA_TEXT_ITEM
    Source Module:GOQOLIB
    Source Object: G$_OPT_WINDOW
    And all the source objects listed above are in GOQOLIB form. >
    This is "KEY" piece of information that should have been included in your original post. As you are fairly new to the Oracle Forums, you might want to take a few minutes to review the following:
    <ul>
    <li>Before posting on this forum please read
    <li>10 Commandments for the OTN Forums Member
    <li>Announcement: Forums Etiquette / Reward Points
    </ul>
    These threads will help you ask more thorough questions! The more information you can provide about the issue you are having the better able we (the community) are to give you a solution. ;-)
    Craig B-)
    Edited by: CraigB on Mar 15, 2011 9:27 AM

  • Problem with Bind Variable in 11.2

    Hi
    I have a slow statement with bind Variables. With literals it works fine. Is there a way to replace the bind by literal in advanced ? I use Release 11.2.0.2.3
    Thank you

    904062 wrote:
    I have a slow statement with bind Variables. With literals it works fine. Is there a way to replace the bind by literal in advanced ? I use Release 11.2.0.2.3This specific scenario is very much an exception to the rule - and you need to back your statement up with execution plans of the SQL with bind variables and with literals, and run stats that show the difference between these two execution plans.
    See the {message:id=9360003} from the {forum:id=75} forum's FAQ for details on how to post a SQL performance tuning question.

  • Collection with bind variable

    Hello all,
    this might be more of a pl sql question but I am trying to create a collection in apex where the query uses a bind variable. I cannot get this query to work.
    This works
    p_query => 'select je_batch_id from gl_je_batches where default_period_name = ''MAY-10''',
    but I cannot get it to work with a bind variable.
    p_query => 'select je_batch_id from gl_je_batches where default_period_name = :P14_EPSB_ARGYLL_PERIODS ||',
    any assistance would be greatly appreciated.
    Thanks

    For the record, the APEX_COLLECTION package in Application Express 4.0 now does support bind variables in the query.
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B and APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERYB2 support an input array of bind variable names and bind variable values. This should be faster than referencing an item value via the v() function. However, prior to APEX 4.0, this is the only recourse.
    Joel

  • Update before a report shows with bind variable

    I need to update a table before a report shows. This report have bind variable and I need bind variable value for clause where in update, how can I do that?
    I would thank so much any idea

    Mery,
    If I understand correctly your application should display a report when it is called.
    But first, before the report is displayed, you want to update a table, using a bind variable passed into the report when it is called. Do I understand correctly so far?
    So while editing the report, in the last tab option you have (Additional PL/SQL Code), you need to put some pl/sql code into section titled '...before displaying the page.'
    declare
    begin
    update table_x
    set column_x = somevalue
    where column_y = bind_variable;
    end;
    I haven't yet passed bind variables into reports so I'm not quite sure how to retrieve them, but I'm sure there are other postings here about that.
    I'm mostly just trying to clarify if this is what your asking, and maybe somebody else can answer the rest of your questions.
    Good luck.
    Kurt

  • SLOW report performance with bind variable

    Environment: 11.1.0.7.2, Apex 4.01.
    I've got a simplified report page where the report runs slowly compared to running the same query in sqldeveloper. The report region is based on a pl/sql function returning a query. If I use a bind variable in the query inside apex it takes 13 seconds to run, and if I hard code a string it takes only a few hundredths of a second. The query returns one row from a table which has 1.6 million rows. Statistics are up-to-date and the columns in the joins and where clause are indexed.
    I've run traces using p_trace=YES from Apex for both the bind variable and hard coded strings. They are below.
    The sqldeveloper explain plan is identical to the bind variable plan from the trace, yet the query runs in 0.0x seconds in sqldeveloper.
    What is it about bind variable syntax in Apex that is causing the bad execution plan? Apex Bug? 11g bug? Ideas?
    tkprof output from Apex trace with bind variable is below...
    select p.master_id link, p.first_name||' '||p.middle_name||' '||p.last_name||' '||p.suffix personname,
    p.gender||' '||p.date_of_birth g_dob, p.master_id||'*****'||substr(p.ssn,-4) ssn, p.status status
    from persons p
    where
       p.person_id in (select ps.person_id from person_systems ps where ps.source_key  like  LTRIM(RTRIM(:P71_SEARCH_SOURCE1)))
    order by 1
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.01          0          1         27           0
    Fetch        2     13.15      13.22      67694      72865          0           1
    total        4     13.15      13.23      67694      72866         27           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 62  (ODPS_PRIVACYVAULT)   (recursive depth: 1)
    Rows     Row Source Operation
          1  SORT ORDER BY (cr=72869 pr=67694 pw=0 time=0 us cost=29615 size=14255040 card=178188)
          1   FILTER  (cr=72869 pr=67694 pw=0 time=0 us)
          1    HASH JOIN RIGHT SEMI (cr=72865 pr=67694 pw=0 time=0 us cost=26308 size=14255040 card=178188)
          1     INDEX FAST FULL SCAN IDX$$_0A300001 (cr=18545 pr=13379 pw=0 time=0 us cost=4993 size=2937776 card=183611)(object id 68485)
    1696485     TABLE ACCESS FULL PERSONS (cr=54320 pr=54315 pw=0 time=21965 us cost=14958 size=108575040 card=1696485)
    Rows     Execution Plan
          0  SELECT STATEMENT   MODE: ALL_ROWS
          1   SORT (ORDER BY)
          1    FILTER
          1     HASH JOIN (RIGHT SEMI)
          1      INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                     'IDX$$_0A300001' (INDEX)
    1696485      TABLE ACCESS   MODE: ANALYZED (FULL) OF 'PERSONS' (TABLE)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      db file scattered read                       1276        0.00          0.16
      db file sequential read                       812        0.00          0.02
      direct path read                             1552        0.00          0.61
    ********************************************************************************Here's the tkprof output with a hard coded string:
    select p.master_id link, p.first_name||' '||p.middle_name||' '||p.last_name||' '||p.suffix personname,
    p.gender||' '||p.date_of_birth g_dob, p.master_id||'*****'||substr(p.ssn,-4) ssn, p.status status
    from persons p
    where
       p.person_id in (select ps.person_id from person_systems ps where ps.source_key  like  LTRIM(RTRIM('0b')))
    order by 1
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.02       0.04          0          0          0           0
    Execute      1      0.00       0.00          0          0         13           0
    Fetch        2      0.00       0.00          0          8          0           1
    total        4      0.02       0.04          0          8         13           1
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 62  (ODPS_PRIVACYVAULT)   (recursive depth: 1)
    Rows     Row Source Operation
          1  SORT ORDER BY (cr=10 pr=0 pw=0 time=0 us cost=9 size=80 card=1)
          1   FILTER  (cr=10 pr=0 pw=0 time=0 us)
          1    NESTED LOOPS  (cr=8 pr=0 pw=0 time=0 us)
          1     NESTED LOOPS  (cr=7 pr=0 pw=0 time=0 us cost=8 size=80 card=1)
          1      SORT UNIQUE (cr=4 pr=0 pw=0 time=0 us cost=5 size=16 card=1)
          1       TABLE ACCESS BY INDEX ROWID PERSON_SYSTEMS (cr=4 pr=0 pw=0 time=0 us cost=5 size=16 card=1)
          1        INDEX RANGE SCAN IDX_PERSON_SYSTEMS_SOURCE_KEY (cr=3 pr=0 pw=0 time=0 us cost=3 size=0 card=1)(object id 68561)
          1      INDEX UNIQUE SCAN PK_PERSONS (cr=3 pr=0 pw=0 time=0 us cost=1 size=0 card=1)(object id 68506)
          1     TABLE ACCESS BY INDEX ROWID PERSONS (cr=1 pr=0 pw=0 time=0 us cost=2 size=64 card=1)
    Rows     Execution Plan
          0  SELECT STATEMENT   MODE: ALL_ROWS
          1   SORT (ORDER BY)
          1    FILTER
          1     NESTED LOOPS
          1      NESTED LOOPS
          1       SORT (UNIQUE)
          1        TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF
                       'PERSON_SYSTEMS' (TABLE)
          1         INDEX   MODE: ANALYZED (RANGE SCAN) OF
                        'IDX_PERSON_SYSTEMS_SOURCE_KEY' (INDEX)
          1       INDEX   MODE: ANALYZED (UNIQUE SCAN) OF 'PK_PERSONS'
                      (INDEX (UNIQUE))
          1      TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF
                     'PERSONS' (TABLE)

    Patrick, interesting insight. Thank you.
    The optimizer must be peeking at my bind variables with it's eyes closed. I'm the only one testing and I've never passed %anything as a bind value. :)
    Here's what I've learned since my last post:
    I don't think that sqldeveloper is actually using the explain plan it says it is. When I run explain plan in sqldeveloper (with a bind variable) it shows me the exact same plan as Apex with a bind variable. However, when I run autotrace in sqldeveloper, it takes a path that matches the hard coded values, and returns results in half a second. That autotrace run is consistent with actually running the query outside of autotrace. So, I think either sqldeveloper isn't really using bind variables, OR it is using them in some other way that Apex does not, or maybe optimizer peeking works in sqldeveloper?
    Using optimizer hints to tweak the plan helps. I've tried both /*+ FIRST_ROWS */ and /*+ index(ps pk_persons) */ and both drop the query to about a second. However, I'm loath to use hints because of the very dynamic nature of the query (and Tom Kyte doesn't like them either). The hints may end up hurting other variations on the query.
    I also tested the query by wrapping it in a select count(1) from ([long query]) and testing the performance in sqldeveloper and in Apex. The performance in that case is identical with both bind variables and hard coded variables for both Apex and SqlDeveloper. That to me was very interesting and I went so far as to set up two bind variable report regions on the same page. One region wrapped the long query with select count(1) from (...) and the other didn't. The wrapped query ran in 0.01 seconds, the unwrapped took 15ish seconds with no other optimizations. Very strange.
    To get performance up to acceptable levels I have changed my function returning query to:
    1) Set the equality operator to "=" for values without wildcards and "like" for user input with wildcards. This makes a HUGE difference IF no wildcard is used.
    2) Insert a /*+ FIRST_ROWS */ hint when users chose the column that requires the sub-query. This obviously changes the optimizer's plan and improves query speed from 15 seconds to 1.5 seconds even with wildcards.
    I will NOT be hard coding any user supplied values in the query string. As you can probably tell by the query, this is an application where sql injection would be very bad.
    Jeff, regarding your question about "like '%' || :P71_SEARCH_SOURCE1 || '%'". I've found that putting wildcards around values, particularly at the beginning will negate any indexing on the column in question and slows performance even more.
    I'm still left wondering if there isn't something in Apex that is breaking the optimizer "peeking" that Patrick describes. Perhaps something in the way it switches contexts from apex_public_user to the workspace schema?

  • ADF - ViewObject (with Bind Variable) Bind to Table- JDeveloper 10.1.3 EA

    Hi all,
    1.- This is the situation:
    In JDeveloper 10g 10.1.3 EA I have two JSP JSF Pages with bind automatically coponents (backing bean).
    - In the first page I can select a value from a list. Then, when I press the "Accept" ADF Command Button, the selected value is stored in a property called "rutEntidad" of a Session Managed Bean and the Flow Control is passed to the second page.
    - In the second page I have an ADF Table (called tablePolizas) bind to a ViewObject (I drop the ViewObject from the Data Control Palette to the Page - ADF Read-Only Table ). The ViewObject has a Bind Variable called RUT_ENTIDAD. When this page is loaded, value in the rutEntidad property of Session Managed Bean is passed to the ViewObject in order the ADF Table show filtered data . Also in this page there is a "back" ADF Command Button to the first page. The filter mechanism is performed in the getTablePolizas method in the backing bean of the second page, like this:
    //**** The backing bean of the second page *****
    package cl.bicevida.view.backing;
    public class CrearUsuario {
    private CoreTable tablePolizas;
    public CoreTable getTablePolizas() {
    DCBindingContainer dcbc;
    DCControlBinding cb;
    String rutEntidad;
    FacesContext ctx =FacesContext.getCurrentInstance();
    ValueBinding vb =
    ctx.getApplication().createValueBinding("#{SessionManager.rutEntidad}");
    rutEntidad = vb.getValue(ctx).toString();
    dcbc = this.getBindingContainer();
    cb = dcbc.findCtrlBinding("VoPolizasAsociadasEntidadExterna1");
    ViewObject vo = cb.getViewObject();
    vo.setNamedWhereClauseParam("RUT_ENTIDAD", rutEntidad);
    vo.executeQuery();
    return tablePolizas;
    2.- And this is the problem:
    The first time all works fine... then I press the "back" ADF Command Button to the first page (and NOT the back button of the browser). The second time, if the numbers of rows returned by the ViewObject is different than the first time, the application throws this message (but not crash):
    validation - JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg=JBO-35007: Row currency has changed since the user interface was rendered. The expected row key was oracle.jbo.Key[1 ]
    validation - JBO-35007: Row currency has changed since the user interface was rendered. The expected row key was oracle.jbo.Key[1 ]
    Well, I had read the "Generic Approach for Back-Button-Friendly Web Rowset Paging" article of Steve Muench in http://www.oracle.com/technology/products/jdev/tips/muench/paging/index.html
    but I think here have another problem.
    3.- The questions:
    Which is the cause of this problem?
    How I can solve it?
    What another way I can programmatic pass a parameter to a ViewObject connected to a table?
    Thanks!!!

    Another thing: the used strategy to obtain a binding container is explained by Steve Muench http://www.oracle.com/technology/products/jdev/tips/muench/1013eabinding/index.html:
    Next, you can use JDeveloper's Overview tab of the faces-config.xml file editor to configure a managed property. Define the managed property name as bindingContainer to match the property in your bean, and set the class to the fully-qualified name of the DCBindingContainer class. You can use the (Browse...) button to quickly locate the class using the new JDeveloper 10.1.3 class browser. Just type in the first few letters of the DCBindingContainer name, and then select the class. Edit the new managed property and set its Value to the JSF EL expression: #{bindings}.
    ************************

  • Report with bind variables

    Hi,
    I apologize in advance for the newbie question.
    I would like to create a report report_b with a "vertical report exclude null values" template which will show only one record. This report will be called from another report with a default template or perhaps an interactive report - report_a.
    The order of actions is:
    A user logs in queries report_a and gets a result of a few rows.
    She presses the link column of a specific record with id 123 in the report and report_b is called displaying the relevant information of id 123.
    I haven't been able to figure out how to use bind variables to achieve this.
    The use case is: I have a table with dozens of columns. Both reports are based on the same table but report_a only displays 3-4 columns to allow the user to figure out which row he wants to see and then she gets to see all its columns in report_b.
    Many thanks,
    ~ronen

    At a very high level, this is what needs to happen:
    Let us say report_a is on Page 10 (P10), and report_b is on P11.
    When the user clicks a link on a column in report_a on P10, this should a hidden item on P11 (say P11_ID).
    When P11 is displayed, the SQL would use the value stored in P11_ID. For example, Select col1, col2, col3 from table_a where id = :P11_ID.
    If you need more and specific example, please let us know.
    Ravi

Maybe you are looking for