ADF table large number of records

JDeveloper 12.1.2

I have an engine of research as well as an array of result. In some research, it is possible that the result set is more than a million records. The problem is when the user uses the table scroll bar and quickly tries to go at the end of the result set, weblogic with error, memory, it blocks. What is the best practice to handle this in the user interface?

I think of several ways to resolve and would like if anyone has experience with one of the following:

1. when the user performs the search, run select count (*), and determine the number of records search will return. If say greater then 1000, warn the user to refine the search criteria. This seems to have made an extra trip to DB

2. implementation of the pagination of the table instead of the scroll bar. Is this possible in the last ADF table?

3. go to the front and back only to say 1,000 records and warn the user that not all records are returned, and that it would be best to refine the criteria. Similar to 1, except no extra trip to DB

Thanks in advance for comments and maybe the solution

Insufficient memory is caused by the underlying ViewObject that retrieves and keeps track of all the lines to the position where the user scrolls to the bottom of the table. It is behavior of the VO when the VO is configured with the access mode "Scrollable", which is the default access mode setting. For example, if the user scrolls to the No.100000 line, the VO to get and keep in mind all the lines n ° 1 to No.100000. This means that the table pagination will NOT help you!

Fortunately, you have two simple options out-of-the-box:

  1. The 1st option is to configure the original Version of extraction does not exceed a fixed number of lines (for example 5000). You can do it in the "General" of the VO definition dialog page. Go to the 'Tuning' section, select the option "only up to line number" and enter the number chosen in the field of text next to it. In this way, what the condition is entered by the user, the VO will seek no more than the specified line number.
  2. The 2nd option is to configure the VO with "Range Paging" access mode rather than the default access mode "Scrollable". With the access mode "Range Paging" the VO not go get and keep in mind all the lines until the currently selected line, but he keeps in memory a few line ranges (for example only a few dozen lines). This way you will not be affected by an OutOfMemory error even if the user scroll down to a millionth line. The downside is that when it is configured with "Range Paging" the VO will have to rerun the query each time when he needs to pick a different range of lines. If the execution of the query is slow to the DB server, this will load the DB server and the user will experience delays when scrolling in a different range of lines.
    Take a look at the documentation for more details here: View object performance tuning (read article 9.1.5).

Dimitar

Post edited by: Dimitar Dimitrov

If you decide to use "Range Paging", don't forget to set the appropriate size, which is not less than the usual number of visible lines in your table on the page. If you set the size of the lower range, then the original Version will have to fetch more than a range of lines, which will need more of a running query. The size of default in the definition of VO is 1, but it is not important. The important value is the size of the range that is defined in the iterator binding in the PageDef, which overrides the setting of the VO. The default value for the size of the links of the iterator range is 25.

Tags: Java

