DataModel, SelectItem(s) Reading data twice - selection consistency

Hello,
I have some concerns regarding the way how selected item in selectone_menu or command_link/command_button inside of data_table get resolved on submit.
I am very new to JSF so I might misunderstood how it works and will be grateful for your comments
Here are two samples which assume Request scope for their backing beans.
Let�s say we have a typical form with Products drop down list
When we render the form Products gets populated from List of SelectItem which is built in backing bean from database
When we submit the form the view is recreated, product list is repopulated from backing bean again and user selection is resolved
Very similar case with data_table - in fact even more confusing because it seems use row numbers. When we render it its underlying Data Model gets populated from database and each row of the table outputs lets say a "delete" button. One of "Delete" buttons is clicked - form gets submitted. View is reconstituted by repopulating DataModel and resolving row which was clicked (using button ID and Row Number if I understand it right)
Now in both cases to successfully resolve user selection JSF needs to get exactly the same data in the list or DataModel which can't not guaranteed by application. If DataModel retrieves different set of data I am afraid user click might get resolved to a wrong row
Another issue is performance. I am not totally happy with the fact that everything gets fetched twice - first time on render (expected) and second time on submit
Thank you
Alex

Adam,
I think it makes use of DataModel difficult and uncertain. And it is one of the most widely used scenarious - select something from a dynamically produced list.
As it stands now data_table can
1. Cause event propagation to wrong row in case of dynamic data
2. Performs very expensive data retrieval twice just so click can be resolved to row object
Storing data model in session for the time of render/submit cycle is possible but
1. Not an optioin in many cases because the model references "live" data (like JDO which holds reference to PersistenceManager) and is not serializable it is meant to be used in request and released.
2. But even if it was not an issue it is a very high price to pay in terms of transparency ease of development etc. I am not even talking about technical chalenges of purging snapshots of various data models from session
I wonder if there are any other approaches to DataModel. For example require a RowID for each row.
In most cases it is there anyway in form of primary keys or object IDs of underlying data. And in many cases it is all developers would want to get on row event - RowID. If DataModel had getSelectedRowID() method it would be all we need to go on. If people need to get an actual instance to fire event on DataModel could optionally implement resolveRow(rowId) method which will resolve selected ID to row data instance. It will also take care of double retrieve issue because you will not need to retrieve the same data second time - just selected row data.
Somehow I think in 80% cases people won't even need to get row instance in their event - just row id

