Dynamic View Object Creation and Scope Question

I'm trying to come up with a way to load up an SQL statement into a view object, execute it, process the results, then keep looping, populating the view object with a new statement, etc. I also need to handle any bad SQL statement and just keep going. I'm running into a problem that is split between the way java scopes objects and the available methods of a view object. Here's some psuedo code:
while (more queries)
ViewObject myView = am.createViewObjectFromQueryStmt("myView",query); //fails if previous query was bad
myView.executeQuery();
Row myRow = myView.first();
int rc = myView.getRowCount();
int x = 1;
myView.first();
outStr = "";
int cc = 0;
while (x <= rc) //get query output
Object[] result = myRow.getAttributeValues();
while (cc < result.length)
outStr = outStr+result[cc].toString();
cc = cc+1;
x = x+1;
myView.remove();
catch (Exception sql)
sql.printStackTrace(); myView.remove(); //won't compile, out of scope
finally
myView.remove(); //won't compile, out of scope
//do something with query output
Basically, if the queries are all perfect, everything works fine, but if a query fails, I can't execute a myView.remove in an exception handler. Nor can I clean it up in a finally block. The only other way I can think of to handle this would be to re-use the same view object and just change the SQL being passed to it, but there's no methods to set the SQL directly on the view object, only at creation time as a method call from the application module.
Can anyone offer any suggestions as to how to deal with this?

I figured this out. You can pass a null name to the createViewObjectFromQueryStmt method, which apparently creates a unqiue name for you. I got around my variable scoping issue by re-thinking my loop logic.