Similar Questions

  • Table - Incorrect number of records

    Hello

    I have created an opaque view in RPD containing a select statement. I've updated the number of lines and 40823 records. When I create a table in the answers, only 695 records are returned.

    Can anyone help?

    Thank you

    Yes, if person_id performs each record of your separate opaque view and then use it in opaque mode and to report also.

    Then he will get the correct results.

    Kind regards
    Sandeep

  • What is the best way to display a large number of records?

    I have about 12000 registry to commit to dababase.
    What is the best way to do it?

    Which depends on?

    Today I can't commit so many registry... The dabatase seems hanged!

    Thanks in advance

    Xavi says:

    Today I can't commit so many registry

    It should be possible to insert tens of thousands of lines in a few seconds using an insert even with a complex query as the view object and validation at the end.

    SQL> create table t as select * from all_objects where 0 = 1;
    
    Table created.
    
    Elapsed: 00:00:00.03
    SQL> insert into t select * from all_objects;
    
    32151 rows created.
    
    Elapsed: 00:00:09.01
    SQL> commit;
    
    Commit complete.
    
    Elapsed: 00:00:00.00
    

    I meant RECORDS instead of REGISTERS.

    Maybe that's where you're going wrong, records are to put on the turntables.

  • CRUD for tables with large number of columns

    Hello

    I work for a government agency in Colombia, and we do a poll with about 1200 variables. Our database model has few paintings, but they have a large number of columns. Our Oracle 11 g database is, and we do not use Oracle APEX. I've read about APEX and it seems to be useful to generate quick forms and reports. However, I would like to know if it is possible to generate CRUD for tables with many columns, and that would be the best way to do it.

    Thanks in advance.

    Carlos.

    With the help of 250 point on a single page is actually really bad for the user experience. I would probably be it cut into pieces and using several pages to guide the customer through it as a workflow.

    You could also add some pop-up windows which includes some elements of your table, just saved on other pages. But I probably don't like that.

    Tobias

  • How can I recover only odd or even number of records in the table?

    Hello

    How can I recover only odd or even number of records in the table?

    Thank you

    Hi IndiMinds,

    Alternatively, you can use in queries. :

    Odd:

    SELECT *.

    Of

    (SELECT rownum row_count, id, name FROM bigemp

    )

    WHERE mod (row_count, 2) = 1;

    Still:

    SELECT *.

    Of

    (SELECT rownum row_count, id, name FROM bigemp

    )

    WHERE mod (row_count, 2) = 0;

    Thank you

  • Can I get the total number of records that meet the conditions of a query using the Table API?

    Hello

    A < row > TableIterator is returned when I ask operations using the index of tables. If I want to get the total number of records, I count one by one using the returned TableIterator < row >.


    Can I get the total number of records directly meets the conditions of the query?

    I can get the total number of records directly the request of the meeting of the conditions of CLI using the command Global table - name tableName - count - index index-name-field fieldName - start startValue-end endValue.

    Can I get the same results using the Table API?

    I used MongoDB and NoSQL Oracle for about a year. According to the experience of the use of these dbs, I think mongoDB querying interface is powerful. In the contras, the query interface is relatively simple, which results is a lot of work that is usually a long time in the client side.

    Hello

    Counting records in a database is a tricky thing.  Any system that gives you an accurate count of the records will have a hotspot of concurrency on updates, namely the place where the counting is maintained.  Such a count is a problem of performance in addition to competitive access problem.   The problem is even more difficult in a system widely distributed such a NoSQL database.

    The CLI has overall command that counts, but does so by brutal force - iterate keys that correspond to the parameters of the operation.  This is how you must do this within the API.  There is not a lot of code, but you have to write.  You certainly want to use TableIterator TableAPI.tableKeysIterator (), because a key iteration is significantly faster than the iteration of lines.  Just one iteration and count.

    If you use TableAPI.multiGet () and a key with a touch of brightness full then, in fact, count the results as they are returned in a single piece (a list).

    Kind regards

    George

  • difference in number of records in the table of audit

    Hi all

    We strive to remove lines of verification based on timestamp(sysdate-30) table(sys.aud$). The command I used below.

    SQL > set lines 200

    COL OWNER FORMAT A15

    Select TABLE_NAME, nom_tablespace, OWNER, num_rows, STATUS, DEGREE, TABLE_LOCK, LAST_ANALYZED, PARTITIONED, USER_STATS from dba_tables where TABLE_NAME = '& TABLE_NAME';

    SQL > SQL > type table_name value: AUD$

    OWNER, TABLE_NAME, NUM_ROWS STATUS DEGREE TABLE_LO LAST_ANALY BY USING NOM_TABLESPACE

    --------------- ------------------------------ ------------------------------ ---------- -------- ---------- -------- ---------- --- ---

    SYS AUD$ 934991 SYSTEM VALID ACTIVE 1 08/07/2012 No. No.

    SQL > delete / * + parallel (aud$ 8) * / of sys.aud$ where NTIMESTAMP # < sysdate-30; (I don't know why I put NTIMESTAMP #, although I see # aud TIMESTAMP column $ table, the above query, I got from sr dba)

    3140994 deleted rows. (reason why so many records have been deleted I see 934991 lines from dba_tables view)


    After that I saw the difference in number of records.


    SQL > select / * + parallel (aud$ 8) * / count (*) from sys.aud$ where TIMESTAMP # < sysdate-30;

    COUNT (*)

    ----------

    0

    SQL > select / * + parallel (aud$ 8) * / count (*) from sys.aud$ where NTIMESTAMP # < sysdate-30; -> Why there are differences in the number of records if I put NTIMESTAMP #in query)


    COUNT (*)

    ----------

    50

    Thank you

    Bhavani.

    SQL > SELECT count (*) from sys.aud$ where ntimestamp #.<>

    COUNT (*)
    ----------
    0

    Try this one.  Good luck.

  • ADF table with more lines not able to create new record

    Hi I have situation where I adf table 13 lines that is able to create new records and I have the table who got about 3000 documents, but I have to refresh the page after I click the createinsert button in order to have an empty space to enter new record am jdeveloper 11.1.1.7.0 using IE and firefox

    JSFF page creating record

    <? XML version = "1.0" encoding = "UTF - 8"? >

    " < = xmlns:jsp jsp:root ' http://Java.Sun.com/JSP/page "version ="2.1" "

    ' xmlns:af = ' http://xmlns.Oracle.com/ADF/faces/rich "" "

    ' xmlns:f = ' http://Java.Sun.com/JSF/core ">

    < af:panelHeader text = 'maintain Provience"id ="ph1 ".

    inlineStyle = ' height: 844px; ">

    < f: facet = 'context' name / >

    < name f: facet = 'bar menu' / >

    < name f: facet = "toolbar" / >

    < f: facet = name "legend" / >

    < f: facet = 'info' name / >

    < af:panelCollection id = "pc1" inlineStyle = "width: 1033px;" height: 790px; ">

    < f: facet = 'menus' name / >

    < f: facet name = "toolbar" >

    < af:toolbar id = "t2" >

    < af:commandButton actionListener = "#{bindings." CreateInsert.execute}.

    Text = "CreateInsert."

    ID = "cb1" / >

    < af:commandButton actionListener = "#{bindings.Commit.execute} '"

    Text = "Register" id = "cb2" / >

    < af:quickQuery label = 'Search' searchDesc = 'Search' id = 'qryId1 '.

    value = "#{bindings." ImplicitViewCriteriaQuery.quickQueryDescriptor}.

    model = ' #{bindings. " ImplicitViewCriteriaQuery.queryModel}.

    queryListener = ' #{bindings. " ImplicitViewCriteriaQuery.processQuery} ">"

    < f: facet = 'end' name >

    < af:commandLink text = "Advanced" rendered = "true" id = "cl1" / >

    < / f: facet >

    < / af:quickQuery >

    < / af:toolbar >

    < / f: facet >

    < name f: facet = 'bar of Θtat' / >

    < af:table value = "#{bindings." Var ProvinceView1.collectionModel}"="row ".

    lines = ' #{bindings. " ProvinceView1.rangeSize}.

    emptyText = "#{bindings." ProvinceView1.viewable? "{'No data to display.': 'Access Denied.'}".

    fetchSize = "#{bindings." ProvinceView1.rangeSize}.

    rowBandingInterval = '0 '.

    selectedRowKeys = ' #{bindings. " ProvinceView1.collectionModel.selectedRow}.

    selectionListener = "#{bindings." ProvinceView1.collectionModel.makeCurrent}.

    "rowSelection ="single"id ="t1"partialTriggers =": cb1: qryId1.

    columnStretching = 'last' immediate = "false" >

    < af:column sortProperty = "#{bindings." ProvinceView1.hints.ProvinceCode.name}.

    sortable = "true".

    headerText = "#{bindings." ProvinceView1.hints.ProvinceCode.label}.

    ID = "c1" >

    < af:inputText value = "#{row.bindings.ProvinceCode.inputValue} '"

    label = "#{bindings." ProvinceView1.hints.ProvinceCode.label}.

    required = "#{bindings." ProvinceView1.hints.ProvinceCode.mandatory}.

    columns = "#{bindings." ProvinceView1.hints.ProvinceCode.displayWidth}.

    maximumLength = "#{bindings." ProvinceView1.hints.ProvinceCode.precision}.

    shortDesc = "#{bindings." ProvinceView1.hints.ProvinceCode.tooltip}.

    ID = "it2" >

    < f: validator binding="#{row.bindings.ProvinceCode.validator}"/ >

    < af:convertNumber groupingUsed = "false".

    model = ' #{bindings. " ProvinceView1.hints.ProvinceCode.format}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." ProvinceView1.hints.ProvinceName.name}.

    sortable = "true".

    headerText = "#{bindings." ProvinceView1.hints.ProvinceName.label}.

    ID = "c2" >

    < af:inputText value = "#{row.bindings.ProvinceName.inputValue} '"

    label = "#{bindings." ProvinceView1.hints.ProvinceName.label}.

    required = "#{bindings." ProvinceView1.hints.ProvinceName.mandatory}.

    columns = "#{bindings." ProvinceView1.hints.ProvinceName.displayWidth}.

    maximumLength = "#{bindings." ProvinceView1.hints.ProvinceName.precision}.

    shortDesc = "#{bindings." ProvinceView1.hints.ProvinceName.tooltip}.

    ID = "it1" >

    < f: validator binding="#{row.bindings.ProvinceName.validator}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." ProvinceView1.hints.ProvinceDateActive.name}.

    sortable = "true".

    headerText = "#{bindings." ProvinceView1.hints.ProvinceDateActive.label}.

    ID = 'c4' >

    < af:inputDate value = "#{row.bindings.ProvinceDateActive.inputValue} '"

    label = "#{bindings." ProvinceView1.hints.ProvinceDateActive.label}.

    required = "#{bindings." ProvinceView1.hints.ProvinceDateActive.mandatory}.

    shortDesc = "#{bindings." ProvinceView1.hints.ProvinceDateActive.tooltip}.

    ID = "id2" >

    < f: validator binding="#{row.bindings.ProvinceDateActive.validator}"/ >

    < af:convertDateTime pattern = "#{bindings." ProvinceView1.hints.ProvinceDateActive.format}"/ >

    < / af:inputDate >

    < / af:column >

    < af:column sortProperty = "#{bindings." ProvinceView1.hints.ProvinceDateInactive.name}.

    sortable = "true".

    headerText = "#{bindings." ProvinceView1.hints.ProvinceDateInactive.label}.

    ID = 'c3' >

    < af:inputDate value = "#{row.bindings.ProvinceDateInactive.inputValue} '"

    label = "#{bindings." ProvinceView1.hints.ProvinceDateInactive.label}.

    required = "#{bindings." ProvinceView1.hints.ProvinceDateInactive.mandatory}.

    shortDesc = "#{bindings." ProvinceView1.hints.ProvinceDateInactive.tooltip}.

    ID = "id1" >

    < f: validator binding="#{row.bindings.ProvinceDateInactive.validator}"/ >

    < af:convertDateTime pattern = "#{bindings." ProvinceView1.hints.ProvinceDateInactive.format}"/ >

    < / af:inputDate >

    < / af:column >

    < / af:table >

    < / af:panelCollection >

    < / af:panelHeader >

    < / jsp:root >

    JSFF not able to create the record when you click the createinsert button

    <? XML version = "1.0" encoding = "UTF - 8"? >

    " < = xmlns:jsp jsp:root ' http://Java.Sun.com/JSP/page "version ="2.1" "

    ' xmlns:af = ' http://xmlns.Oracle.com/ADF/faces/rich "" "

    ' xmlns:f = ' http://Java.Sun.com/JSF/core ">

    < af:panelStretchLayout id = "PSL1" >

    < f: facet name = "center" >

    < af:panelHeader text = "Manage the Code window" id = "ph1" >

    < f: facet = 'context' name / >

    < name f: facet = 'bar menu' / >

    < name f: facet = "toolbar" / >

    < f: facet = name "legend" / >

    < f: facet = 'info' name / >

    < af:panelCollection id = "pc1" >

    < f: facet = 'menus' name / >

    < f: facet name = "toolbar" >

    < af:toolbar id = "t1" >

    < af:commandButton actionListener = "#{bindings." CreateInsert.execute}.

    Text = "CreateInsert."

    ID = "cb1" partialSubmit = "true" / >

    < af:commandButton actionListener = "#{bindings.Commit.execute} '"

    Text = "Save."

    ID = "cb2" / >

    < af:quickQuery label = 'Search' searchDesc = 'Search' id = 'qryId1 '.

    value = "#{bindings." ImplicitViewCriteriaQuery.quickQueryDescriptor}.

    model = ' #{bindings. " ImplicitViewCriteriaQuery.queryModel}.

    queryListener = ' #{bindings. " ImplicitViewCriteriaQuery.processQuery} ">"

    < f: facet = 'end' name >

    < af:commandLink text = "Advanced" id = "cl1" / >

    < / f: facet >

    < / af:quickQuery >

    < / af:toolbar >

    < / f: facet >

    < name f: facet = 'bar of Θtat' / >

    < af:table value = "#{bindings." Var BranchesView1.collectionModel}"="row ".

    lines = ' #{bindings. " BranchesView1.rangeSize}.

    emptyText = "#{bindings." BranchesView1.viewable? "{'No data to display.': 'Access Denied.'}".

    fetchSize = "#{bindings." BranchesView1.rangeSize}.

    rowBandingInterval = '0 '.

    selectedRowKeys = ' #{bindings. " BranchesView1.collectionModel.selectedRow}.

    selectionListener = "#{bindings." BranchesView1.collectionModel.makeCurrent}.

    rowSelection = "single" id = 't2' columnStretching = 'last '.

    "partialTriggers =": cb1: qryId1 ' immediate = "false".

    columnResizing = "enabled" >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchAd.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchAd.label}.

    ID = "c13" >

    < af:inputText value = "#{row.bindings.BranchAd.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchAd.label}.

    required = "#{bindings." BranchesView1.hints.BranchAd.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchAd.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchAd.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchAd.tooltip}.

    ID = "it11" >

    < f: validator binding="#{row.bindings.BranchAd.validator}"/ >

    < af:convertNumber groupingUsed = "false".

    model = ' #{bindings. " BranchesView1.hints.BranchAd.format}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchCode.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchCode.label}.

    ID = "c8" >

    < af:inputText value = "#{row.bindings.BranchCode.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchCode.label}.

    required = "#{bindings." BranchesView1.hints.BranchCode.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchCode.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchCode.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchCode.tooltip}.

    ID = "it4" >

    < f: validator binding="#{row.bindings.BranchCode.validator}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchName.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchName.label}.

    ID = "c2" >

    < af:inputText value = "#{row.bindings.BranchName.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchName.label}.

    required = "#{bindings." BranchesView1.hints.BranchName.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchName.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchName.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchName.tooltip}.

    ID = "it2" >

    < f: validator binding="#{row.bindings.BranchName.validator}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchAddressLine1.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchAddressLine1.label}.

    ID = "c7" >

    < af:inputText value = "#{row.bindings.BranchAddressLine1.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchAddressLine1.label}.

    required = "#{bindings." BranchesView1.hints.BranchAddressLine1.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchAddressLine1.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchAddressLine1.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchAddressLine1.tooltip}.

    ID = "it6" >

    < f: validator binding="#{row.bindings.BranchAddressLine1.validator}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchAddressLine2.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchAddressLine2.label}.

    ID = 'c3' >

    < af:inputText value = "#{row.bindings.BranchAddressLine2.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchAddressLine2.label}.

    required = "#{bindings." BranchesView1.hints.BranchAddressLine2.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchAddressLine2.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchAddressLine2.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchAddressLine2.tooltip}.

    ID = "it1" >

    < f: validator binding="#{row.bindings.BranchAddressLine2.validator}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchCityCode.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchCityCode.label}.

    ID = 'c12' >

    < af:inputText value = "#{row.bindings.BranchCityCode.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchCityCode.label}.

    required = "#{bindings." BranchesView1.hints.BranchCityCode.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchCityCode.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchCityCode.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchCityCode.tooltip}.

    ID = "it5" >

    < f: validator binding="#{row.bindings.BranchCityCode.validator}"/ >

    < af:convertNumber groupingUsed = "false".

    model = ' #{bindings. " BranchesView1.hints.BranchCityCode.format}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchSuburb.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchSuburb.label}.

    ID = "c9" >

    < af:inputText value = "#{row.bindings.BranchSuburb.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchSuburb.label}.

    required = "#{bindings." BranchesView1.hints.BranchSuburb.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchSuburb.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchSuburb.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchSuburb.tooltip}.

    ID = "9" >

    < f: validator binding="#{row.bindings.BranchSuburb.validator}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchProvinceCode.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchProvinceCode.label}.

    ID = "c11" >

    < af:inputText value = "#{row.bindings.BranchProvinceCode.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchProvinceCode.label}.

    required = "#{bindings." BranchesView1.hints.BranchProvinceCode.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchProvinceCode.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchProvinceCode.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchProvinceCode.tooltip}.

    ID = 'it8' >

    < f: validator binding="#{row.bindings.BranchProvinceCode.validator}"/ >

    < af:convertNumber groupingUsed = "false".

    model = ' #{bindings. " BranchesView1.hints.BranchProvinceCode.format}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchPostalCode.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchPostalCode.label}.

    ID = "c5" >

    < af:inputText value = "#{row.bindings.BranchPostalCode.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchPostalCode.label}.

    required = "#{bindings." BranchesView1.hints.BranchPostalCode.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchPostalCode.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchPostalCode.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchPostalCode.tooltip}.

    ID = "it7" >

    < f: validator binding="#{row.bindings.BranchPostalCode.validator}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchTelephone.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchTelephone.label}.

    ID = "c6" >

    < af:inputText value = "#{row.bindings.BranchTelephone.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchTelephone.label}.

    required = "#{bindings." BranchesView1.hints.BranchTelephone.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchTelephone.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchTelephone.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchTelephone.tooltip}.

    ID = "it3" >

    < f: validator binding="#{row.bindings.BranchTelephone.validator}"/ >

    < / af:inputText >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchDateActive.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchDateActive.label}.

    ID = "c10" >

    < af:inputDate value = "#{row.bindings.BranchDateActive.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchDateActive.label}.

    required = "#{bindings." BranchesView1.hints.BranchDateActive.mandatory}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchDateActive.tooltip}.

    ID = "id2" >

    < f: validator binding="#{row.bindings.BranchDateActive.validator}"/ >

    < af:convertDateTime pattern = "#{bindings." BranchesView1.hints.BranchDateActive.format}"/ >

    < / af:inputDate >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchDateInactive.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchDateInactive.label}.

    ID = "c1" >

    < af:inputDate value = "#{row.bindings.BranchDateInactive.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchDateInactive.label}.

    required = "#{bindings." BranchesView1.hints.BranchDateInactive.mandatory}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchDateInactive.tooltip}.

    ID = "id1" >

    < f: validator binding="#{row.bindings.BranchDateInactive.validator}"/ >

    < af:convertDateTime pattern = "#{bindings." BranchesView1.hints.BranchDateInactive.format}"/ >

    < / af:inputDate >

    < / af:column >

    < af:column sortProperty = "#{bindings." BranchesView1.hints.BranchHub.name}.

    sortable = "true".

    headerText = "#{bindings." BranchesView1.hints.BranchHub.label}.

    ID = 'c4' >

    < af:inputText value = "#{row.bindings.BranchHub.inputValue} '"

    label = "#{bindings." BranchesView1.hints.BranchHub.label}.

    required = "#{bindings." BranchesView1.hints.BranchHub.mandatory}.

    columns = "#{bindings." BranchesView1.hints.BranchHub.displayWidth}.

    maximumLength = "#{bindings." BranchesView1.hints.BranchHub.precision}.

    shortDesc = "#{bindings." BranchesView1.hints.BranchHub.tooltip}.

    ID = "it10" >

    < f: validator binding="#{row.bindings.BranchHub.validator}"/ >

    < / af:inputText >

    < / af:column >

    < / af:table >

    < / af:panelCollection >

    < / af:panelHeader >

    <!-id = "af_one_column_stretched"->

    < / f: facet >

    < / af:panelStretchLayout >

    < / jsp:root >

    Go to the pageDef and for related iterator to your table, set ChangeEventPolicy property to the ppr

  • Insert a large amount of records in a table

    I tried to find a quick way to optimize a script that insert a large amount of records in a table. The original script was like

    insert into table_xxxx
    Select a.camp1, a.camp2, a.camp3, a.camp4, b.camp1, b.camp2, b.camp3
    from table_a a, table_b b
    where a.camp0 = b.camp0

    The sentence of validation has been at the end of the insert script. so I came up with this solution

    Declare
    TYPE cur_CURSOR IS REF CURSOR;
    TYPE IS of Tab_Hist TABLE table_xxxx % ROWTYPE directory INDEX;
    g_tHist Tab_Hist;

    CURSOR c_Base IS
    Select a.camp1, a.camp2, a.camp3, a.camp4, b.camp1, b.camp2, b.camp3
    from table_a a, table_b b
    where a.camp0 = b.camp0;

    BEGIN
    OPEN c_base.
    LOOP
    Get the c_base COLLECT LOOSE g_tHist LIMIT 1000;
    WHEN OUTPUT g_tHist.COUNT = 0;
    BEGIN
    FORALL i IN g_tHist.FIRST... g_tHist.Count SAVE EXCEPTIONS
    INSERT INTO prov_cobr_dud VALUES g_tHist (i);
    COMMIT;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    NULL;
    END;
    g_tHist.delete;
    EXIT WHEN c_base % NOTFOUND;
    END LOOP;
    CLOSE C_base;
    ----
    commit;
    ----

    END;

    If someone could tell me another way to do the same thing I'll apreciate it a lot; I'm eager to learn more effective ways to optimize scripts.

    PD: The initial insertion was insert the table with 120 000 documents (more or less)

    Congratulations: you have done it is much slower.

    Back to the single insert. Study using parallelism or the hint APPEND to speed loading.

  • by comparing the number of records in the table child

    I have 3 tables below:

    Table 1 - Parent Table
    Table table2 child - who has the number of records for each record in Table1 (row_id in Table1 corresponds to par_row_id in Table2)
    Child table table 3 - has that number of records for each record in Table1 (row_id in Table1 corresponds to par_row_id in table 3)

    I would like to run an Oracle SQL query to identify all the separate row_id on Table1, for which the number of child records in Table2 does not match the number of child records in Table3

    I ask for help to identify the best way to identify these records in the parent table. If possible an example too, please.

    Thank you

    Published by: cseshan on February 3, 2013 01:35

    All by adding the simplest example (with the sample data that you were supposed to provide) below

    create table table1(row_id number primary key);
    
    create table table2(par_row_id number references table1);
    
    create table table3(par_row_id number references table1);
    
    insert into table1 values(1);
    insert into table2 values(1);
    insert into table3 values(1);
    
    insert into table1 values(2);
    insert into table2 values(2);
    insert into table2 values(2);
    
    insert into table1 values(3);
    insert into table3 values(3);
    insert into table3 values(3);
    
    insert into table1 values(4);
    insert into table2 values(4);
    insert into table2 values(4);
    insert into table2 values(4);
    insert into table3 values(4);
    insert into table3 values(4);
    
    commit;
    
    with child1_cnt as
    (
      select par_row_id,count(*) cnt
      from table2
      group by par_row_id
    ),
    child2_cnt as
    (
      select par_row_id,count(*) cnt
      from table3
      group by par_row_id
    ),
    all_counts as
    (
      select p.row_id,nvl(c1.cnt,0) c1_cnt,nvl(c2.cnt,0) c2_cnt
      from table1 p
       left outer join child1_cnt c1
         on ( p.row_id = c1.par_row_id )
       left outer join child2_cnt c2
         on ( p.row_id = c2.par_row_id )
    )
    select row_id,c1_cnt,c2_cnt
    from all_counts
    where c1_cnt != c2_cnt;
    
    ROW_ID C1_CNT C2_CNT
    ------ ------ ------
         2      2      0
         4      3      2
         3      0      2 
    
  • Approach to analyze the large number of XML files in the relational table.

    We are studying the possibility of XML DB to treat a large number of files from same day.
    The goal is to parse the XML file and store it in several relational tables. Once in the relational table don't care us about the XML file.
    The file cannot be stored on the file server and must be stored in a table before analysing because of security concerns. A third-party system will send the file and it will store in the XML database.
    The file size can be between 1 MB to 50MB and high performance is very that much is expected of other wise men, that the solution will be discarded.
    Although we have no of XSD, the XML file is well structured. We are 11g Release 2.

    Based on the reading, that's what my approach.
    1. CREATE THE DONNEES_XML TABLE
    (xml_col XMLTYPE)
    XMLTYPE xml_col STORE AS BINARY XML NAVIGATION;

    2. third will store the data in the donnees_xml table.
    3. create XMLINDEX on the unique XML element
    4 create XMLTYPE views
    CREATE OR REPLACE FORCE VIEW (V_XML_DATA)
    SType,
    Mtype,
    MNAME,
    ROT
    )
    AS
    SELECT x."Stype"
    x."Mtype."
    x."Mname"
    x."ROT".
    OF data_table t,.
    XMLTABLE)
    ' / SectionMain'
    PASSAGE t.data
    COLUMNS Stype VARCHAR2 (30) PATH "Stype"
    Mtype VARCHAR2 (3) path "Mtype."
    MNAME VARCHAR2 (30) PATH "MNAME"
    ROT VARCHAR2 (30) PATH "OID") x;

    5. loading mass analysis of data in the staging table based on the column in the index.

    Please comment on the process that precedes any suggestions that can improve the performance.

    Thank you
    AnuragT

    PASSAGE t.xml_col<--WHAT will="" passing="" here="" since="" no="">

    If you are using an XMLType Table, instead of an XMLType column reference, you are referring to the contents of XMLType while using the NICKNAME "OBJECT_VALUE" column

    If--> t.object_value

  • Get number of records in all tables

    Hello

    I try to get the number of records from all the tables by using a dynamic query. I don't know how to put the placeholder value. I tried the code below.

    SET SERVEROUTPUT SIZE 1000000
    DECLARE
    CURSOR table_list
    IS
    Select OBJECT_NAME from user_objects
    where object_type in ('TABLE')
    and object_name not like '% AUDIT_DDL % '.
    AND object_name not like 'MD_ % '.
    AND object_name not like "EXT_ %.
    AND object_name not like 'STG_ % '.
    AND object_name not like '% SYS_ ".
    AND object_name not like '% TMP_ ".
    AND object_name not like 'TEMP_ %.
    order by 1;
    v_count NUMBER: = 0;
    query_str VARCHAR2 (1000);
    BEGIN
    FOR table_name IN table_list
    LOOP
    query_str: = ' SELECT COUNT (1) FROM "| table_name. Object_name;
    dbms_output.put_line (query_str);
    dbms_output.put_line (' Table name:' | table_name.) OBJECT_NAME);
    v_count: = run immediately query_str;
    dbms_output.put_line (' Table name:' | table_name.) OBJECT_NAME | ', County'. v_count);
    END LOOP;
    END;

    I know that I am doing wrong in the "BOLD" lines. But do not know how to fix it. Help, please. Thanks in advance.

    Change:

    v_count:= execute immediate query_str;
    

    TO

    execute immediate query_str into v_count;
    
  • Number of records per column in each table

    Hi all

    I need to get the number of records by column for each table in a schema.

    Is there a way I get the list of columns in each table in a schema and get the number of records per column where the count > 0?

    We have oracle 10g

    Thank you

    Smidreb wrote:
    You are right, but we're going to run the script as soon as we move

    the script below gives me a correct result.

    If it works well for you, then it works OK for me.

    Realize that Oracle is that I/O block-level.
    As a general rule, any LINE is a single block.
    Realize that is 1 column "count (*)" is correct, then all the columns in the same row are correct.
    This obsessive compulsion to count each COLUMN in each LINE borders on real PARANOIA!

  • number of records/rows in a Table

    Hello

    This might be a basic question, but I don't have an idea how to do this.

    Could you please tell me, how to get a number of files/lines in a specific table?

    Thank you
    Luke

    It takes time to count the number of records if the size of the array is cuddly

    YOU can count to 1000000000000000000 as quickly as you count to 10?
    If it takes you more time to count a lot of things, why do you expect Oracle to do better than you?
    Get a clue!

    It takes more time to count the objects more than less!

  • java.lang.NullPointerException while selecting lov in adf:table

    Hello

    Jdev version: Studio Edition Version 12.1.3.0.0

    I had the form detailed master jsff on page.

    I have to add the number of records in the table of detail will depend on the number of user input.

    If the user enter n inputtext recording and click on add that the number of records is created;

    Detail table a field lov. Selection of LOV following error is generated

    java.lang.NullPointerException

    at org.apache.myfaces.trinidad.component.StampState.restoreChildStampState(StampState.java:184)

    at org.apache.myfaces.trinidad.component.UIXCollection.restoreStampState(UIXCollection.java:1205)

    at org.apache.myfaces.trinidad.component.UIXTable.restoreStampState(UIXTable.java:481)

    at org.apache.myfaces.trinidad.component.UIXCollection.restoreStampState(UIXCollection.java:1198)

    at org.apache.myfaces.trinidad.component.UIXTable.restoreStampState(UIXTable.java:481)

    at org.apache.myfaces.trinidad.component.StampState.restoreChildStampState(StampState.java:193)

    at org.apache.myfaces.trinidad.component.UIXTable.restoreStampState(UIXTable.java:469)

    at org.apache.myfaces.trinidad.component.UIXCollection._restoreStampState(UIXCollection.java:2114)

    at org.apache.myfaces.trinidad.component.UIXCollection.postRowDataChange(UIXCollection.java:1008)

    at org.apache.myfaces.trinidad.component.UIXCollection.setRowIndex(UIXCollection.java:573)

    at org.apache.myfaces.trinidad.component.UIXTable.setRowIndex(UIXTable.java:782)

    at oracle.adf.view.rich.component.UIXTable.processStamps(UIXTable.java:154)

    at org.apache.myfaces.trinidad.component.UIXTable.processFacetsAndChildren(UIXTable.java:384)

    at org.apache.myfaces.trinidad.component.UIXCollection.decodeChildrenImpl(UIXCollection.java:255)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXCollection.processDecodes(UIXCollection.java:241)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    to oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.access$ 001 (ContextSwitchingComponent.java:42)

    to oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$ 2.run(ContextSwitchingComponent.java:186)

    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:510)

    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.processDecodes(ContextSwitchingComponent.java:189)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    to oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.access$ 001 (ContextSwitchingComponent.java:42)

    to oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$ 2.run(ContextSwitchingComponent.java:186)

    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:510)

    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.processDecodes(ContextSwitchingComponent.java:189)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at oracle.adf.view.rich.component.fragment.UIXRegion.decodeChildrenImpl(UIXRegion.java:632)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    to oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.access$ 001 (ContextSwitchingComponent.java:42)

    to oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$ 2.run(ContextSwitchingComponent.java:186)

    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:510)

    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.processDecodes(ContextSwitchingComponent.java:189)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXForm.processDecodes(UIXForm.java:75)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1517)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1503)

    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1263)

    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)

    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:933)

    to oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$ ApplyRequestValuesCallback.invokeContextCallback (LifecycleImpl.java:1568)

    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:416)

    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:225)

    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

    to weblogic.servlet.internal.StubSecurityHelper$ ServletServiceAction.run (StubSecurityHelper.java:280)

    to weblogic.servlet.internal.StubSecurityHelper$ ServletServiceAction.run (StubSecurityHelper.java:254)

    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)

    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346)

    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)

    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:192)

    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:105)

    to org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$ FilterListChain.doFilter (TrinidadFilterImpl.java:502)

    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)

    to org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$ FilterListChain.doFilter (TrinidadFilterImpl.java:502)

    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:327)

    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:229)

    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)

    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:202)

    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

    at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)

    at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)

    at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)

    at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)

    at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)

    at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)

    to org.apache.shiro.web.servlet.AbstractShiroFilter$ 1.call(AbstractShiroFilter.java:365)

    at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)

    at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)

    at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)

    at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)

    at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)

    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

    to oracle.security.jps.ee.http.JpsAbsFilter$ 1.run(JpsAbsFilter.java:137)

    at java.security.AccessController.doPrivileged (Native Method)

    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)

    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)

    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:120)

    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:217)

    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:81)

    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:220)

    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)

    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

    to weblogic.servlet.internal.WebAppServletContext$ ServletInvocationAction.wrapRun (WebAppServletContext.java:3436)

    to weblogic.servlet.internal.WebAppServletContext$ ServletInvocationAction.run (WebAppServletContext.java:3402)

    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)

    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)

    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)

    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)

    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)

    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)

    to weblogic.servlet.provider.ContainerSupportProviderImpl$ WlsRequestExecutor.run (ContainerSupportProviderImpl.java:255)

    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)

    at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

    I created 2 rows by clicking on the button 'Add' twice, then I click a line lov, it returns the correct value.

    When I switch to the second row and click component lov it give me above mentioned error and when I click on ok lov fills correctly.

    You must complete the key attributes programmatically (and probably all other attributes required if there is)

    Table has a composite key.

    This is usually problem (af:inputListOfValues has problems if you use this component in editable af:table and VO a composite key).

    As I said already, you probably should consider the use of read-only table and add/change the lines in a popup (or drop your VO also like shape on your page)

    Dario

Maybe you are looking for