Query Results: Retrieve All Rows?

I was looking for a feature that will allow me to choose to return "all records" to the Query Results window. The current behavior is to fetch 50 records at a time (e.g. fetch 50 records as you scroll through the results = s-l-o-w). What I'd like to do is "Retrieve All Rows" then use to the scroll bar to "smoothly" scroll to the last record. For example, the 8.0.6 version of Query Builder had this functionality and in SQL Developer 3.0, if I right-click on the results. I can choose to "Count Rows...", seems like this would be a perfect place to put a "Retrieve All Rows" option.

Hi,
My advice: do something only if there is a business case for it; satisfying your curiosity can get surprisingly expensive.
You have already read about using Run Statement to execute a SQL statement, then Ctrl-End to auto-scroll to the end. You can try the same for Run Script, but first you will probably need to increase the value of Tools|Preferences|Database|Worksheet|Max rows to print in a script. Of course, taking either of these approaches slows things down due to displaying output and scrolling. Same with SQL*Plus. And, as mentioned previously, Java memory management in SQL Developer can cause slow downs and hangs if the result set is large enough.
Here is a way to minimize that delay, avoid hangs, and get a more repeatable result:
1) Save some query to, say, C:\Temp\AllCustomers.sql. For example, "select * from customers;" or "select id from customers;".
2) Run it from a SQL Developer worksheet using Run Script (F5), or from the SQL*Plus command line, with a script like this:
set timing on
set termout off
spool C:\Temp\AllCustomers.lst
@C:\Temp\AllCustomers.sql
spool offEven then you will see that the timing results will vary. Maybe "select *" runs much slower than "select id" because the logical output lines are long and get wrapped into multiple physical output lines in the file. Minimize that by setting linesize to a longer value (but only in SQL*Plus -- it isn't supported in SQL Developer) and repeat the test to see. Maybe SQL*Plus runs it much faster than SQL Developer because one is a command line environment and the other a GUI tool with more overhead. Or maybe the SQL Developer JVM is near its size limit and lots of Java garbage collection is slowing it down. Simple question, complicated answer.
Regards,
Gary
SQL Developer Team
P.S.: And if by chance you are using a version of SQL Developer so old it does not include the output time in the query result tab's toolbar, using Run Script with set timing on is your only recourse.
Edited by: gggraham on Oct 27, 2011 4:54 PM

Similar Messages

  • Retrieve All Rows in Disocverer Plus

    Hi,
    Can we set the 'Retrieve All Rows' option in Discoverer Plus ?
    I can go to Tools > Retrieve All Rows. But is there any way (like a checkbox) we can set it permanantly so that every user need not to look into it ?
    Thanks!
    Yogini

    Hi,
    As a workaround, I changed the value for :
    Tools > options > Query Governor >
    Retrieve Data incrementally in groups of = 10000 (This is the max value ).
    But it didnt work.
    It retrieves first 250 rows (by default) and then it says 'Click to retrieve next 10000 rows'..its not what I want.
    Any Suggestions?
    Yogini

  • Query to retrieve all saved user queries?

    Hi,
    In which table are the user queries saved?
    How can I write a query to retrieve all the user created queries?
    I need to copy all the user queries which are implemented in 1 client implementation to a different client's implementation.
    Thanks.

    Hi Rajesh
    Try This query
    select QName,QString from OUQR .
    You can use the quick copy option if you are using SAP version 9 and if lower you can use the copy express addon..
    SAP Business One 9 - Implemenation Center  Quick Copy  
    Hope Helpful
    Regards
    Kennedy

  • How can I retrieve all row information from a database table.

    I have a jsp file which calls info from columns in a table. My question, is how can I edit it so that it retrieves all the rows?
    I tried using resultset SalesInfo.next() which only retrieves the last row value and resultset SalesInfo.first() which only retrieves the first row value.
    Here is my code
    public ResultSet SalesInfo;
    public void getSalesInfo()
              try
                   Statement stmt = db.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                   SalesInfo = stmt.executeQuery("SELECT sales_id,cust_id,product_id, quantity from sales;");
                   SalesInfo.first();
                   setCartsales_id (SalesInfo.getString("sales_id"));
                   setCartcust_id (SalesInfo.getString("cust_id"));
                   setCartProduct_id(SalesInfo.getString("product_id"));
                   setCartquantity (SalesInfo.getString("quantity"));
              catch(SQLException e )
                   setCartsales_id(e.toString());
                   e.printStackTrace();
    Also I apologise for not having the proper code format as I had a problem with my keyboard.

         public class SalesDB{
        public static synchronized Vector getSalesDetail(Connection connection) throws SQLException{
            String query = "SELECT * from Sales;"
           Statement statement = connection.createStatement();
            ResultSet results = statement.executeQuery(query);
            Vector sale_details = new Vector();
            while(results.next() == true){
         SaleInfo saleInfo = new    SaleInfo(results.getString("sales_id"),results.getDouble("cust_id"),results.getString("product_id"));
                sale_details.add(saleInfo);
            results.close();
            statement.close();
            return sale_details;
    }

  • Query to return ALL rows even those with zero counts

    Hi,
    The following query will return only those rows that have a non zero count value:
    select c.id, a.name, count(*) as XYZ from CON c, CUST a
    where c.help !='1' and (c.id = a.id) group by c.id, a.name order by c.id;
    The results are:
    1 ME 3
    3 YOU 4
    What i want is to return all rows in CUST and the count, XYZ, that correspond to each row in CUST that matches the whare condition above, even if the count is zero.
    ie
    1 ME 3
    2 WE 0
    3 YOU 4
    Can this be done?

    You may want to get the counts then do the outer join. If you simply count with an outer join you will get 1 for 'WE' because there is a row in the cust table with 'WE'. This may work for you;
    with
      cust as (
       select 1 id, 'ME' name from dual union all
       select 2 id, 'YOU' name from dual union all
       select 3 id, 'WE' name from dual),
      con as (
       select 1 id, '2' help from dual union all
       select 1 id, '2' help from dual union all
       select 1 id, '2' help from dual union all
       select 2 id, '2' help from dual union all
       select 2 id, '2' help from dual union all
       select 2 id, '2' help from dual union all
       select 2 id, '2' help from dual)
    -- end of test data 
    select a.id, a.name, nvl(c.cnt,0) xyz
    from cust a, 
       (select id, help, count(*) cnt
       from con
       where help !='1'
       group by id, help) c
    where a.id = c.id(+)

  • Resultset - retrieves all rows or only one at a time

    Hey guys,
    I am using oracle DB. Lets say the query i run has about 1000 records
    when i call:
    prepareStmt(cstmt);
    Rsultset rs = cstmt.executeQuery();
    Do I get all the records, or do i get them one by one
    when i call
    rs.next
    is this DB specific??
    This is simple q, but i been working with oracle and java for a while, and for some reason this never came up.
    thank you.

    The driver implementation is free to retrieve as many or as few rows at a time from the database as it wants. You can suggest to the driver how many rows at a time it should retrieve with setFetchSize(); the driver is free to ignore your suggestion (but many drivers honor it). The fetch size default varies wildly from driver to driver, from 1 row at a time to all rows at a once. For the Oracle thin driver, the default is 10, which is usually too small to give the best performance (I use between 100 and 1,000, usually 250).
    Note that when you're working with a very large ResultSet, a driver that does "all rows at once" can cause you to run out of memory. Also, some drivers will cache every single row when using a scrollable ResultSet (and again run you out of memory) but not do so with a forward-only ResultSet (Oracle has this issue).

  • Bex Query not passing all rows to Crystal reports

    hello experts,
    i have created a bex query that shows all employees from the master data table and links to the cats table to show absence hours...
    in bex, all employees are showing and some of the employees have hours showing for sick time. this is known as a left outer join.
    i have created a report in crystal with this bex query and it does not show rows from the master data that do not have a link to the cats table. only the rows that have a link to the cats table are showing up. (this is compared to a inner join)
    the reason i need the master data from the employee table is that the users want to divide the total hours off(sick time) per department by the total employees in that department.
    here is the sql query from crystal that was created automatically when i used the bex query to created the crystal report.
    SELECT {Measures.4J8L2TQJ3P517ISQ1R4Y8UZ36, Measures.4J9PY3UANRIW2HW15YSOED92A, Measures.4J9TLIO0NDQROSA2YONCW6HB6}
    ON COLUMNS,
    NON EMPTY
    CROSSJOIN(0EMPLOYEE.LEVEL01.MEMBERS, 0EMPLOYEE__0COMP_CODE.LEVEL01.MEMBERS)
    DIMENSION PROPERTIES 0EMPLOYEE.50COMP_CODE, 0EMPLOYEE.50MAST_CCTR ON ROWS
    FROM ZCATS_MC1/ZZCATS_MC1_Q001C
    SAP VARIABLES 0I_DAYS INCLUDING 0CALDAY.20100502 : 0CALDAY.20100903
    i am using the mdx driver, and the integration kit is 2.8.
    any thoughts?
    thanks,
    erik

    Thanks Ingo for the quick response.
    this sounds like a limitation in the integration between bex and crystal because the query shows the correct data and the crystal reports does not. i have tried to add a calculated key figure to all the rows and put a number in it but it still does not show the rows in crystal.
    my issue is that they(the business users) want to know all the employees in the employee master data along with all the sick / illness data.
    do you have a suggestion for this issue?
    do you think that the mdx driver should be updated to allow master data to flow to crystal?
    thx,
    Erik

  • Improving a simple select query, which uses all rows.

    Hi All,
    Please excuse me if the question is too silly. Below is my code
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    Elapsed: 00:00:00.07
    SQL> show parameter optim
    NAME                                 TYPE        VALUE
    object_cache_optimal_size            integer     102400
    optimizer_dynamic_sampling           integer     2
    optimizer_features_enable            string      10.2.0.1
    optimizer_index_caching              integer     0
    optimizer_index_cost_adj             integer     100
    optimizer_mode                       string      ALL_ROWS
    optimizer_secure_view_merging        boolean     TRUE
    plsql_optimize_level                 integer     2
    SQL> explain plan for select SUM(decode(transaction_type,'D',txn_amount,0)) payments_reversals,
      2          SUM(decode(transaction_type,'C',txn_amount,0)) payments,primary_card_no,statement_date
      3             from credit_card_pymt_dtls  group by primary_card_no,statement_date;
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 2801218574
    | Id  | Operation          | Name                  | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |                       |  1912K|    56M|       | 21466   (3)| 00:04:18 |
    |   1 |  SORT GROUP BY     |                       |  1912K|    56M|   161M| 21466   (3)| 00:04:18 |
    |   2 |   TABLE ACCESS FULL| CREDIT_CARD_PYMT_DTLS |  1912K|    56M|       |  4863   (3)| 00:00:59 |
    9 rows selected.
    SQL> select index_name,index_type
      2  from all_indexes
      3  where table_name = 'CREDIT_CARD_PYMT_DTLS';
    INDEX_NAME                     INDEX_TYPE
    INDX_TRANTYPE                  BITMAP
    INDX_PCARD                     NORMAL
    INDX_PSTATEMENT_DATE           NORMALThe query is using all the records in the CREDIT_CARD_PYMT_DTLS table. Transaction type will be either 'C' or 'D'.
    CREDIT_CARD_PYMT_DTLS has 2 million rows and the qury will output 1.5 million rows. Table statisticas are upto date.
    The query now is taking almost 5 minutes. Is thaere any way to reduce the time ?
    Our DB server has 8 CPUs and 8 GB memory. Is the timing genuine ?
    Thanks in Advance.
    Edited by: user11115924 on Apr 29, 2009 2:43 AM
    All the columns used in the query are already indexed. ( Ofcourse, not only for this query.)

    Hi All,
    Thanks for the helps provided. Expecting it once more..
    My actual query is as below
    select     primary_card_no,base_segment_number,atab.previous_balance,current_balance,intrest_amt_due_this_cycle,total_min_amt_due,total_credit_limit,
              total_purchase_this_cycle,total_cash_trns_this_cycle,available_credit_limit,payments,utilization,payment_ratio,payments_reversals,cash_limit,
              available_cash_limit, description
    from
           select primary_card_no,DECODE(base_segment_number,NULL,primary_card_no,base_segment_number) base_segment_number,
                   SUM(previous_balance) previous_balance,SUM(current_balance) current_balance ,SUM(intrest_amt_due_this_cycle) intrest_amt_due_this_cycle,
                   SUM(total_min_amt_due) total_min_amt_due,SUM(total_credit_limit_all) total_credit_limit,
                   SUM(total_purchase_this_cycle) total_purchase_this_cycle,SUM(total_cash_trns_this_cycle) total_cash_trns_this_cycle,
                   SUM(available_credit_limit) available_credit_limit,SUM(payments) payments,
                   (SUM(NVL(current_balance,0)) / SUM(total_credit_limit_all)) * 100 utilization,
                   (SUM(NVL(payments,0)) / DECODE(SUM(previous_balance),0,NULL,SUM(previous_balance))) * 100 payment_ratio,
                   SUM(payments_reversals) payments_reversals,SUM(cash_limit) cash_limit,SUM(available_cash_limit) available_cash_limit
          from
            ( select a.*,NVL(payments_reversals,0)payments_reversals ,NVL(payments,0) payments
              from
                    (  select primary_card_no,previous_balance,current_balance,intrest_amt_due_this_cycle,total_min_amt_due,total_purchase_this_cycle,
                              total_cash_trns_this_cycle,statement_date,available_credit_limit,cash_limit,available_cash_limit,
                           (case when statement_date <= TO_DATE('301108','ddmmyy') then NULLIF(total_credit_limit,0)
                                      else NULLIF((select credit_limit
                                                from ccm_dbf_chtxn_v0 t1
                                                   where t1.batch_id = '011208'
                                                   and SUBSTR(t1.card_number,4) = a.primary_card_no),0)
                             end) total_credit_limit_all
                     from
                        ( select primary_card_no,previous_balance,current_balance,INTREST_AMT_DUE_THIS_CYCLE,
                                    TOTAL_MIN_AMT_DUE,TOTAL_PURCHASE_THIS_CYCLE,TOTAL_CASH_TRNS_THIS_CYCLE,statement_date,
                                   AVAILABLE_CREDIT_LIMIT,cash_limit,available_cash_limit,total_credit_limit
                          from credit_card_master_all@FGBAPPL_LINK
                        ) a
                     where statement_date between ADD_MONTHS(TRUNC(SYSDATE,'mm'),-6) and  TRUNC(SYSDATE,'mm')-1
                 ) a,
                 ( select SUM(decode(transaction_type,'D',txn_amount,0)) payments_reversals,
                               SUM(decode(transaction_type,'C',txn_amount,0)) payments,primary_card_no,TO_CHAR(statement_date,'MON-RRRR') sdate
                    from credit_card_pymt_dtls 
                    group by primary_card_no,TO_CHAR(statement_date,'MON-RRRR')
                 ) b
             where TO_CHAR(a.statement_date,'MON-RRRR')= b.sdate(+)
               and a.primary_card_no= b.primary_card_no(+)
            ) a,
            (  select SUBSTR(a.card_number,4) card_number,base_segment_number,TO_DATE(account_creation_date,'DDMMYYYY') account_creation_date,
                           a.batch_id, credit_limit credit_limit_current
                from
                       (  select *
                           from ccm_dbf_phtxn_v0
                           where batch_id=  (SELECT to_char(MAX(TO_DATE(SUBSTR(BATCH_ID,1,6),'DDMMRR')),'DDMMRR') FROM CCM_MST_V0)
                        ) a,
                        ( select *
                          from ccm_dbf_chtxn_v0
                          where batch_id=(SELECT to_char(MAX(TO_DATE(SUBSTR(BATCH_ID,1,6),'DDMMRR')),'DDMMRR') FROM CCM_MST_V0)
                        ) b
                where a.card_number=b.card_number
                and TO_NUMBER(ROUND(MONTHS_BETWEEN(SYSDATE,TO_DATE(account_creation_date,'DDMMYYYY')),2)) >=6
                and a.company ='BNK'
            ) b
       where a.primary_card_no = b.card_number
       group by primary_card_no,base_segment_number) atab, card_summary_param btab
    where utilization between utilization_low and utilization_high
    and payment_ratio between  payment_ratio_low and payment_ratio_high
    and SIGN(atab.previous_balance) =btab.previous_balanceWhere I have to put the PARALLEL hint for maximum performance?
    Sorry for asking blindly without doing any R&D. Time is not permitting that...
    Edited by: user11115924 on Apr 29, 2009 5:09 AM
    Sorry for the kiddy aliases.. Query is not written by me..

  • Select ... in (select ....) retrieves all rows

    Hi guys,
    I have the following situation:
    Table_A
    ID NUMBER
    NAME VARCHAR2(10)
    TABLE_B
    ID_B
    NAME_B VARCHAR2(10)
    By mistake I did the following query:
    Select *
    from table_a
    where id in (select ID from table_b);
    My question is: Why the query return all rows from TABLE_A if in the inner select (select ID...) I'm didn't write any of the columns that exist on TABLE_B.?
    Hope this is clear.!.
    thanks in advance.

    select *
    from table_a
    where id in (select ID from table_b);The subquery will attempt to resolve the column named "ID" first within the subquery itself, then (if it doesn't find it) in the parent query. Since there is no ID column in table_b, the query actually becomes something like
    select *
    from table_a a
    where a.id in (select a.id from table_b);
    in other words
    select *
    from table_a
    where id = id
    which is equivalent to
    select *
    from table_a
    where id IS NOT NULL
    HTH

  • Personnel Admin AdHoc Query not retrieving all records

    Hi, I recently added a custom info type to a copy of the SAP ad hoc query for Personnel Admin by using the menu path in SQ02>Edit>Change Infotype selection . The query is picking up the new info type and runs fine but does not retrieve all records from the table for a given personnel id. It only retrieves 1 record per id.
    Has anyone dealt with this before and have an easy/quick fix for this?

    Have other users try the query, preferably a user with end user authorization.
    I've had this issue before, I'm an IT person and I customized a Standard infoset.
    During testing, I'm only getting 1 (in my case) Insurance record per employee.
    The end user can see multiple record per employee.
    Btw, did you customize a Global or a Standard Infoset?
    Regards,
    Olekan

  • Query to retrieve all unreconciled BP account transactions

    Hi, can anyone help me to formulate a SQL query to retrieve only the unreconciled transactions from a business partner account.  In other words all the records that display in the account balance enquiry when you tick the "Display Unreconciled Trans. Only" box.

    Hi all,
    No one has been able to help with this one.  It appears to me there should be a simple solution somewhere.  Can anyone be a hero and answer this?
    I am querying the JDT1 table to get the transactions but I get everything and I want to identify only the ones that have not yet been reconciled.
    Cheers,
    Greg.

  • Iterate query result - put specific rows in a collection and do output

    JDeveloper 11.1.1.3.0
    Oracle Lite: 10.2.0.1.0
    Browser: IE 7
    Hi,
    please help me in working on following requirement:
    1. Iterate the View Object Query Result
    2. Do some calculation on the Rows, lets say:
    Concatination of column1 and column2 and place it in a non database Attribute "column3"
    3. How to handle/place the non database attribute?
    4. Fetch specific rows from the query result; there should be a comparison, like checking master and detail hierachy struktur:
    Take Column1_ID (Master) check in columns2_ID (Detail), when found detail take this Row and place it in a buffer (Maybe ArrayList, or something like that)
    5. Show the Chace(ArrayList) to user, in a form of View Object, with standard functions like sorting and filtering
    Till now my process of solving the above requiremnts are:
    To Point 1:
    Created a service method in Application Implementation Class
       public void iterateEmp(){
         EmployeesVOImpl vo = getEmployeesVO1();
         while (vo.hasNext()){
          EmployeesVORowImpl row = (EmployeesVORowImpl)vo.next();
          System.out.println(row.getEmployeeId() + " | " + row.getFirstName() + " | " + row.getLastName() + " | " +  row.getEmail());   
          //row.setCalcCol(row.getFirstName() + "," + row.getLastName());
         }To point 2:
    Added an attribute to the View Object, with updateable and Queryable options. Place it on the JSPX Page.
    With setter method, filled with values, for example (non Database Attributes Name is CalcCol):
    Name:
    //see above code
    row.setCalcCol(row.getFirstName() + "," + row.getLastName());When doing so, on initial Call the values will be representated, but when sorting o filtering will be done, the values then will be erased.
    3. Added an Attribute in View Object "Attributes Panel".
    Here the XML Code of the View Object:
    <?xml version="1.0" encoding="windows-1252" ?>
    <!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
    <!---->
    <ViewObject
      xmlns="http://xmlns.oracle.com/bc4j"
      Name="EmployeesVO"
      Version="11.1.1.56.60"
      BindingStyle="OracleName"
      CustomQuery="true"
      ComponentClass="model.EmployeesVOImpl"
      PageIterMode="Full"
      UseGlueCode="false"
      RowClass="model.EmployeesVORowImpl">
      <DesignTime>
        <Attr Name="_codeGenFlag2" Value="Access|Coll|VarAccess"/>
        <Attr Name="_isExpertMode" Value="true"/>
        <Attr Name="_isCodegen" Value="true"/>
      </DesignTime>
      <SQLQuery>
        <![CDATA[select employee_id, first_name, last_name, email from employees]]>
      </SQLQuery>
      <ViewAttribute
        Name="EmployeeId"
        IsUpdateable="false"
        IsPersistent="false"
        IsNotNull="true"
        PrecisionRule="true"
        Precision="6"
        Scale="0"
        Type="oracle.jbo.domain.Number"
        ColumnType="NUMBER"
        AliasName="EMPLOYEE_ID"
        Expression="EMPLOYEE_ID"
        SQLType="NUMERIC">
        <DesignTime>
          <Attr Name="_DisplaySize" Value="22"/>
        </DesignTime>
      </ViewAttribute>
      <ViewAttribute
        Name="FirstName"
        IsUpdateable="false"
        IsPersistent="false"
        PrecisionRule="true"
        Precision="20"
        Type="java.lang.String"
        ColumnType="VARCHAR2"
        AliasName="FIRST_NAME"
        Expression="FIRST_NAME"
        SQLType="VARCHAR">
        <DesignTime>
          <Attr Name="_DisplaySize" Value="20"/>
        </DesignTime>
      </ViewAttribute>
      <ViewAttribute
        Name="LastName"
        IsUpdateable="false"
        IsPersistent="false"
        IsNotNull="true"
        PrecisionRule="true"
        Precision="25"
        Type="java.lang.String"
        ColumnType="VARCHAR2"
        AliasName="LAST_NAME"
        Expression="LAST_NAME"
        SQLType="VARCHAR">
        <DesignTime>
          <Attr Name="_DisplaySize" Value="25"/>
        </DesignTime>
      </ViewAttribute>
      <ViewAttribute
        Name="Email"
        IsUpdateable="false"
        IsPersistent="false"
        IsNotNull="true"
        PrecisionRule="true"
        Precision="25"
        Type="java.lang.String"
        ColumnType="VARCHAR2"
        AliasName="EMAIL"
        Expression="EMAIL"
        SQLType="VARCHAR">
        <DesignTime>
          <Attr Name="_DisplaySize" Value="25"/>
        </DesignTime>
      </ViewAttribute>
      <ViewAttribute
        Name="CalcCol"
        IsSelected="false"
        IsPersistent="false"
        PrecisionRule="true"
        Type="java.lang.String"
        ColumnType="VARCHAR2"
        AliasName="VIEW_ATTR"
        SQLType="VARCHAR"/>
      <AttrArray Name="KeyAttributes">
        <Item Value="EmployeeId"/>
      </AttrArray>
    </ViewObject>To Point 4:
    There should be a specific sort order, which i have to code in ADF.
    Just to give an overview:
    Colum1 and Column2 (nothing to do with the emp table) have relationship. Several hierachies are existing in the Query Result.
    For identifying the start point of any of these hierachies, i have to iterate through the Query Result and fetch these start point
    and buffer it in an array or something like that.So in the end i have to get the same query Result but with different Sort Order.
    How to buffer theses Rows (Array?) and show in a View Object?
    Can we use the same view Object for solving that, or should we use another View Object which catches the new Result Set?
    To Point 5:
    The Result should be, as mentioned above, a View Object including new Result Set, which can provide standard behavior (sort, filter)
    I hope the requirement is defined clearly enough, so maybe you can make some suggestions on that.
    Thank you for replies.
    Edited by: user9198377 on 13.07.2011 02:52

    Hi.. You can do this without DB View. Have CalcCol transient attribute in VO. Instead of iterating VO rows and setting CalcCol attr, generate View Row Impl class. Inside getCalcCol(), write your logic. This will be called during each and every request so that transient attr data won't become null during sorting and filtering. If your VO is entity driven, do the same in Entity impl class
    Raghu
    Edited by: Raguraman on Sep 5, 2011 9:48 AM

  • PUT QUERY RESULT ON ONE ROW INSTEAD OF MULTIPLE ONE

    Hi
    I have two tables with the column id_table1 to join them.
    My first table "table_one" contain 3 fields and one record.
    id_table1 : 1
    table1 : project1
    date_project : 2005/08/01
    My second table "table_two" contain 3 fileds and 3 records which contain the id 1 on the join column.
    id_table2 : 1
    table2 : pdf
    id_table1 : 1
    id_table2 : 2
    table2 : excel
    id_table1 : 1
    id_table2 : 3
    table2 : text
    id_table1 : 1
    If i did a simply join, the result is appear in 3 lines:
    1 project1 2005/08/01 excel
    1 project1 2005/08/01 pdf
    1 project1 2005/08/01 text
    Is this possible to have this result in one query :
    1 project1 2005/08/01 excel pdf text
    I mean to have the result in one row and a separated column for each item of the table2.
    We know how to do it with one column concatened ("excel pdf text") but not with separated column
    ("excel" "pdf" "text")
    Thanks if someone has a solution.
    Alexandre

    SQL> select e.job, d.dname from emp e, dept d where e.deptno = d.deptno;
    JOB       DNAME
    CLERK     RESEARCH
    SALESMAN  SALES
    SALESMAN  SALES
    MANAGER   RESEARCH
    SALESMAN  SALES
    MANAGER   SALES
    MANAGER   ACCOUNTING
    ANALYST   RESEARCH
    PRESIDENT ACCOUNTING
    SALESMAN  SALES
    CLERK     RESEARCH
    CLERK     SALES
    ANALYST   RESEARCH
    CLERK     ACCOUNTING
    14 rows selected.
    SQL> select e.job,
      2  max(decode(d.dname,'RESEARCH',d.dname,null)) "Research",
      3  max(decode(d.dname,'SALES',d.dname, null)) "Sales",
      4  max(decode(d.dname,'ACCOUNTING',d.dname,null)) "Accounting"
      5  from emp e, dept d where e.deptno = d.deptno
      6  group by job
      7  /
    JOB       Research       Sales          Accounting
    ANALYST   RESEARCH
    CLERK     RESEARCH       SALES          ACCOUNTING
    MANAGER   RESEARCH       SALES          ACCOUNTING
    PRESIDENT                               ACCOUNTING
    SALESMAN                 SALESRgds.

  • How can we retrieve all rows following a particular records in a table.

    Hi all,
    i've to fetch all records following a particular rcord in a table..
    for ex. we have 4 rows :
    col1 col2 col3
    A A1 A2
    B B1 B2
    C C1 C2
    D D1 D2
    How can i retrieve rows following B record. plz. help me
    Thx.

    It depends what you mean by "following". Tables don't have an innate ordering. If you selected all the rows from this table they wouldn't necessarily turn up in that order.
    All you can do is create a query ordering by one or more of the columns (in this case you appear to want lexical order) and then select on the basis that the column values exceed a set of values.
    For example, with your data this happens to work:
    select * from yourtable where col1 > 'B' order by co1;But I very much doubt that this is what you actually need to do, and it is VERY important that you grasp that tables do not have any innate ordering.

  • Retrieve all rows when condition is met

    hi all, consider the following data.
    WITH table1 AS
      SELECT 1 amt, 'dummy' txt, 'R' txt2 , '1X' pid FROM dual UNION ALL
      SELECT 123 amt, 'CATS' txt, 'P' txt2, '1X' pid FROM dual UNION all
      SELECT 145 amt, 'CAR' txt, 'PR' txt2, '1X' pid FROM dual UNION all
      SELECT 165 amt, 'NAME' txt, 'P' txt2, '1X' pid FROM dual UNION ALL
      SELECT 166 amt, 'NAME' txt, 'PK' txt2, '1X' pid FROM dual UNION all
      SELECT 100 amt, 'dummy' txt, 'R' txt2, '2X' pid FROM dual UNION ALL
      SELECT 13 amt, 'CATS2' txt, 'P' txt2, '2X' pid FROM dual UNION all
      SELECT 15 amt, 'CAR2' txt, 'PR' txt2, '2X' pid FROM dual UNION all
      SELECT 15 amt, 'NAME2' txt, 'P' txt2, '2X' pid FROM dual
    )i want to display the following output
    AMT  TXT    TXT2  PID
    ========================
    1    DUMMY  R     1X
    123  CATS   NO    1X
    145  CAR    NO    1X
    165  NAME   NO    1X
    166  NAME   PK    1X
    100 DUMMY   R     2X
    13  CATS2   P     2X
    15  CAR2    PR    2X
    15  NAME2   P     2Xthe logic behind this output is as follow:
    when i find a row where amount is 1 or -1 and txt=dummy, i want to take the pid value of that row and find all the rows with that pid where txt2 in (P,PR) and set the value of txt2 to NO.
    if txt2 is not in P OR PR, then set the column to current Value
    eg. the first row in data above has amt=1 and txt=dummy. i will take the pid of this row which is 1X and find all other rows with that pid value and txt2 in P,PR.
    in this case i found row with amt=123,145,165. i display those rows in output but txt2 change TO NO.
    if you notice , row with amt=166 was not change because txt2 = PK. in the second set of data, i display the data as is since i could not find a row with amt in(1,-1) and txt=dummy
    can someone help me write a query to display the above output?

    WITH table1 AS
      SELECT 1 amt, 'dummy' txt, 'R' txt2 , '1X' pid FROM dual UNION ALL
      SELECT 123 amt, 'CATS' txt, 'P' txt2, '1X' pid FROM dual UNION all
      SELECT 145 amt, 'CAR' txt, 'PR' txt2, '1X' pid FROM dual UNION all
      SELECT 165 amt, 'NAME' txt, 'P' txt2, '1X' pid FROM dual UNION ALL
      SELECT 166 amt, 'NAME' txt, 'PK' txt2, '1X' pid FROM dual UNION all
      SELECT 100 amt, 'dummy' txt, 'R' txt2, '2X' pid FROM dual UNION ALL
      SELECT 13 amt, 'CATS2' txt, 'P' txt2, '2X' pid FROM dual UNION all
      SELECT 15 amt, 'CAR2' txt, 'PR' txt2, '2X' pid FROM dual UNION all
      SELECT 15 amt, 'NAME2' txt, 'P' txt2, '2X' pid FROM dual
    SELECT  amt,
            txt,
            case
              when txt2 in ('P','PR')
                then case max(case when txt = 'dummy' and amt in (1,-1) then 1 end) over(partition by pid)
                       when 1
                         then 'NO'
                       else txt2
                     end
              else txt2
            end txt2,
            pid
      FROM  table1
           AMT TXT   TX PI
             1 dummy R  1X
           123 CATS  NO 1X
           145 CAR   NO 1X
           165 NAME  NO 1X
           166 NAME  PK 1X
           100 dummy R  2X
            13 CATS2 P  2X
            15 CAR2  PR 2X
            15 NAME2 P  2X
    9 rows selected.
    SQL>  SY.
    Edited by: Solomon Yakobson on May 4, 2011 5:35 PM

Maybe you are looking for