Similar Messages

  • DOC BUG: 9.0.3.1 View Object Wizard and a Question

    First the question: What is the Passivate property for in the View Object Wizard's Attribute Settings page?
    Related Doc Bugs 9.0.3.1
    Topic: Define New View Attribute Dialog
    (click Help button in New Attribute dialog when creating a view object attribute)
    Problems: The description for the "Attribute" property is "foo"; Descrimator, Updateable, and Queriable have single letter descriptions. Key Attribute and Passivate are not listed.
    Topic: View Object Wizard - Attribute Settings Page
    (click Help button in Attribute Settings page in View Object Wizard)
    Problems: Query Column Type and Passivate are not listed. Attribute Settings column lists properties in a strange order (not a bug).
    Peter Koletzke

    Peter,
    I've logged doc bug 2814172: BC4J GLOSSARY SHOULD HAVE ENTRIES FOR PASSIVATE AND ACTIVATE.
    For more information, you could read the "About Application Module Pooling" topic in the online documentation. Passivation is what happens when the application module's state is saved to the database - and activation happens when an application module instance retrieves passivated state from the database.
    Thanks
    Blaise

  • Dynamic View Object Creation... Help Needed Urgent !!!!

    Hi,
    I have a requirement in which i create ReadOnly VOs at runtime. This VO is not associated with any EO. Besides no Java file is generated for it.
    I am able to generate the .xml file for the Vo and have also added the <containee> </containee> part in the server.xml. Then I also add this VO to the project as an Item in the <ownerMap> of the containing Project file(.jpr).
    At run time the .xml file is generated and all the above mentioned changes are made to the files but the
    Actually this VO is created in association with a poplist, which shall be using it subsequently.
    However when I render the page with this poplist it gives the following error:
    "oracle.apps.fnd.framework.OAException: oracle.jbo.NoDefException: JBO-25002: Definition oracle.apps.fnd.templates.server.PP_TST of type View Definition not found"
    But when I simply open the same VO (which was created at runtime)at design time and just Press Ok and then render the Page - it works.
    Is there some thing else that must be done to make the VO work properly in the first go?
    Thanks in advance

    Do you actually need to parse the XML file yourself for some application-specific reason?
    If you just generate the file to be exactly like the ones the BC4J design time creates, then you'll be ok.
    At runtime, to improve performance, BC4J leverages a DTD caching feature of the Oracle XML Parser to read the JBO DTD a single time, cache it on the parser instance, then go ahead an parse the JBO XML files.
    If you're curious to see how this technique is coded, google for the "BC4J Toy Store Demo" (not the ADF Toy Store Demo, it's the older BC4J Toy Store Demo version), and download the zip file. Look in there to find the:
    .\bc4jtoystore\Utilities\src\toystore\util\DynaActionFormGen.java
    class. This illustrates the technique of loading and caching the DTD. It's a little utility that loads a VO XML File and programmatically transforms it using XSLT.

  • How to create dynamic View Object and Dynamic Table

    Dear ll
    I want to create a dynamic view object and display the output in a dynamic table on the page.
    I am using Jdeveloper 12c "Studio Edition Version 12.1.2.0.0"
    This what I did:
    1- I created a read only view object with this query "Select sysdate from dual"
    2- I added this View object to the application module
    3- I created a new method that change the query of this View object at runtime
        public void changeVoQuery(String dbViewName) {
            String sqlstm = "Select * From " + dbViewName;
            ViewObject dynamicVo = this.findViewObject("DynamicVo");
            if (dynamicVo != null) {
                dynamicVo.remove();
            dynamicVo = this.createViewObjectFromQueryStmt("DynamicVo", sqlstm);
            dynamicVo.executeQuery();
    4- I run the application module for testing the method and I passed "Scott.Emp" as a parameter and the result was Success
    5- Now I want to show the result of the view on the page, so I draged and dropped the method from the data control as a parameter form
    6- I dragged and dropped the view Object "DynamicVo" as a table and I choose "generate Column Dynamically at runtime". This is the page source
    <af:panelHeader text="#{viewcontrollerBundle.SELECT_DOCUMTN_TYPE}" id="ph1">
            <af:panelFormLayout id="pfl1">
                <af:inputText value="#{bindings.dbViewName.inputValue}" label="#{bindings.dbViewName.hints.label}"
                              required="#{bindings.dbViewName.hints.mandatory}"
                              columns="#{bindings.dbViewName.hints.displayWidth}"
                              maximumLength="#{bindings.dbViewName.hints.precision}"
                              shortDesc="#{bindings.dbViewName.hints.tooltip}" id="it1">
                    <f:validator binding="#{bindings.dbViewName.validator}"/>
                </af:inputText>
                <af:button actionListener="#{bindings.changeVoQuery.execute}" text="changeVoQuery"
                           disabled="#{!bindings.changeVoQuery.enabled}" id="b1"/>
            </af:panelFormLayout>
        </af:panelHeader>
        <af:table value="#{bindings.DynamicVo.collectionModel}" var="row" rows="#{bindings.DynamicVo.rangeSize}"
                  emptyText="#{bindings.DynamicVo.viewable ? 'No data to display.' : 'Access Denied.'}"
                  rowBandingInterval="0" selectedRowKeys="#{bindings.DynamicVo.collectionModel.selectedRow}"
                  selectionListener="#{bindings.DynamicVo.collectionModel.makeCurrent}" rowSelection="single"
                  fetchSize="#{bindings.DynamicVo.rangeSize}" filterModel="#{bindings.DynamicVoQuery.queryDescriptor}"
                  queryListener="#{bindings.DynamicVoQuery.processQuery}" filterVisible="true" varStatus="vs" id="t1"
                  partialTriggers="::b1">
            <af:iterator id="i1" value="#{bindings.DynamicVo.attributesModel.attributes}" var="column">
                <af:column headerText="#{column.label}" sortProperty="#{column.name}" sortable="true" filterable="true"
                           id="c1">
                    <af:dynamicComponent id="d1" attributeModel="#{column}"
                                         value="#{row.bindings[column.name].inputValue}"/>
                </af:column>
            </af:iterator>
        </af:table>
    when I run the page this error is occured
    <Nov 13, 2013 2:51:58 PM AST> <Error> <oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter> <BEA-000000> <ADF_FACES-60096:Server Exception during PPR, #1
    javax.el.ELException: java.lang.NullPointerException
    Caused By: java.lang.NullPointerException
    Can any body help me please
    thanks

    Have you seen Shay's video https://blogs.oracle.com/shay/entry/adf_faces_dynamic_tags_-_for_a
    All you have to do is to use the dynamic table to get your result.
    Timo

  • [SOLVED] Multiple Dynamic View Objects and View Links - ADF Tree Table

    Hi all,
    I've got a method that creates 3 dynamic viewobjects using this:
                ViewDefImpl Level1ViewDef = new ViewDefImpl("Level1View");
                Level1ViewDef.addViewAttribute("LevelDescription","LEVEL1_DESCRIPTION",String.class);
                Level1ViewDef.addViewAttribute("SetOfBooksId","SET_OF_BOOKS_ID",Number.class);
                Level1ViewDef.addViewAttribute("CodeCombinationId","CODE_COMBINATION_ID",Number.class);
                Level1ViewDef.addViewAttribute("Level1","LEVEL1",String.class);
                Level1ViewDef.addViewAttribute("AccountType","ACCOUNT_TYPE",String.class);
                Level1ViewDef.addViewAttribute("PeriodYear","PERIOD_YEAR",Number.class);
                Level1ViewDef.addViewAttribute("PeriodNum","PERIOD_NUM",Number.class);
                Level1ViewDef.addViewAttribute("PeriodName","PERIOD_NAME",String.class);
                Level1ViewDef.addViewAttribute("PtdActual","PTD_ACTUAL",Number.class);
                Level1ViewDef.addViewAttribute("YtdActual","YTD_ACTUAL",Number.class);
                Level1ViewDef.addViewAttribute("LtdActual","LTD_ACTUAL",Number.class);
                Level1ViewDef.addViewAttribute("BudgetName","BUDGET_NAME",String.class);
                Level1ViewDef.addViewAttribute("BudgetVersionId","BUDGET_VERSION_ID",Number.class);
                Level1ViewDef.addViewAttribute("PtdBudget","PTD_BUDGET",Number.class);
                Level1ViewDef.addViewAttribute("YtdBudget","YTD_BUDGET",Number.class);
                Level1ViewDef.addViewAttribute("LtdBudget","LTD_BUDGET",Number.class);
                Level1ViewDef.addViewAttribute("EncumbranceType","ENCUMBRANCE_TYPE",String.class);
                Level1ViewDef.addViewAttribute("EncumbranceTypeId","ENCUMBRANCE_TYPE_ID",Number.class);
                Level1ViewDef.addViewAttribute("PtdCommitment","PTD_COMMITMENT",Number.class);
                Level1ViewDef.addViewAttribute("YtdCommitment","YTD_COMMITMENT",Number.class);
                Level1ViewDef.addViewAttribute("LtdCommitment","LTD_COMMITMENT",Number.class);
                Level1ViewDef.setQuery(sql_level1);
                Level1ViewDef.setFullSql(true);
                Level1ViewDef.setBindingStyle(SQLBuilder.BINDING_STYLE_ORACLE_NAME);
                Level1ViewDef.resolveDefObject();
                Level1ViewDef.registerDefObject();
                ViewObject vo1 = createViewObject("Level1View",Level1ViewDef);I can create the view objects fine and create a single viewlink between two of them, however i'm getting problems with 2 view links.
    This is how I'm creating a view link:
                ViewLink Level2Level1FKLink = createViewLinkBetweenViewObjects("Level2Level1FKLink1",
                                                        "Level2View",
                                                        vo1,
                                                        new AttributeDef[]{
                                                          vo1.findAttributeDef("Level1")
                                                        vo2,
                                                        new AttributeDef[]{
                                                          vo2.findAttributeDef("Level1")
                                                        "LEVEL1 = :Bind_Level1");
                ViewLink Level3Level2FKLink = createViewLinkBetweenViewObjects("Level3Level2FKLink1",
                                                        "Level3View",
                                                        vo2,
                                                        new AttributeDef[]{
                                                          vo2.findAttributeDef("Level2")
                                                        vo3,
                                                        new AttributeDef[]{
                                                          vo3.findAttributeDef("Level2")
                                                        "LEVEL2 = :Bind_Level2");I can get the data to display on an adf tree table if i'm only using a single view link, but when i try and implement 2 view link (for 3 levels on the adf tree table) i'm getting problems displaying the data.
    I'm getting the following error:
    Aug 10, 2007 2:44:39 PM oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer encodeAll
    SEVERE: Error during partial-page rendering
    oracle.jbo.NoDefException: JBO-25058: Definition Level3View of type Attribute not found in Level2View_Level2Level1FKLink1_Level2ViewThe thing is, Level3View isn't in the Level2Level1FKLink viewlink.
    I've been reading about something similar here
    BC4J Master-Detail-Detail
    but I am still unsure of what the problem is.
    Thanks in advance.

    I found the answer here:
    http://radio.weblogs.com/0118231/stories/2004/06/10/correctlyImplementingMultilevelDynamicMasterDetail.html

  • Creating and Accessing a Dynamic View Object

    Hi,
    I'm needing to create a Dynamic View Object so to have the ability to modify the FROM and WHERE clauses in an SQL statement.
    I then need to view all the columns and rows in an adf table or something similar.
    I've read up a fair bit on similar situations, however I'm struggling with the basic framework of building the View Object.
    I know I'm wanting to use ..createViewObjectFromQueryStmt..but just unsure of the syntax in using it, especially connecting the VO to an Application Module.
    This is similar to what I've got now, located in AppModuleImpl.java
        public void createDynVO(ApplicationModule appMod, String FROMclause, String WHEREclause){
        String SQL = "SELECT JOURNAL_NAME, PERIOD_NAME FROM " + FROMclause + " " + WHEREclause;
        ViewObject vo = appMod.createViewObjectFromQueryStmt("DynamicView", SQL);
        vo.executeQuery();But how does it know what the application module is?
    Any help would be greatly appreciated!
    -Chris

    Ok, I've actually modified my approach to this.
    I've created a View Object in the design view, added it to the App Module, and then created an iterator and bound an adf table to that iterator.
    The View Object which I created has the same column names as what I am going to be getting later down the track.
    Everything is working perfectly, except that I can't seem to bind variables to the WHERE clause.
    Below is what I have got running:
        public void recreateDynView(String FromClause, String whereCompany, String whereDepartment) {
             String sql_PAGE_ITEM1 = " AND PAGE_ITEM1 LIKE :P_PAGE_ITEM1";
             String sql_PAGE_ITEM2 = " AND PAGE_ITEM2 LIKE :P_PAGE_ITEM2";
             findViewObject("DynamicView1").remove();
             String SQLStmt = "SELECT PAGE_ITEM1, PAGE_ITEM2, PAGE_ITEM3, LINE_ITEM FROM " + FromClause;
             ViewObject vo = createViewObjectFromQueryStmt("DynamicView1",SQLStmt);
             vo.setWhereClause("1=1");
               if (whereCompany != null && whereCompany.length()>0){
                   vo.setWhereClause(vo.getWhereClause() + sql_PAGE_ITEM1);
                   vo.defineNamedWhereClauseParam("P_PAGE_ITEM1",null,null);
                   vo.setNamedWhereClauseParam("P_PAGE_ITEM1",whereCompany);
               if (whereDepartment != null && whereDepartment.length()>0){
                   vo.setWhereClause(vo.getWhereClause() + sql_PAGE_ITEM2);
                   vo.defineNamedWhereClauseParam("P_PAGE_ITEM2",null,null);
                   vo.setNamedWhereClauseParam("P_PAGE_ITEM2",whereDepartment);
             vo.executeQuery();
           }However whenever I input a value into one of the bound variables, I get the following error on the page.
       1. JBO-29000: Unexpected exception caught: oracle.jbo.InvalidOperException, msg=JBO-25070: Where-clause param variable P_PAGE_ITEM1 needs ordinal index array.
       2. JBO-25070: Where-clause param variable P_PAGE_ITEM1 needs ordinal index array.In the view object which i created at design stage, I've set the binding style to Oracle Named, so it should be alright. But obviously since I'm removing the view object and creating another version of it, it doesn't have the same binding style attached by default?
    Is there a work around for this? I'm so close!
    -Chris

  • Dynamic view object loses bind variables after passivation

    I am creating a view object definition/view object programmatically in Jdev 11.1.1.2.0. The query requires a named bind parameter. All was working fine but now I am testing with app module pooling disabled and the bind variable is not being restored after passivation -- it's like the definition has disappeared or something.
    Here is my VO creation code:
    ViewObject vo = findViewObject("FinalistsWithEvalDataVO");
    if (vo != null){
    vo.remove();
    ViewDefImpl voDef = new ViewDefImpl("FinalistsWithEvalDataVODef");
         // I add a bunch of viewAttrs here...
    voDef.setQuery(fullQuery);
    voDef.setFullSql(true);
    voDef.setBindingStyle(SQLBuilder.BINDING_STYLE_ORACLE_NAME);
    voDef.resolveDefObject();
    voDef.registerDefObject();
    vo = createViewObject("FinalistsWithEvalDataVO", voDef);
    vo.defineNamedWhereClauseParam("Bind_SchlrAyId", null, new int[] {0});
    vo.setNamedWhereClauseParam("Bind_SchlrAyId", new Number(1)); //For testing
    vo.executeQuery();
    The query executes fine right there and then the VO seems to passivate fine. I even see the bind var in passivation:
    <exArgs count="1">
    <arg name="Bind_SchlrAyId" type="oracle.jbo.domain.Number">
    <![CDATA[1]]>
    </arg>
    </exArgs>
    But then when it reactivates prior to rendering the page, it invariably throws a missing parameter exception and this in the log:
    <ViewUsageHelper><createViewAttributeDefImpls> [7409] *** createViewAttributeDefImpls: oracle.jdbc.driver.OraclePreparedStatementWrapper@1af78e1
    <ViewUsageHelper><createViewAttributeDefImpls> [7410] Bind params for ViewObject: [FinalistsWithEvalDataVO]AwardViewingServiceAM.FinalistsWithEvalDataVO
    <ViewUsageHelper><createViewAttributeDefImpls> [7411] ViewUsageHelper.createViewAttributeDefImpls failed...
    <ViewUsageHelper><createViewAttributeDefImpls> [7412] java.sql.SQLException: Missing IN or OUT parameter at index:: 1
    I have worked on this for hours and can't see anything wrong. Like I said, it works fine when not forcing passivation...
    Any help would be appreciated.
    Thanks.
    -Ed

    @Jobinesh - Thanks for the suggestions. I have read all the documentation I can find. Everything works fine without passivation. Everything still breaks with passivation. I have given up on trying to get the bind variable to restore after passivation and am currently just building the query with all values embedded in the query rather than bind variables. This is bad practice but avoids the problem. However, now that I avoided that obstacle, I'm on to the next issue with passivation of this dynamic view object, which is that the current row primary key apparently cannot be reset after activation. I get the following error:
    <Key><parseBytes> [7244] Key(String, AttributeDef[]): Invalid Key String found. AttributeCount:1 does not match Key attributes
    <DCBindingContainer><reportException> [7254] oracle.jbo.InvalidParamException: JBO-25006: Value 00010000000A30303033383133343734 passed as parameter String to method Constructor:Key is invalid: {3}.
         at oracle.jbo.Key.parseBytes(Key.java:537)
         at oracle.jbo.Key.<init>(Key.java:179)
         at oracle.jbo.server.IteratorStateHolder.getCurrentRowKey(IteratorStateHolder.java:34)
         at oracle.jbo.server.ViewRowSetIteratorImpl.activateIteratorState(ViewRowSetIteratorImpl.java:3877)
    I've been trying various workarounds for over a day now with no luck. Very frustrating.
    Thanks for trying to help.
    -Ed

  • Get bind variables of a dynamic view object

    I seem unable to retrieve the bind variables for a dynamically created view object, even though I can do the same thing for a regular view object.
    Here is the code:
    newVO = repServ.createViewObjectFromQueryStmt("newQry",strSql);
    VariableValueManager vvm = newVO.ensureVariableManager();
    if (vvm != null)
    Variable vars[] = vvm.getVariables();
    vars will be empty, even though the sql statement in strSql has bind variables in it.
    Is there any way to determine the bind variables of a dynamic view object?
    Thanks!

    I got the same problem as yours and still could not find any way out.
    However, as I can see, you wanted to get VariableValueManager of newly created ViewObject that may be not available at this moment.
    If you find way to solve the problem, please help.
    Cheer,
    MinhTran

  • Paging issues using a dynamic view object...

    I am working on an application that uses JAG to generate JSP pages, i had the requirement to use dynamic view objects where the view object query is generated at runtime. The rest of the application is more or less the same... I used the defult functionality provided by TableScrollButtons.jsp file for paging. Now the problem im facing is that while the '>' and '<' buttons are working fine, i cant seem to navigate to the pages using the drop down...
    With the default handler, whenever i select the range the range displayed remains the same ie 1-10, 10 being the rangesize, but the rows are refreshed with values from the next page. Also, if the next page is the last and is incomplete, then the rows are pushed in from the bottom, so that the last page is always full...I tried the tuning panel in the view object edit dialogue and all settings are fine (i think)...could anyone please tell me what i am doing wrong??

    could it be because i am using a dynamic view object with dynamic bindings? i am using the preparemodel() method in the action as follows...
    protected void prepareModel(DataActionContext ctx) throws Exception {
    inferRangeBindingIfUnset(ctx);
    ctx.getBindingContainer().setEnableTokenValidation(false);
    String sql = ctx.getHttpServletRequest().getParameter("sql");
    String cost=ctx.getHttpServletRequest().getParameter("CostCostCent");
    String event=ctx.getHttpServletRequest().getParameter("event");
    if (sql != null && event == null) {
    setupDynamicQueryAndDynamicBindings(ctx,sql.substring(1),cost);
    if (retrieveOnlyCurrentPageFromDatabase()) {
    ViewObject vo = getIterForPaging(ctx).getViewObject();
    if (vo.getAccessMode() != ViewObject.RANGE_PAGING) {
    vo.setAccessMode(ViewObject.RANGE_PAGING);
    // if(event==null)
    super.prepareModel(ctx);
    ctx.getBindingContainer().setEnableTokenValidation(true);
    if (ctx.getEvents() == null || ctx.getEvents().size() ==0) {
    setPage(ctx,1);
    setLastPage(ctx,getIterForPaging(ctx).getRowSetIterator().getEstimatedRangePageCount());
    else if(event.equals("setRangeStart")) {
    setPageFromRequest(ctx);
    }

  • Lov based on a dynamic view object

    Build JDEVADF_11.1.2.0.0_GENERIC_110531.1615.6017
    Hi,
    I have a database table containing a column with the Name of a Table as content.
    I created a dynamic view and overwrite this with a method in Appmodule.
    Then I add to the element in the main view the Lov. I execute the method in JSP page.
    But the SelectOnechoice list is empty!
    Where is the problem? How can I create a Lov based on a dynamic view object?
    Thanks in advance and best regards
    Edited by: NewBB on 12.08.2011 00:53

    Hi Neliel,
    thank you for your reply.
    My problem is not the same. I can also see my dynamic view objects as selectonechoice. I have a table T1 has a column t1c1 (Number),
    another table T2 (dynamic view object) with two columns t2c1 (Number) and t2c2 (varchar2).
    In my application I want to represent the values of t1c1 as selectonechoice with the values of t2c2.
    and that does not work. My list is empty. Any idea???

  • Master-detail with dynamic view object

    How can you create a view link with a view object that is dynamic? I have created a master-detail relationship on a UIX page. I change the master view object at runtime using a view definition and SQL and then I bind the view object to an iterator on a UIX page. I need the new dynamic view object to maintain the link between the detail view object. Is this possible?
    The reason why I have to change the view object at runtime is because I am implementing a search module and the tables in the from clause can be modified at runtime so I need to have a dynamic view object.
    Thanks,
    Sanjay

    After playing around with ViewObjectImpl's setQuery() method some more I found out that this solution might not work for me due to the following reason: when the user tries to sort a column in the result table, the original contents of the view object get executed instead of the run time query.
    <p>
    I would like to go back to my original solution that included creating a view definition based on the runtime query and then creating a view object from that which I bind to the RowSetIterator. The missing piece to the master-detail functionality is with the detail Iterator being in sync with the master. I have tried the following but I get a ClassCastException <p>
    DCIteratorBinding detailBinding = ctx.getBindingContainer().findIteratorBinding("DetailIterator");
    detailBinding.getViewObject().<b>setMasterRowSetIterator</b>(masterBinding.getRowSetIterator());
    <p>
    here is the relevant stack trace:
    java.lang.ClassCastException
    at oracle.jbo.client.remote.ViewUsageImpl.getImplObject(ViewUsageImpl.java:1829)
    at oracle.jbo.client.remote.RowSetImpl.setMasterRowSetIterator(RowSetImpl.java:512)
    at oracle.jbo.client.remote.ViewUsageImpl.setMasterRowSetIterator(ViewUsageImpl.java:1147)
    at oracle.jbo.common.ws.WSViewObjectImpl.setMasterRowSetIterator(WSViewObjectImpl.java:1005)

  • Error in using Dynamic View Object

    Hi
    I am doing a experiment to create dynamic VO and using it.
    Experiment details:
    I want to create dynamic VO and dynamic message choice and associate the dynamic VO to dynamicaly cretaed message choice.
    code scriplet
    In AM
    public void dynamicVO()
    OADBTransactionImpl txn =(OADBTransactionImpl) this.getTransaction();
    OAViewDef viewDef = txn.createViewDef();
    // viewDef.addEntityDerivedAttrDef();
    viewDef.setSql("select EmpEO.EMPNO, EmpEO.ENAME, EmpEO.JOB, EmpEO.DEPTNO from EMP EmpEO");
    viewDef.setExpertMode(true);
    viewDef.addEntityUsage("EmpEO","va.oracle.apps.fnd.experiment.server.EmpEO",false);
    viewDef.setViewObjectClass("oracle.apps.fnd.framework.server.OAViewObjectImpl");
    viewDef.setViewRowClass("oracle.apps.fnd.framework.server.OAViewRowImpl");
    viewDef.addPersistentAttrDef("Empno", "EmpEO", "Empno", true, AttributeDef.UPDATEABLE);
    viewDef.addPersistentAttrDef("Ename", "EmpEO", "Ename", true, AttributeDef.UPDATEABLE);
    viewDef.addPersistentAttrDef("Job", "EmpEO", "Job", true, AttributeDef.UPDATEABLE);
    viewDef.addPersistentAttrDef("Deptno", "EmpEO", "Deptno", true, AttributeDef.UPDATEABLE);
    // OAViewObject
    // ViewObject
    ViewObject vo = createViewObject("MyEmpVO", viewDef);
    In Controller
    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processRequest(pageContext, webBean);
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    am.invokeMethod("dynamicVO");
    System.out.println("am.invokeMethod dynamicVO");
    OAMessageChoiceBean popList = (OAMessageChoiceBean)this.createWebBean(pageContext,OAMessageChoiceBean.MESSAGE_CHOICE_BEAN);
    //popList.setListViewObject(pageContext,MyEmpVO);
    popList.setPickListViewUsageName("MyEmpVO");
    popList.setListDisplayAttribute("Job");
    popList.setListValueAttribute("Job");
    webBean.addIndexedChild(popList);// when i comment out this a blank page runs otherwise following error appears
    Error stack
    oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: select EmpEO.EMPNO, EmpEO.ENAME, EmpEO.JOB, EmpEO.DEPTNO from EMP EmpEO
    at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:888)
    at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1145)
    at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2898)
    at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2700)
    at OA.jspService(OA.jsp:48)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
    at java.lang.Thread.run(Thread.java:534)
    ## Detail 0 ##
    java.sql.SQLException: ORA-01003: no statement parsed
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1983)
    at oracle.jdbc.ttc7.TTC7Protocol.executeFetch(TTC7Protocol.java:1002)
    at oracle.jdbc.dbaccess.DBAccess.executeFetchNeedDefines(DBAccess.java:283)
    at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2604)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2854)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:622)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:550)
    at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:627)
    at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:515)
    at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3347)
    at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:825)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4465)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
    at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
    at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3311)
    at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3298)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:439)
    at oracle.apps.fnd.framework.webui.OAWebBeanPickListHelper.createListDataObject(OAWebBeanPickListHelper.java:973)
    at oracle.apps.fnd.framework.webui.OAWebBeanPickListHelper.getListDataObject(OAWebBeanPickListHelper.java:818)
    at oracle.apps.fnd.framework.webui.OAWebBeanPickListHelper.getList(OAWebBeanPickListHelper.java:446)
    at oracle.apps.fnd.framework.webui.OAWebBeanPickListHelper.getList(OAWebBeanPickListHelper.java:403)
    at oracle.apps.fnd.framework.webui.beans.message.OAMessageChoiceBean.getList(OAMessageChoiceBean.java:762)
    at oracle.apps.fnd.framework.webui.OADataBoundValuePickListData.getValue(OADataBoundValuePickListData.java:86)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.getAttributeValueImpl(OAWebBeanHelper.java:1760)
    at oracle.apps.fnd.framework.webui.beans.message.OAMessageChoiceBean.getAttributeValueImpl(OAMessageChoiceBean.java:369)
    at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
    at oracle.apps.fnd.framework.webui.OADataBoundValuePickListSelectionIndex.getValue(OADataBoundValuePickListSelectionIndex.java:61)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.getAttributeValueImpl(OAWebBeanHelper.java:1760)
    at oracle.apps.fnd.framework.webui.beans.message.OAMessageChoiceBean.getAttributeValueImpl(OAMessageChoiceBean.java:369)
    at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
    at oracle.cabo.ui.collection.UINodeAttributeMap.getAttribute(Unknown Source)
    at oracle.cabo.ui.collection.AttributeMapProxy.getAttribute(Unknown Source)
    at oracle.cabo.ui.BaseUINode.getAttributeValueImpl(Unknown Source)
    at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
    at oracle.cabo.ui.collection.UINodeAttributeMap.getAttribute(Unknown Source)
    at oracle.cabo.ui.BaseUINode.getAttributeValueImpl(Unknown Source)
    at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
    at oracle.cabo.ui.laf.base.BaseLafUtils.getLocalAttribute(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.OptionContainerRenderer.getSelectedIndex(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.OptionContainerRenderer.populateOptionInfo(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.OptionContainerRenderer.createOptionInfo(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.OptionContainerRenderer.prerender(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.ChoiceRenderer.prerender(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.FormElementRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderNamedChild(Unknown Source)
    at oracle.cabo.ui.laf.base.SwitcherRenderer._renderCase(Unknown Source)
    at oracle.cabo.ui.laf.base.SwitcherRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.RowLayoutRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.InlineMessageRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.laf.oracle.desktop.HeaderRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer.renderIndexedChildren(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.oracle.desktop.PageLayoutRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.BodyRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.apps.fnd.framework.webui.beans.OABodyBean.render(OABodyBean.java:398)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.partial.PartialPageUtils.renderPartialPage(Unknown Source)
    at oracle.apps.fnd.framework.webui.OAPageBean.render(OAPageBean.java:3209)
    at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2888)
    at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2700)
    at OA.jspService(OA.jsp:48)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
    at java.lang.Thread.run(Thread.java:534)
    java.sql.SQLException: ORA-01003: no statement parsed
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1983)
    at oracle.jdbc.ttc7.TTC7Protocol.executeFetch(TTC7Protocol.java:1002)
    at oracle.jdbc.dbaccess.DBAccess.executeFetchNeedDefines(DBAccess.java:283)
    at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2604)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2854)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:622)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:550)
    at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:627)
    at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:515)
    at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3347)
    at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:825)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4465)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
    at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
    at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3311)
    at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3298)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:439)
    at oracle.apps.fnd.framework.webui.OAWebBeanPickListHelper.createListDataObject(OAWebBeanPickListHelper.java:973)
    at oracle.apps.fnd.framework.webui.OAWebBeanPickListHelper.getListDataObject(OAWebBeanPickListHelper.java:818)
    at oracle.apps.fnd.framework.webui.OAWebBeanPickListHelper.getList(OAWebBeanPickListHelper.java:446)
    at oracle.apps.fnd.framework.webui.OAWebBeanPickListHelper.getList(OAWebBeanPickListHelper.java:403)
    at oracle.apps.fnd.framework.webui.beans.message.OAMessageChoiceBean.getList(OAMessageChoiceBean.java:762)
    at oracle.apps.fnd.framework.webui.OADataBoundValuePickListData.getValue(OADataBoundValuePickListData.java:86)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.getAttributeValueImpl(OAWebBeanHelper.java:1760)
    at oracle.apps.fnd.framework.webui.beans.message.OAMessageChoiceBean.getAttributeValueImpl(OAMessageChoiceBean.java:369)
    at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
    at oracle.apps.fnd.framework.webui.OADataBoundValuePickListSelectionIndex.getValue(OADataBoundValuePickListSelectionIndex.java:61)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.getAttributeValueImpl(OAWebBeanHelper.java:1760)
    at oracle.apps.fnd.framework.webui.beans.message.OAMessageChoiceBean.getAttributeValueImpl(OAMessageChoiceBean.java:369)
    at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
    at oracle.cabo.ui.collection.UINodeAttributeMap.getAttribute(Unknown Source)
    at oracle.cabo.ui.collection.AttributeMapProxy.getAttribute(Unknown Source)
    at oracle.cabo.ui.BaseUINode.getAttributeValueImpl(Unknown Source)
    at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
    at oracle.cabo.ui.collection.UINodeAttributeMap.getAttribute(Unknown Source)
    at oracle.cabo.ui.BaseUINode.getAttributeValueImpl(Unknown Source)
    at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
    at oracle.cabo.ui.laf.base.BaseLafUtils.getLocalAttribute(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.OptionContainerRenderer.getSelectedIndex(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.OptionContainerRenderer.populateOptionInfo(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.OptionContainerRenderer.createOptionInfo(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.OptionContainerRenderer.prerender(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.ChoiceRenderer.prerender(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.FormElementRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderNamedChild(Unknown Source)
    at oracle.cabo.ui.laf.base.SwitcherRenderer._renderCase(Unknown Source)
    at oracle.cabo.ui.laf.base.SwitcherRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.RowLayoutRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.InlineMessageRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.laf.oracle.desktop.HeaderRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer.renderIndexedChildren(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.oracle.desktop.PageLayoutRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.BodyRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.apps.fnd.framework.webui.beans.OABodyBean.render(OABodyBean.java:398)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.renderContent(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.partial.PartialPageUtils.renderPartialPage(Unknown Source)
    at oracle.apps.fnd.framework.webui.OAPageBean.render(OAPageBean.java:3209)
    at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2888)
    at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2700)
    at OA.jspService(OA.jsp:48)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
    at java.lang.Thread.run(Thread.java:534)
    Mithun

    Mithun,
    Don't repost the issues. Follow the original on Re: Error in using Dynamic view object
    --Shiv                                                                                                                                                                                                                                                                                       

  • Dynamic Internal Table creation and population

    Hi gurus !
    my issue refers to the slide 10 provided in this slideshow : https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b332e090-0201-0010-bdbd-b735e96fe0ae
    My example is gonna sound dumb, but anyway: I want to dynamically select from a table into a dynamically created itab.
    Letu2019s use only EKPO, and only field MENGE.
    For this, I use Classes cl_abap_elemdescr, cl_sql_result_set and the Data Ref for table creation. But while fetching the resultset, program dumps when fields like MENGE, WRBTR are accessed. Obviously their type are not correctly taken into account by my program.
    Here it comes:
    DATA: element_ref             TYPE REF TO cl_abap_elemdescr,
          vl_fieldname               TYPE string,
                 tl_components         TYPE abap_component_tab,
                 sl_components         LIKE LINE OF tl_components_alv,
    linetype_lcl               TYPE REF TO cl_abap_structdescr,
    ty_table_type            TYPE REF TO cl_abap_tabledescr,
    g_resultset             TYPE REF TO cl_sql_result_set
    u2026
    CONCATENATE sg_columns-table_name '-' sg_columns-column_name INTO vl_fieldname.
    * sg_columns-table_name contains 'EKPO'
    * sg_columns-column_name contains 'MENGE'
    * getting the element as a component
    element_ref ?= cl_abap_elemdescr=>describe_by_name( vl_fieldname ).
    sl_components-name  = sg_columns-column_name.
    sl_components-type ?= element_ref.
    APPEND sl_components TO tl_components.
    * dynamic creation of internal table
    linetype_lcl = cl_abap_structdescr=>create( tl_components ).
    ty_table_type = cl_abap_tabledescr=>create(
                      p_line_type = linetype_lcl ).
    u2026
    * Then I will create my field symbol table and line. Code has been cut here.
    CREATE DATA dy_line LIKE LINE OF <dyn_table>.
    u2026
    * Then I will execute my query. Here itu2019s: Select MENGE From EKPO Where Rownum = 1.
      g_resultset = g_stmt_ref->execute_query( stmt_str ).
    * Then structure for the Resultset is set
      CALL METHOD g_resultset->set_param_struct
        EXPORTING
          struct_ref = dy_line.
    * Fetching the lines of the resultset  => Dumpu2026
      WHILE g_resultset->next( ) > 0.
        ASSIGN dy_line->* TO <dyn_wa>.
        APPEND <dyn_wa> TO <dyn_table>.
      ENDWHILE.
    Anyone has any clue to how prevent my Dump ??
    The component for MENGE seems to be described as a P7 with 2 decimals. And the resultset wanna use a QUAN type... or something like that !

    Hello
    I have expanded your sample coding for selecting three fields out of EKPO:
    *& Report  ZUS_SDN_SQL_RESULT_SET
    *& Thread: Dynamic Internal Table creation and population
    *& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1375510"></a>
    *& NOTE: Coding for dynamic structure / itab creation taken from:
    *& Creating Flat and Complex Internal Tables Dynamically using RTTI
    *& https://wiki.sdn.sap.com/wiki/display/Snippets/Creating+Flat+and+
    *& Complex+Internal+Tables+Dynamically+using+RTTI
    REPORT  zus_sdn_sql_result_set.
    TYPE-POOLS: abap.
    DATA:
    go_sql_stmt       TYPE REF TO cl_sql_statement,
    go_resultset      TYPE REF TO cl_sql_result_set,
    gd_sql_clause     TYPE string.
    DATA:
      gd_tabfield      TYPE string,
      go_table         TYPE REF TO cl_salv_table,
      go_sdescr_new    TYPE REF TO cl_abap_structdescr,
      go_tdescr        TYPE REF TO cl_abap_tabledescr,
      gdo_handle       TYPE REF TO data,
      gdo_record       TYPE REF TO data,
      gs_comp          TYPE abap_componentdescr,
      gt_components    TYPE abap_component_tab.
    FIELD-SYMBOLS:
      <gs_record>   TYPE ANY,
      <gt_itab>     TYPE STANDARD TABLE.
    START-OF-SELECTION.
    continued.

  • Validation at View Object level and not Enity Object

    How would you create validation logic at the view object level and not at the entity object level? I have many VOs that reference the same EO and want some validation logic to be applied only to certain VOs.
    Thanks,
    Quoc

    My use case for this is to perform form validation inputted by the user via a JSPX page.

  • View Objects , whereclauseparam and PERFORMANCE in JSP

    We experience that using the method setWhereClauseParam gives VERY BAD performance in our JSP applications.
    According to JDev team and others, "best practice" is to use setWhereClauseParam(s), so we wonder why the performance degrade significantly compared to a simpler approach (=define the whereclause when the datasource is created). To avoid the shared pool to grow we were tempted to use the recommended best-practice-parameter-binding approach, but due to performance we had to drop that idea.
    Our JSP (pseudo) code look like this:
    <jbo:ApplicationModule id="am" .......
    <jbo:DataSource id="ds" appid="am" viewobject="ourView" rangesize="0"/>
    <%
    ViewObject ourVo= ds.getApplicationModule().FindViewObject("ourView");
    ourVo.setWhereClauseParam(0, 'xxx');
    ourVo.setWhereClauseParam(1, 'yyy');
    %>
    <jbo:RowsetIterate datasource="ds" >
    bla bla bla ..
    </jbo:RowsetIterate>
    THIS IS SLOW !! ..... compared to:
    <jbo:ApplicationModule id="am" .......
    <% String clause = "Col1 = 'xxx' and Col2 = 'yyy' %>
    <jbo:DataSource id="ds" appid="am" whereclause='<%= clause %>' viewobject="LabelHeadersView" rangesize="0"/>
    <jbo:RowsetIterate datasource="ds" >
    bla bla bla ..
    </jbo:RowsetIterate>
    We get the same results but the last method is times 100 faster ??
    Any ideas are appreciated .
    Thanks, Jens

    OK. I believe I now know what the culprit it. It is your use of the where clause fragment:
    (pdk_files_id = ? OR ? IS NULL)
    Here's how I arrived at this (while at the same time ruling BC4J out of the picture as a potential cause of the problem).
    I following the steps below:
    [list]
    [*]Connected as SCOTT in SQLPlus, I create the table:
    CREATE TABLE files( pdk_files_id NUMBER PRIMARY KEY, name VARCHAR2(20));
    [*]I insert one row into the new files table:
    INSERT INTO files values (1111, 'SteveTest');
    COMMIT;
    [*]I connect as SYSTEM, an run the script ORACLE_HOME/sqlplus/admin/plustrce.sql to create the SQL*Plus PLUSTRACE role so that SCOTT will be able to use the SQLPlus AutoTrace feature
    [*]As SYSTEM still, I ran the command: GRANT PLUSTRACE TO SCOTT
    This gives SCOTT the privilege to use the SQL*Plus autotrace command
    [*]I connect as SCOTT, and run the script ORACLE_HOME/rdbms/admin/utlxplan.sql
    this created the plan table in my SCOTT schema needed to run the autotrace feature
    [*]In SQLPLUS, still connected as SCOTT I issue the command:
    SET AUTOTRACE ON EXPLAIN
    [*]Then I do the following to create a SQL*Plus bind variable
    VAR v VARCHAR2(20)
    [*]And then do the following to set its value at the SQL*Plus command prompt:
    EXEC :v := '1111';
    [list]
    Finally, I try some different queries and look at the autotrace output:
    SQL> select * from files where pdk_files_id = 1111
      2  /
    PDK_FILES_ID NAME
            1111 SteveTest
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE
       1    0   TABLE ACCESS (BY INDEX ROWID) OF 'FILES'
       2    1     INDEX (UNIQUE SCAN) OF 'SYS_C003006' (UNIQUE).
    This shows that using the literal value 1111 uses the index.
    SQL> select * from files where (pdk_files_id = 1111 or 1111 is null)
      2  /
    PDK_FILES_ID NAME
            1111 SteveTest
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE
       1    0   TABLE ACCESS (BY INDEX ROWID) OF 'FILES'
       2    1     INDEX (UNIQUE SCAN) OF 'SYS_C003006' (UNIQUE).
    This shows that using the literal values together with the OR clause, still uses the index.
    SQL> select * from files where (pdk_files_id = :v)
      2  /
    PDK_FILES_ID NAME
            1111 SteveTest
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE
       1    0   TABLE ACCESS (BY INDEX ROWID) OF 'FILES'
       2    1     INDEX (UNIQUE SCAN) OF 'SYS_C003006' (UNIQUE).
    Using my ":v" bind variable I defined, it uses the index, too, even though the type of the bind variable is VARCHAR2 and the type of the PDK_FILES_ID column is NUMBER. This is because this is a simple enough case for the database to do automatic type coersion to convert my string value '1111' for the bind variable into the number value 1111 and then use that for the index lookup.
    HOWEVER, when I try the case that simulates what you are doing in BC4J, which is using a bind variable together with the OR clause for the NULL test, we see...
    SQL> select * from files where (pdk_files_id = :v OR :v IS NULL)
      2  /
    PDK_FILES_ID NAME
            1111 SteveTest
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE
       1    0   TABLE ACCESS (FULL) OF 'FILES'.
    So in this case, the database DOES NOT use the index, and hence explains why your query is slow.
    I believe the database works this way because when it hard-parses the SQL statement, it is at this time that it determines the query plan for the SQL statement. The plan needs to remain stable since the same plan will be cached and reused for all uses of the same parsed SQL statement, so the plan cannot be conditional based on the values of the bind variables. Since it cannot decide without knowing the value of the bind variable, it apparently disqualifies your index from being used.
    Even introducing an optimizer hint only improves the problem a little. I tried this example:
    SQL> select /*+INDEX (files sys_c003006)*/ *
      2  from files where (pdk_files_id = :v or :v IS NULL)
      3  /
    PDK_FILES_ID NAME
            1111 SteveTest
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=826 Card=5 Bytes=125)
       1    0   TABLE ACCESS (BY INDEX ROWID) OF 'FILES' (Cost=826 Card=5 Bytes=125)
       2    1     INDEX (FULL SCAN) OF 'SYS_C003006' (UNIQUE) (Cost=26 Card=82).
    In this case it still has to fully scan the index where above it was able to do a unique scan.
    MORAL OF THE STORY:The tiny cost of having two different View Objects in your application, one to use when you want to find by PDK_FILES_ID, and one to use when you want to find by your other key criteria, is well worth the performance improvement that can be had by using bind variables and using them in a way that the database will use the index.
    As Tom Kyte says in his excellent book Expert One on One: Oracle in a passage that made me laugh:
    "If I were going to write a book about building Oracle applications that do not scale, "Don't Use Bind Variables" would be the first and last chapter." :-)
    So, by using a few design-time-created view objects that uses bind variables and avoid the use of the (COL = ? OR ? IS NULL) construct, you get the following benefits:
    [list]
    [*]The database doesn't have to hard-parse your SQL statement each time you execute it (which it does if you keep sending queries that have literal values in the SQL statement, making each query different as far as the SGA is concerned)
    [*]The indexes will get used correctly as we saw above
    [*]Your code actually might be clearer, since you can name one of your view objects "FindFileById" and the other one "FindFileByName", or what have you
    [list]
    Hope this helps.

Maybe you are looking for

  • How to print Integrity sql in the preparedstatement?

    How to print Integrity sql in the preparedstatement? Connection conn = null; String sql = "select * from person where name=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setObject(1, "robin"); ps.executeQuery(); i'm wants print Integrity s

  • SQL Developer create wrong SQL for creation of Database link

    Hi, I tried to create Database link to another machine through SQL Developer. and I got error message saying "Sql not properly ended" or similar. I copy-paste the sql to sqlplus shell and I found that the problem came from password part of database l

  • How do create a multi select that is one directional in a jsp page

    i am trying to create a one directional multi select in jsp that is when select the option from the multi- select the first time is not appear again that is for instance if i have a status option of NEW Fix Closed they should come from the database f

  • My notebook whenever starts it opens recovery manager to recover system daily.

    sir/madam whenever i start my pavilion g4 1200tx windows 7 home basic 64 bit ,system startup repair starts to repair  my system but it fails to repair it and opens recovery manager to recover my system daily.so tell me what i can do.????

  • Error in web dynpro connections

    Hi, I Create and run a simple Web Dynpro application in that i didn't connect   my  app.server when i click on f8 and i provide login details also. after given login details error code is my err is Error code: ICF-IE-http -c: 200 -u: CLLABAP -l: E -s