Similar Messages

  • How to read data from select Options in another view without using context

    I have 2 views, one for selection screen and another for displaying result.
    In selection screen view I have define a select options with the help of webdynpro component.
    Now my object is display result in result view based on entry of selection screen.
    I don't want to do binding in context node, without that how I can read data of select option
    in result view?
    Regards,
    Rasmi Ranjan Mishra

    Solve by own.
    If I define the Select options in component controller, then it will be global in nature. so i can get the value of select options
    in another view also.
    Regards,
    Rasmi Ranjan Mishra

  • How to read data after select multiple record by checkbox,

    hi experts
    i  m using simple report with check box , and itab whcih contain records
    how to read data after select multiple record by checkbox,
    thanks

    Hi Prashant,
       Try using this logic.This Code displays the list with check boxes. When you check a checkbox and press a button say 'Select All' or 'De Select all' or 'Display'. It will read the data of those records.
    DATA :
      fs_flight TYPE type_s_flight,
      fs_flight1 TYPE type_s_flight1.
    * Internal tables to hold Flight  Details                             *
    DATA :
      t_flight LIKE
      STANDARD TABLE
            OF fs_flight,
      t_flight1 LIKE
       STANDARD TABLE
             OF fs_flight1.
    SET PF-STATUS 'SELECT' .
    PERFORM selection.
    PERFORM displaybasic .
    *                      AT USER COMMAND EVENT                          *
    AT USER-COMMAND.
      PERFORM selectall .
    *&      Form  SELECTION
    *      Select query to reteive data from SPFLI table
    *  There are no interface parameters to be passed to this subroutine.
    FORM selection .
      SELECT  carrid                       " Airline Code
              connid                       " Flight Connection Number                  
        FROM  spfli
        INTO TABLE t_flight.
      DESCRIBE TABLE t_flight LINES w_lines .
    ENDFORM.                               " SELECTION
    *&      Form  DISPLAYBASIC
    *      Display the basic list with SPFLI data
    *  There are no interface parameters to be passed to this subroutine.
    FORM displaybasic .
      LOOP AT t_flight INTO fs_flight.
        WRITE :
             w_check AS CHECKBOX,
             w_mark,
             fs_flight-carrid UNDER text-001,
             fs_flight-connid UNDER text-002.
      ENDLOOP.                             " LOOP AT T_FLIGHT..
      CLEAR fs_flight-carrid .
      CLEAR fs_flight-connid.
    ENDFORM.                               " DISPLAYBASIC
    *&      Form  SELECTALL
    *      To check all the checkboxes with a 'selectall' push button
    *  There are no interface parameters to be passed to this subroutine.
    FORM selectall .
      CASE sy-ucomm.
        WHEN 'SELECT_ALL'.
          w_check = 'X'.
          w_line = 4 .
          DO w_lines TIMES.
            READ LINE w_line .
            MODIFY LINE w_line FIELD VALUE w_check .
            ADD 1 TO w_line .
          ENDDO.                           " DO W_LINES TIMES
          CLEAR w_line.
        WHEN 'DESELECTAL'.
          w_check = space.
          w_line = 4 .
          DO w_lines TIMES.
            READ LINE w_line FIELD VALUE w_mark .
            IF w_mark = space .
              MODIFY LINE w_line FIELD VALUE w_check .
            ENDIF.                         " IF W_MARK = SPACE
            ADD 1 TO w_line .
          ENDDO.                           " DO W_LINES TIMES
        WHEN 'DISPLAY'.
    IF sy-lilli BETWEEN 4 AND w_lines .
        DO w_lines TIMES.
          READ LINE w_num FIELD VALUE w_check INTO w_check
                                     fs_flight-carrid INTO fs_flight-carrid
                                     fs_flight-connid INTO fs_flight-connid.
          IF sy-subrc = 0.
            IF w_check = 'X'
              SELECT  carrid
                      connid
                      fldate               " Flight date
                      seatsmax             " Maximum capacity in economy
                      seatsocc             " Occupied seats in economy class
                FROM  sflight
                INTO  TABLE t_flight1
               WHERE  carrid = fs_flight-carrid
                 AND  connid = fs_flight-connid.
              LOOP AT t_flight1 INTO fs_flight1.
                WRITE :
                  / fs_flight-carrid UNDER text-001,
                    fs_flight-connid UNDER text-002,
                    fs_flight1-fldate UNDER text-007,
                    fs_flight1-seatsmax UNDER text-008,
                    fs_flight1-seatsocc UNDER text-009.
              ENDLOOP.
            ENDIF.                         " IF SY-SUBRC = 0
          ENDIF.                           " IF W_CHECK = 'X'.
          ADD 1 TO w_num.
        ENDDO.                             " DO W_LINES TIMES
        CLEAR w_check.
        w_num = 0.
      ELSE .
        MESSAGE 'INVALID CURSOR POSITION ' TYPE 'E' .
      ENDIF.                               " IF SY-LILLI BETWEEN..
    ENDCASE.                             " CASE SY-UCOMM
    ENDFORM.                               " SELECTALL
    Much Regards,
    Amuktha.

  • CL_gui_frontend_services-To read data by selecting file from file dialog

    Hi I have a requirement in which -
    I have to selct the file using file open dialog . Cl_gui_open_frontendservices . From this I have to read the data into internal table .
    How can I get the data  after getting the file name .
    Does any one have idea on this .

    data: begin of itab_string occurs 0,
          record type char255,
          end of itab_string.
    data:  L_FILETABLE TYPE FILETABLE,
    L_FILETAB_H TYPE FILETABLE WITH HEADER LINE.
    data: p_file1 type string.
    selection screen .
    PARAMETERS: P_FILE TYPE LOCALFILE.
    at selection-screen on value-request for P_FILE.
    IF THE USER SELECT EXTENTION BUTTON IT WILL OPEN THE LOCAL DIRECTORY FOR SELECTING THE FILE LOCATION.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
       WINDOW_TITLE            =
       DEFAULT_EXTENSION       = 'CSV'
       DEFAULT_FILENAME        = 'C:\Documents and Settings\kiran\Desktop\STATUS.csv'
       FILE_FILTER             =
       INITIAL_DIRECTORY        = 'C:\Documents and Settings\kiran\Desktop\'
       MULTISELECTION          =
       WITH_ENCODING           =
      CHANGING
        FILE_TABLE              = L_FILETABLE
        RC                      = RC
       USER_ACTION             =
       FILE_ENCODING           =
      EXCEPTIONS
        FILE_OPEN_DIALOG_FAILED = 1
        CNTL_ERROR              = 2
        ERROR_NO_GUI            = 3
        NOT_SUPPORTED_BY_GUI    = 4
        others                  = 5
    IF SY-SUBRC <> 0.
    ELSE.
    LOOP AT l_filetable INTO L_FILETAB_H.
    P_FILE = L_FILETAB_H-FILENAME.
    move p_file to p_file1.
    EXIT.
    ENDLOOP.
    ENDIF.
    passing the selected file name to gui_upload for loading the data
    into internal table
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = p_file1
      FILETYPE                      = 'ASC'
      HAS_FIELD_SEPARATOR           = ' '
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      TABLES
        DATA_TAB                      = itab_string
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17
    IF SY-SUBRC <> 0.
    MESSAGE I000(Z00) WITH 'PLEASE PROVIDE CORRECT FILE NAME'.
    ENDIF.
    Reward points for all helpful answers,
    kiran.M
    Reward points if helpful and close this thread
    Message was edited by:
            KIRAN KUMAR

  • Select query to read data from a view

    Hi friends,
    We have been using a query to read data from a custom view which used to work perfectly. Now the program sits at that select query forever. We are able to extract same data from se16. Not sure what could be the problem.
    Thanks in advance.

    Dev
    Have a look at the Table Index for the tables involved in the View... I think there is some change in the Indexes.. (Add / Remove / Change)
    Thanks
    Amol Lohade

  • TT16060: Failed to read data from the network. select() timed out

    hi!
    i am working on active standby pair.....i created
    [activedsn]
    Driver=/d01/oracle/tt70/TimesTen/tt70/lib/libtten.so
    DataStore=/d01/oracle/tt70/TimesTen/tt70/info/activedsn
    DatabaseCharacterSet=WE8MSWIN1252
    PermSize=10
    [standbydsn]
    Driver=/d01/oracle/tt70/TimesTen/tt70/lib/libtten.so
    DataStore=/d01/oracle/tt70/TimesTen/tt70/info/standbydsn
    DatabaseCharacterSet=WE8MSWIN1252
    PermSize=10
    [sub3]
    Driver=/d01/oracle/tt70/TimesTen/tt70/lib/libtten.so
    DataStore=/d01/oracle/tt70/TimesTen/tt70/info/sub3
    DatabaseCharacterSet=WE8MSWIN1252
    PermSize=10
    replication schemes; .............all are on same hosts..........
    activedsn datastore.............
    Command> create table readtab(a number not null primary key,b varchar2(31));
    Command> insert into readtab values(101,'aaaa');
    1 row inserted.
    Command> commit;
    command>create active standby pair activedsn on "tap2.test3.com",standbydsn on "tap2.test3.com" return receipt subscriber sub3 on "tap2.test3.com";
    standbydsn datastore..........
    command>ttrepadmin -duplicate -from activedsn -host "tap2.test3.com" -uid adm -pwd adm "dsn=standbydsn";
    sub3 datastore..........
    command>ttrepadmin -duplicate -from standbydsn -host "tap2.test3.com" -uid adm -pwd adm "dsn=sub3";
    now they are working fine when i insert something from activedsn it is replicated to standbydsn and from standbydsn to sub3 ......
    problem:
    but when i test "Recovering from a failure of the standby master data store"
    i ttdestroy standbydsn..............and on activedsn i executed
    command>call ttrepstatesave('failed','standbydsn','tap2.test3.com');
    after that all updates from activedsn were replicated to sub3....in the meanwhile i again duplicated standbydsn from activedsn
    command>ttrepadmin -duplicate -from activedsn -host "tap2.test3.com" -uid adm -pwd adm "dsn=standbydsn";
    now what happens updates from activedsn are replicated to standbydsn but no updates are replicated to sub3 it is giving error
    15:24:29.29 Warn: REP: 7077: SUB3:receiver.c(1931): TT16060: Failed to read data from the network. select() timed out
    15:29:36.09 Warn: REP: 7008: STANDBYDSN:receiver.c(1931): TT16060: Failed to read data from the network. TimesTen replication agent is stopping
    replication agents for all are running.............
    please helppppp..........
    Edited by: Muhammad.Usman on Oct 13, 2009 2:57 AM
    Edited by: Muhammad.Usman on Oct 13, 2009 3:08 AM

    [timesten@tap2 bin]$ ttrepadmin -showconfig activedsn
    Self host "TAP2.TEST3.COM", port auto, name "ACTIVEDSN", LSN 0/916688, timeout 120, threshold 0
    List of subscribers
    Peer name Host name Port State Proto
    SUB3 TAP2.TEST3.COM Auto Start 24
    Last Msg Sent Last Msg Recv Latency TPS RecordsPS
    00:00:03 - -1.00 -1 -1
    Peer name Host name Port State Proto
    STANDBYDSN TAP2.TEST3.COM Auto Start 24
    Last Msg Sent Last Msg Recv Latency TPS RecordsPS
    00:00:03 00:00:04 -1.00 -1 -1
    List of objects and subscriptions
    Table details
    Table : ADM.READTAB Timestamp updates : -
    Master Name Subscriber name
    STANDBYDSN SUB3
    STANDBYDSN ACTIVEDSN
    Table details
    Table : ADM.READTAB Timestamp updates : -
    Master Name Subscriber name
    ACTIVEDSN SUB3
    ACTIVEDSN STANDBYDSN
    Datastore details
    Master Name Subscriber name
    STANDBYDSN SUB3
    STANDBYDSN ACTIVEDSN
    Datastore details
    Master Name Subscriber name
    ACTIVEDSN SUB3
    ACTIVEDSN STANDBYDSN
    [timesten@tap2 bin]$ ttrepadmin -showstatus activedsn
    Replication Agent Status as of: 2009-10-13 20:42:02
    DSN : activedsn
    Process ID : 19000 (Started)
    Replication Agent Policy : manual
    Host : TAP2.TEST3.COM
    RepListener Port : 58698 (AUTO)
    Last write LSN : 0.973840
    Last LSN forced to disk : 0.973840
    Replication hold LSN : 0.968456
    Replication Peers:
    Name : SUB3
    Host : TAP2.TEST3.COM
    Port : 58371 (AUTO) (Connected)
    Replication State : STARTED
    Communication Protocol : 24
    Name : STANDBYDSN
    Host : TAP2.TEST3.COM
    Port : 59000 (AUTO) (Connected)
    Replication State : STARTED
    Communication Protocol : 24
    TRANSMITTER thread(s):
    For : SUB3
    Start/Restart count : 6
    Send LSN : 0.971432
    Transactions sent : 2
    Total packets sent : 158
    Tick packets sent : 112
    MIN sent packet size : 48
    MAX sent packet size : 568
    AVG sent packet size : 59
    Last packet sent at : 20:42:00
    Total Packets received: 158
    MIN rcvd packet size : 48
    MAX rcvd packet size : 96
    AVG rcvd packet size : 64
    Last packet rcvd'd at : 20:42:00
    TRANSMITTER thread(s):
    For : STANDBYDSN
    Start/Restart count : 4
    Send LSN : 0.971432
    Transactions sent : 2
    Total packets sent : 106
    Tick packets sent : 84
    MIN sent packet size : 48
    MAX sent packet size : 560
    AVG sent packet size : 63
    Last packet sent at : 20:42:00
    Total Packets received: 104
    MIN rcvd packet size : 48
    MAX rcvd packet size : 96
    AVG rcvd packet size : 66
    Last packet rcvd'd at : 20:42:00
    Most recent errors (max 5):
    TT16122 in transmitter.c (line 3313) at 20:28:28 on 10-13-2009
    TT16121 in transmitter.c (line 3048) at 20:28:28 on 10-13-2009
    TT16060 in transmitter.c (line 5028) at 20:33:59 on 10-13-2009
    TT16122 in transmitter.c (line 3313) at 20:33:59 on 10-13-2009
    TT16121 in transmitter.c (line 3048) at 20:33:59 on 10-13-2009
    RECEIVER thread(s):
    For : STANDBYDSN
    Start/Restart count : 1
    Transactions received : 0
    Total packets sent : 33
    Tick packets sent : 0
    MIN sent packet size : 48
    MAX sent packet size : 68
    AVG sent packet size : 67
    Last packet sent at : 20:42:00
    Total Packets received: 33
    MIN rcvd packet size : 48
    MAX rcvd packet size : 135
    AVG rcvd packet size : 51
    Last packet rcvd'd at : 20:42:00
    [timesten@tap2 bin]$
    [timesten@tap2 bin]$ ttrepadmin -showstatus standbydsn
    Replication Agent Status as of: 2009-10-13 20:42:35
    DSN : standbydsn
    Process ID : 19102 (Started)
    Replication Agent Policy : manual
    Host : TAP2.TEST3.COM
    RepListener Port : 59000 (AUTO)
    Last write LSN : 0.1007904
    Last LSN forced to disk : 0.1007904
    Replication hold LSN : 0.1002472
    Replication Peers:
    Name : SUB3
    Host : TAP2.TEST3.COM
    Port : 58371 (AUTO) (Connected)
    Replication State : STARTED
    Communication Protocol : 24
    Name : ACTIVEDSN
    Host : TAP2.TEST3.COM
    Port : 58698 (AUTO) (Connected)
    Replication State : STARTED
    Communication Protocol : 24
    TRANSMITTER thread(s):
    For : SUB3
    Start/Restart count : 2
    Send LSN : 0.1005496
    Transactions sent : 1
    Total packets sent : 48
    Tick packets sent : 33
    MIN sent packet size : 48
    MAX sent packet size : 568
    AVG sent packet size : 65
    Last packet sent at : 20:42:30
    Total Packets received: 48
    MIN rcvd packet size : 48
    MAX rcvd packet size : 96
    AVG rcvd packet size : 64
    Last packet rcvd'd at : 20:42:30
    Most recent errors (max 5):
    TT16229 in transmitter.c (line 6244) at 20:38:01 on 10-13-2009
    TRANSMITTER thread(s):
    For : ACTIVEDSN
    Start/Restart count : 1
    Send LSN : 0.1005496
    Transactions sent : 0
    Total packets sent : 36
    Tick packets sent : 34
    MIN sent packet size : 48
    MAX sent packet size : 135
    AVG sent packet size : 50
    Last packet sent at : 20:42:30
    Total Packets received: 36
    MIN rcvd packet size : 48
    MAX rcvd packet size : 68
    AVG rcvd packet size : 67
    Last packet rcvd'd at : 20:42:30
    RECEIVER thread(s):
    For : ACTIVEDSN
    Start/Restart count : 1
    Transactions received : 1
    Total packets sent : 42
    Tick packets sent : 0
    MIN sent packet size : 48
    MAX sent packet size : 96
    AVG sent packet size : 66
    Last packet sent at : 20:42:30
    Total Packets received: 47
    MIN rcvd packet size : 48
    MAX rcvd packet size : 190
    AVG rcvd packet size : 58
    Last packet rcvd'd at : 20:42:30
    [timesten@tap2 bin]$
    [timesten@tap2 bin]$ ttrepadmin -showstatus sub3
    Replication Agent Status as of: 2009-10-13 20:43:05
    DSN : sub3
    Process ID : 18898 (Started)
    Replication Agent Policy : manual
    Host : TAP2.TEST3.COM
    RepListener Port : 58371 (AUTO)
    Last write LSN : 0.707088
    Last LSN forced to disk : 0.707088
    Replication hold LSN : -1.-1
    Replication Peers:
    Name : ACTIVEDSN
    Host : TAP2.TEST3.COM
    Port : 0 (AUTO)
    Replication State : STARTED
    Communication Protocol : 24
    Name : STANDBYDSN
    Host : TAP2.TEST3.COM
    Port : 0 (AUTO)
    Replication State : STARTED
    Communication Protocol : 24
    RECEIVER thread(s):
    For : ACTIVEDSN
    Start/Restart count : 1
    Transactions received : 0
    Total packets sent : 46
    Tick packets sent : 0
    MIN sent packet size : 48
    MAX sent packet size : 96
    AVG sent packet size : 65
    Last packet sent at : 20:43:00
    Total Packets received: 46
    MIN rcvd packet size : 48
    MAX rcvd packet size : 134
    AVG rcvd packet size : 51
    Last packet rcvd'd at : 20:43:00
    RECEIVER thread(s):
    For : STANDBYDSN
    Start/Restart count : 1
    Transactions received : 1
    Total packets sent : 45
    Tick packets sent : 0
    MIN sent packet size : 48
    MAX sent packet size : 96
    AVG sent packet size : 66
    Last packet sent at : 20:43:00
    Total Packets received: 50
    MIN rcvd packet size : 48
    MAX rcvd packet size : 190
    AVG rcvd packet size : 56
    Last packet rcvd'd at : 20:43:00
    [timesten@tap2 bin]$
    [timesten@tap2 bin]$
    Edited by: Muhammad.Usman on Oct 13, 2009 9:57 PM

  • Query result shows the same data twice

    Hello All,
    I've created UDFs like Supplier Name, Supplier Address, and (Excise Details like)Supplier ECC No,
    Supplier Range.
    And I've created Query for Supplier Name and Supplier Address, and I assigned to FMS, Its working Correctly.
    I've created Query for Supplier ECC No. the Query is,
    SELECT  T0.[ECCNo],T1.[CardName]
    FROM CRD7 T0  INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode
    WHERE T0.[ECCNo]  Like  '[%]'
    I saved the Query, and assigned to FMS.
    At this stage (i.e. Query for Supplier ECC No.) the above Query showing the same data twice.
    Please suggest to rectify the problem.
    Thanks,
    Pratheeviraj

    You can get rid of the duplicates by changing the query to
    SELECT DISTINCT T0.ECCNo,T1.CardName
    FROM CRD7 T0 INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode
    WHERE T0.ECCNo Like '[%]'
    But it is always worth understanding why you are getting multiple records to check that you are getting back what you want.  I think you may be seeing this because CRD7 can have multiple records for a business partner - maybe one for each of 'pay-to' and 'ship-to' address?

  • BIA Server problem - Data package not consistent

    Dear All,
    I have a strange issue with my BIA server. When I run the report by selecting top most nodes of the hierarchy.
    Report ends up with message: No applicable data, and below error messages
    Aggregates of ZFICSC22 were compressed. Data package is not consistent
    Error while reading data, navigation is possible
    The report works fine when I select the subsequent nodes (immediate lower nodes) of a hierarchy.
    The report also works when I execute bypassing the BIA
    I have cleaned up all the hierarchy buffer but the problem persists
    As of now I am left out with last option which is rebuilding the indexes unless any one of you comes up with a better solution.
    Thanks & Regards
    Ziya
    Edited by: Ziyauddin Mohammed on Dec 5, 2008 4:02 PM

    Hi,
    Have you implemented OSS Note 1163991?
    There is nothing like data package compression in BIA.
    Regards,
    -Vitaliy
    Edited by: Vitaliy on Dec 5, 2008 9:08 AM

  • Ora-01466 unable to read data table definition has changed oracle.

    hi all,
    i truncated a table before 10 min. now i want the data's so i used this query ;
    select *
    from ( select *
    from sometable where some_condition )
    as of timestamp sysdate-1;
    but it shows:
    """ ora-01466 unable to read data table definition has changed oracle"""";
    how to get the deleted records from database????????????
    Edited by: 887268 on Oct 24, 2011 4:02 AM

    Error:  ORA 1466
    Text:   unable to read data -- object definition has changed
    Cause:  This is a time-based read consistency error for a database object,
            such as a table or index.
            Either of the following may have happened:
            The query was parsed and executed with a snapshot older than the time
            the object was changed.
            The creation time-stamp of the object is greater than the current
            system time.
            This happens, for example, when the system time is set to a time
            earlier than the creation time of the object.
    Action: If the cause is
            an old snapshot, then commit or rollback the transaction and resume
            work.
            a creation time-stamp in the future, ensure the system time is set
            correctly.
            If the object creation time-stamp is still greater than the system
            time, then export the object's data, drop the object, recreate the
            object so it has a new creation time-stamp, import the object's data,
            and resume work.

  • Display of 2 rows of data for 2 different date range selection

    Hi Folks,
    I have a requirement as follows,
    User has an option of selecting 2 Date Ranges
    From and To Date and again From and To Date
    The result should display 2 different rows of data with From and To Date range selection.
    Eg:
    12/09/20008 to 03/09/2009           10 20 30 40
    23/10/2009 to  18/12/2010           40 20 10 30
    Difference                                   30 0  20 10
    % Change                                   x  y  z   q
    Thanks for your input.
    Regards,
    KJ

    You will need to use union report, and you would have fours union's in this report.
    Union - 1: Data from 1st Date Range
    Union - 2: Data from 2nd Date Range
    Union - 3: Variance Calculation
    Union - 4: Percentage Variance Calculation.
    If the date's are coming from the same field, use cast function to use the same column twice in your prompts. Apply filters on each union as needed.
    Thanks.

  • How to read data in a program from a MAINTENANCE View

    Hi Experts,
    Requirement:
    1. I have maintained a maintenance view on three Database tables.
    2.Data can be entered in the view as it is a Maintenace view as i have created maintenance generator for that and it is a requirement.
    3. In one of my programs i need to read this data, into an internal table, that is maintained through this view.
    Problem: When i am firing a SELECT query on this view, it goves me a syntax error that i cannot get data by select query on a Maintenance view.
    Solution required for: Is there any way i can get the data from this Maintenance view.
    Thanks in advance for your exteemed replies.
    Regards,
    Raghavendra Goutham P.

    Hi,
       Only projection view or database view can be used
       in select query.
        Find the tables used in view and
       Select data into report program by
        joining tables .
    Regards
    Amole

  • Read data from excel sheet and then perform the required operations.

    Hi all
    I need to write a procedure which can read data from excel sheet.I have excel sheet in which i have to options one is modification and other is addition.so if it reads modification then i need to read the concerned table name then check its availability in pl-sql datbase.If table exists then reading the realated column in that row to fire the querry. The excel sheet is saved in local disk c.
    can anybody help me with this.How i need to start specialy to read the data from excel sheet saved in local disk c.
    Edited by: user13334062 on Jun 30, 2010 3:45 AM

    Hi
    If you can convert the excel to a csv format, then it can be simply query from DB Creating Oracle External Tables. Best part is that you may still change the CSV using EXCEL.
    Following action Points can be adopt;
    *1. Convert Excel File to a csv. File Save as CSV*
    *2. Create Oracle Directory* ( This has to be the location of your excel file )
    SQL> Create directory mydir as 'C:\testdb'; --- "testdb" is the location folder in win for your excel sheet.
    *3. Create the External Table*
    SQL> create table my_ext_tab (
    Field1 Datatype,
    Field2 Datatype,
    Field3 Datatype,
    Field4 Datatype,
    Field5 Datatype
    Organization external
    (type oracle_loader default directory mydir
    access parameters (records delimited by newline fields terminated by ',')
    location ('my_ext_tab.csv'))
    reject limit 100;
    *4. Now you can query the table "my_ext_tab"*
    Select * from "my_ext_tab";
    Please avoid the reformat the data column inside the spreadsheet (CSV).

  • Error reading data from CLOB column into VARCHAR2 variable

    Hi all,
    Am hitting an issue retrieving data > 8K (minus 1) stored in a CLOB column into a VARCHAR2 variable in PL/SQL...
    The "problem to be solved" here is storing DDL, in this case a "CREATE VIEW" statement, that is longer than 8K for later retrieval (and execution) using dynamic SQL. Given that the EXECUTE IMMEDIATE statement can take a VARCHAR2 variable (up to 32K(-1)), this should suffice for our needs, however, it seems that somewhere in the process of converting this VARCHAR2 text to a CLOB for storage, and then retrieving the CLOB and attempting to put it back into a VARCHAR2 variable, it is throwing a standard ORA-06502 exception ("PL/SQL: numeric or value error"). Consider the following code:
    set serveroutput on
    drop table test1;
    create table test1(col1 CLOB);
    declare
    cursor c1 is select col1 from test1;
    myvar VARCHAR2(32000);
    begin
    myvar := '';
    for i in 1..8192 loop
    myvar := myvar || 'a';
    end loop;
    INSERT INTO test1 (col1) VALUES (myvar);
    for arec in c1 loop
    begin
    myvar := arec.col1;
    dbms_output.put_line('Read data of length ' || length(myvar));
    exception when others then
    dbms_output.put_line('Error reading data: ' || sqlerrm);
    end;
    end loop;
    end;
    If you change the loop upper bound to 8191, all works fine. I'm guessing this might have something to do with the database character set -- we've recently converted our databases over to UTF-8, for Internationalizion support, and that seems to have changed underlying assumptions regarding character processing...?
    As far as the dynamic SQL issue goes, we can probably use the DBMS_SQL interface instead, with it's EXECUTE procedure that takes a PL/SQL array of varchar2(32K) - the only issue there is reading the data from the CLOB column, and then breaking that data into an array but that doesn't seem insurmountable. But this same basic issue (when a 9K text block, let's say, turns into a >32K block after being CLOBberred) seems to comes up in other text-processing situations also, so any ideas for how to resolve would be much appreciated.
    Thanks for any tips/hints/ideas...
    Jim

    For those curious about this, here's the word from Oracle support (courtesy of Metalinks):
    RESEARCH
    ========
    Test the issue for different DB version and different characterset.
    --Testing the following PL/SQL blocks by using direct assignment method(myvar := arec.col1;) on
    different database version and different characterset.
    SQL>create table test1(col1 CLOB);
    --Inserting four CLOB data into test1.
    declare
    myvar VARCHAR2(32767);
    begin
    myvar := RPAD('a',4000);
    INSERT INTO test1 (col1) VALUES (myvar);
    myvar := RPAD('a',8191);
    INSERT INTO test1 (col1) VALUES (myvar);
    myvar := RPAD('b',8192);
    INSERT INTO test1 (col1) VALUES (myvar);
    myvar := RPAD('c',32767);
    INSERT INTO test1 (col1) VALUES (myvar);
    commit;
    end;
    --Testing the direct assignment method.
    declare
    cursor c1 is select col1, length(col1) len1 from test1;
    myvar VARCHAR2(32767);
    begin
    for arec in c1 loop
    myvar := arec.col1;
    --DBMS_LOB.READ(arec.col1, arec.len1, 1, myvar);
    dbms_output.put_line('Read data of length: ' || length(myvar));
    end loop;
    end;
    The following are the summary of the test results:
    ===================================
    1. If the database characterset is WE8ISO8859P1, then the above direct assignment
    method(myvar := arec.col1;) works for database version 9i/10g/11g without any
    errors.
    2. If the database characterset is UTF8 or AL32UTF8, then the above direct assignment method(myvar := arec.col1;) will generate the "ORA-06502:
    PL/SQL: numeric or value error" when the length of the CLOB data is greater
    than 8191(=8K-1). The same error can be reproduced across all database versions
    9i/10g/11g.
    3. Using DBMS_LOB.READ(arec.col1, arec.len1, 1, myvar) method to read CLOB data into a VARCHAR2 variable works for both WE8ISO8859P1 and UTF8
    characterset and for all database versions.
    So - it seems as I'd surmised, UTF8 changes the way VARCHAR2 and CLOB data is handled. Not too surprising, I suppose - may you all be lucky enough to be able to stay away from this sort of issue. But - the DBMS_LOB.READ workaround is certainly sufficient for the text processing situations we find ourselves in currently.
    Cheers,
    Jim C.

  • Without loops how can i read data from associative Array??

    Hi all,
    I am facing scenario like...
    i need to read data from associative array  without using loops is it possible,
    CREATE OR REPLACE PACKAGE BODY test_pkg IS
        TYPE t1 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
       -- in array we can expect more than one row or sometimes no data also.
      FUNCTION test1(vt1 T1 DEFAULT CAST(NULL AS t1)) RETURN NUMBER IS
      BEGIN
        -- basically in array we'll get data of column2
        -- this loop should satisfies table1.colum2 = nvl(NULL, table2.colum2 )if array is null.
        -- if array is not null then only compare with array values
        FOR i IN (SELECT t1.colum1,t1.column2
                         FROM table1 t1, table1 t2
                              WHERE t1.colum1 = t2.column1
                                AND t1.colum2 = nvl(vt1, t2.colum2)
          LOOP
            generateTEXT(i.colum1, i.colum2);
         END LOOP;
      END test1;
    END test_pkg;
    in table1 we have date like...
    colum1          column2
    Jan                  1
    Feb                  2
    Mar                  3
    if i call select test_pkg.test1(1) from dual then output should
    be Jan..
    and
    select test_pkg.test1(null) from dual then it should display all elements from table1.
    Jan                  1
    Feb                  2
    Mar                  3,
    Thanks for your quick replay..

    i need to read data from associative array  without using loops is it possible,
    No - you would need to create a SQL type and then use the TABLE operator to unnest the collection.
    create or replace TYPE my_nums IS TABLE OF INTEGER;
    DECLARE
    --  TYPE my_nums IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER;
      v_nums my_nums := my_nums(1, 2, 3);
      v_total number;
    BEGIN
      select sum(column_value) into v_total from table(v_nums);
      DBMS_OUTPUT.PUT_LINE
        ('Sum of the numbers is ' || TO_CHAR(v_total));
    END;
    Sum of the numbers is 6

  • Help Required -- Can we use SQL Query to READ data from SAP MDM Tables

    Hi All,
    Please help.........
    Can we use SQL Query to READ(No Creation/Updation/Deletion  just Read) Data from SAP MDM tables directly, without using MDM Syndicator.
    Or direct SQL access to SAP MDM tables is not possible. Only through MDM Syndicator can we export data.
    Thanks in Advance
    Regards

    All the tables you create in Repository comes under A2i_CM_Tables in Database named as your repository name. So the tables names are fields of table A2i_CM_Tables. Now i tried it but cant make it.
    Now, I dont think its possible to extract all fields in tables and there values using select query. May be pure sql guy can do that or not.
    But there is no relation of data extraction and syndicator. Data is viewed in Data Manager. and you can also store data in a file from DM also.
    BR,
    Alok

Maybe you are looking for

  • Upgrade to OS 7

    I own BB Curve 9300 which runs BB OS 6 as of now. Can I upgrade the same to OS 7?

  • Updating CS2 to CS5

    Hi, I've been convinced to try out CS5 and add Quite Imposing as the page imposition software to replace InBooklet, even though its price is quite imposing. So, I tried opening one little test CS2 indd document with Illustrator 10 drawings and ran in

  • Navigator Panel in LR3 not behaving - help?

    The Navigator Panel in LR3 seems to have a mind of it's own. When adding a folder - right click method - after you enter a name and hit OK - the entire panel re-arranges itself and opens folders/subfolders/subfolders, etc. on a seemingly random basis

  • Samsung Note 3 importing MP4 video audio doesn't sync

    I recorded a video clip in my Samsung Note 3 smartphone at 1920 x 1080. The video is MP4. When I import it into Premiere the audio doesn't sync. I've tried to convert the video into a wmv and mov using a conversion tool and the problem gets worse. Th

  • Variable prompt

    hi, i have 2 analysis, "amount by issue_date" and "amount by begin_date". i created variable prompt in dashboard page, prompt values are "begin date" and "issue date", when users select "begin date", value will be sent to amount by begin_date report,