Limiting number of rows returned by SQVI
I've created a query in SQVI and I need to limit the number of rows returned by the query. (I'm using the query as an exploratory tool, and it's not easy to predict how many records will be returned based on the selection fields I'm using.)
Is there any way to add a 'Maximum No. of Hits' field to the SQVI selection screen similar to what is found when using SE16?
Thanks,
Bob
It's not surprising that you are confused because the documentation doesn't bother to explain what the "fetch size" actually is, it just says that setFetchSize sets it and getFetchSize gets it. As I understand it from some other documents I read about JDBC, the fetch size is a number that may be used internally by the JDBC driver. Here's an example of how I understand it (others, I know you will feel free to correct me if you disagree):
When the driver produces a result set with a very large number of records, it has to generate those records and deliver them to the system that requested them. If the database is not on the same system, then those records must all travel over the network. It could be a performance problem if you had to wait for (say) 80,000 records to travel across the network. Enter the fetch size. If you set the fetch size to 100, then the driver will bring the records across in batches of 100, as the program calls for them. Now, this buffering is transparent to your program; the driver doesn't tell you that it's getting another batch and you can't tell it to get another batch. So it is not a solution to the problem that everybody has here, namely how to display your records 10 per page and allow the user to go back and forth among those pages, like search engines do.
Similar Messages
-
How to get number of rows return in SELECT query
i'm very new in java, i have a question:
- How to get number of rows return in SELECT query?
(i use SQL Server 2000 Driver for JDBC and everything are done, i only want to know problems above)
Thanks.make the result set scroll insensitve, do rs.last(), get the row num, and call rs.beforeFirst(), then you can process the result set like you currently do.
String sql = "select * from testing";
PreparedStatement ps =
con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = ps.executeQuery();
rs.last();
System.out.println("Row count = " + rs.getRow());
rs.beforeFirst();~Tim
NOTE: Ugly, but does the trick. -
How to restrict number of rows returned in a query
Hi frnds,
I'd like to restrict number of rows returned by my query to some 10 rows. how to do that.When I try doing with the rownum<10 its giving results for a particular dept and that too some 6 rows only...btw I'm grouping my table and includes joins from many a table and am ordering the table results by a column.. How to do this..776317 wrote:
Hi frnds,
I'd like to restrict number of rows returned by my query to some 10 rows. how to do that.When I try doing with the rownum<10 its giving results for a particular dept and that too some 6 rows only...btw I'm grouping my table and includes joins from many a table and am ordering the table results by a column.. How to do this..
TELL ME HOW MANY ROWS YOU HAVE IN TABLE?
Because you have only *6 rows* in you column, if you less than 10 rows then it displays only containied/exist rows. nothing much
select ename,empno from emp where rownum < 10;Thanks -
Restrict number of rows returned in a report
Hi All
Does anyone know how to restrict the number of rows returned in a report eg. I want to do a couple of reports based on opportunities/products and return only the top 5 or 10???
Thanks
GailSorry just answered my own question by using the 'is in top' colum filter!
-
How can I limit the number of rows returned by a select stat
How can I limit the number of rows returned by a select
statement. I have a query where I return the number of stores
that are located in a given area.. I only want to return the
first twenty-five stores. In some instances there may be over
200 stores in a given location.
I know is SQL 7 that I can set the pagesize to be 25....
Anything similiar in Oracle 8i?
nullDebbie (guest) wrote:
: Chad Nale (guest) wrote:
: : How can I limit the number of rows returned by a select
: : statement. I have a query where I return the number of
: stores
: : that are located in a given area.. I only want to return the
: : first twenty-five stores. In some instances there may be
: over
: : 200 stores in a given location.
: : I know is SQL 7 that I can set the pagesize to be 25....
: : Anything similiar in Oracle 8i?
: If you are in Sql*Plus, you could add the statement
: WHERE rownum <= 25
: Used together with an appropriate ORDER BY you
: could get the first 25 stores.
Watch out. ROWNUM is run before ORDER BY so this would only
order the 25 selected
null -
Can I limit the number of rows returned on a Select?
Can I limit the number of rows returned on a Select statement? I would be using JDBC in a Java program.
Use Java prepared statements with the equivalent of this SQL*plus script:
VARIABLE n number
EXEC :n := 3;
SELECT rownum FROM all_objects WHERE rownum <= :n;
ROWNUM
1
2
3
EXEC :n := 5;
SELECT rownum FROM all_objects WHERE rownum <= :n;
ROWNUM
1
2
3
4
5 -
Number of rows returned in a query
Is there a way to get the number of rows returned from a query without itterating through the itterator?
Thanks,
YonNo.
Because rows are not all returned until you start interating.
Some times I have seen people do a count query before the normal query, this helps out if you need a count to set things up. -
Number of rows returned for a report
I want to create reports on serveral tables, the number of rows in these tables varies a lot (5, 5000, and the other one can have 10000+ rows).
In the Reports Attributes page, is there a way to set the max number of rows return to the number of rows of the table? For example, for a table that has 10000 rows now, may grow to 20000 rows in the near future. If I specify the "Max Row Count" to 20000, the number may be outgrown yet again soon. If I can specify "Max Row Count" to "Current number of rows in the table" then this problem will not happen. Can it be done?that "Max Row Count" attribute is used to limit the number of rows returned by a htmldb report region. in your case it sounds as if you want to show all available rows all the time. in that case you'd be fine to just put a very large number into that field like 4million. that way you'd always show all your rows.
hope this helps,
raj -
Getting the number of rows returned from ResultSet
Hi,
Does anyone know a method to get the number of rows returned with a query using the Resultset class?
Thanks.Hi 281080,
If your database and JDBC driver support it, in order to use the solution that da-alexj has suggested, you need to create a 'scrollable' "ResultSet" -- the javadoc for method "createStatement()" (in class "java.sql.Connection") has more details.
However, I have found with Oracle 8.1.7.4 database and Oracle (thin) JDBC driver, that part of their implementation of the "last()" method (in class "java.sql.ResultSet") is to actually iterate through the entire "ResultSet" in order to reach the last row. If your "ResultSet" is very large (I tested it with a 100,000 row "ResultSet"), this will take a long time.
Just wanted to make you aware of that.
Of-course, this may be irrelevant to you since I didn't see any mention in your post of what database and JDBC driver you are using.
Hope this has helped you, anyway.
Good Luck,
Avi. -
Need to know how to limit the number of rows returned on Oracle
MS SQL Server has a command called 'set row count'.
We are trying to find similar one on Oracle.
What we are trying to do is that instead of using rownum in the query statement, we would like to find way to limit the number of rows returned. I understand that we can use JDBC resultSet object, but that's not what we want.
I know Oracle has one called arraysize, but this would not limit the number of rows returned either.
Pease help.
ThanksI understand that we can use JDBC resultSet object, but that's not what we want.I'm not sure which feature of ResultSet you use and which not.
But if this question has anything to do with JDBC (that's the forum where you put it), I'd recommend to use Statement.setMaxRows(). This will limit the count of rows which your statement will fetch into it's ResultSet. -
How do you limit the number of rows return from query?
How do you limit the number of rows return from query? Do all databases support this kind of feature?
i think the standard is limit
to get the top 30
select * from mytable LIMIT 30;returns the first 30 rows
also if you want a range
select * from mytable LIMIT 10,30;returns 30 rows starting from 10
this last one is useful for displaying ranges... something similar happens in these forums when viewing topics and messages -
Number of rows returned by the resultset is wrong
Hi All,
I have pasted the code i used for JDBC. The problem is the number of rows returned by the resultset is 5 times that of the original data. Is something wrong with my code. Can anyone pls point out the mistake I have done if any.
public ArrayList dataBreakup(String team, int monthNo, int year) { String sqlDataBreakup = ""; Connection con1 = null; Statement stmt = null; ResultSet rs = null; ArrayList data = new ArrayList(); int noRows = 0; Calendar cal = Calendar.getInstance(); Calendar cal2 = new GregorianCalendar(cal.get(Calendar.YEAR), monthNo, 1); int days = cal2.getActualMaximum(cal2.DAY_OF_MONTH); String start_date = "01-Jan-" + year; String end_date = days + "-" + monthName[cal2.get(Calendar.MONTH)] + "-" + cal2.get(cal2.YEAR); System.out.println("START: " + start_date); System.out.println("END: " + end_date); databaseConnection dbObject = new databaseConnection(); try { con1 = dbObject.GetConnection(); stmt = con1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); sqlDataBreakup = "Select * from EXPENSE_STORE WHERE " + "team='" + team + "'AND category != 'Pending PO''s' AND ACCOUNTING_DATE " + "BETWEEN to_date('" + start_date + "') AND to_date('" + end_date + "')"; rs = stmt.executeQuery(sqlDataBreakup); ResultSetMetaData rsmd = rs.getMetaData(); int numColumns = rsmd.getColumnCount(); data.add(numColumns); for (int i = 1; i < numColumns + 1; i++) { data.add(rsmd.getColumnName(i)); } while (rs.next()) { noRows++; for (int i = 1; i < numColumns + 1; i++) { switch (rsmd.getColumnType(i)) { case java.sql.Types.NUMERIC: data.add(rs.getFloat(i)); break; case java.sql.Types.DATE: data.add(rs.getDate(i)); break; default: data.add(rs.getString(i)); break; } } } data.add(1, noRows); rs.close(); } catch (SQLException SQLe) { System.out.println("DumpData() : SQL Exception" + SQLe.getMessage()); SQLe.printStackTrace(); } catch (Exception e) { System.out.println("DumpData() : Other Exception"); e.printStackTrace(); } finally { dbObject.CloseConnection(con1); } return data; }
Thanks
Cheers N...Only thing i can say is
try the following
replace your function by this one and tell us the console output of the same
public ArrayList dataBreakup(String team, int monthNo, int year) {
String sqlDataBreakup = "";
Connection con = null;
ArrayList data = new ArrayList();
int noRows = 0;
Calendar cal = Calendar.getInstance();
Calendar cal2 = new GregorianCalendar(cal.get(Calendar.YEAR), monthNo, 1);
int days = cal2.getActualMaximum(cal2.DAY_OF_MONTH);
String start_date = "01-Jan-" + year;
String end_date = days + "-" + monthName[cal2.get(Calendar.MONTH)] + "-" + cal2.get(cal2.YEAR);
System.out.println("START: " + start_date);
System.out.println("END: " + end_date);
System.out.println("START: " + start_date);
System.out.println("END: " + end_date);
databaseConnection dbObject = new databaseConnection();
try {
con = dbObject.GetConnection();
sqlDataBreakup = "Select * from EXPENSE_STORE WHERE " +
"team = '"+team+"' AND category != 'Pending PO''s' AND ACCOUNTING_DATE " +
"BETWEEN to_date('"+start_date+"') AND to_date('"+end_date+"')";
System.out.println("-----------sql starts---------------");
System.out.println(sqlDataBreakup);
System.out.println("-----------sql ends---------------");
PreparedStatement pstmt = con.prepareStatement(sqlDataBreakup);
pstmt.setString(1, team);
pstmt.setString(2, start_date);
pstmt.setString(3, end_date);
ResultSet rs = pstmt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int numColumns = rsmd.getColumnCount();
data.add(numColumns);
for (int i = 1; i < numColumns + 1; i++) {
data.add(rsmd.getColumnName(i));
while (rs.next()) {
noRows++;
for (int i = 1; i < numColumns + 1; i++) {
switch (rsmd.getColumnType(i)) {
case java.sql.Types.NUMERIC:
data.add(rs.getFloat(i));
break;
case java.sql.Types.DATE:
data.add(rs.getDate(i));
break;
default:
data.add(rs.getString(i));
break;
//data.add(1, noRows);
System.out.println("no of Rows : " +noRows );
} catch (SQLException SQLe) {
System.out.println("DumpData() : SQL Exception" + SQLe.getMessage());
SQLe.printStackTrace();
} catch (Exception e) {
System.out.println("DumpData() : Other Exception");
e.printStackTrace();
} finally {
dbObject.CloseConnection(con);
return data;
}and try running the sql printed on the screen in your db and then let us know the result.
in this code i have removed some of your code in order to simplify the problem. -
Question about number of rows returned in PL/SQL , SQL
The Child Table has 3 Million plus records, but the loaded table only brings back
approximately 1.2 Million records. Is there anything on the Oracle side that would limit the number of rows returned.Would it be possible to post a test case that explains what you're seeing? It sounds like you are indicating that
SELECT COUNT(*) FROM <<some table>>returns 3 million rows. When some process goes to load a Teradata table by extracting all the information from this Oracle table, the Teradata table ends up with only 1.2 million rows. Is that correct?
If so,
- What is the ETL process?
- Is it possible that the ETL process is encountering an error midway through?
- Is it possible that the ETL process is extracting a subset of the data through a WHERE clause?
- Is the ETL process logging in as the same Oracle user you're using to do the COUNT(*)?
Justin -
Limiting the number of rows returned by SQL or ResultSet
Hello,
I'm trying to limit the number of rows that my application receives to a user-specified value. The user is asked how many accounts they want returned and I want to limit my ResultSet to this amount. I'd prefer to set up the SQL to do this if possible rather than waste time returning more records than necessary to the ResultSet.
If it's not possible to limit the SQL, how can I limit the number when processing the ResultSet?
Or, is there any way to setup a cursor in JDBC without being able to use Stored Procedures?
I'm going up against DB2 using DB2Connect.
Thanks!It's not surprising that you are confused because the documentation doesn't bother to explain what the "fetch size" actually is, it just says that setFetchSize sets it and getFetchSize gets it. As I understand it from some other documents I read about JDBC, the fetch size is a number that may be used internally by the JDBC driver. Here's an example of how I understand it (others, I know you will feel free to correct me if you disagree):
When the driver produces a result set with a very large number of records, it has to generate those records and deliver them to the system that requested them. If the database is not on the same system, then those records must all travel over the network. It could be a performance problem if you had to wait for (say) 80,000 records to travel across the network. Enter the fetch size. If you set the fetch size to 100, then the driver will bring the records across in batches of 100, as the program calls for them. Now, this buffering is transparent to your program; the driver doesn't tell you that it's getting another batch and you can't tell it to get another batch. So it is not a solution to the problem that everybody has here, namely how to display your records 10 per page and allow the user to go back and forth among those pages, like search engines do. -
Need to limit number of rows returned by a query
Hi. Is there a way to limit the rowsets returned to me in a query? I need to get the first 100, then the next hundred, etc until there are no more rows left to retrieve. Someone told me that I should use a cursor to do this. Does anyone have a specific example? Can this be done with a combination of SQL/JDBC?
Thanks in advance...bbetta
nullif you are talking about limiting the number of rows to be returned to the calling program to a managable number of rowa ...
for example the result set size would be 5000 rows and you want to get them in batches of 50 or 100 ..
see the attached link :
JDBC Code Templates
http://technet.oracle.com/sample_code/tech/java/sqlj_jdbc/htdocs/templates.htm#BatchSize
if you want the server side transaction to only return the first 50 or 100 rows even though the result set has more ... then
another approach is required -- possibly as suggested above ...
Maybe you are looking for
-
Can I install photoshop cs5 on more than one computer, if "owned" by a different user?
I want to install my recently purchased photoshop cs5 on my macbook, as well as my imac. The only thing I worry about is that the macbook is in my name and the imac is technically in my dad's name, even though he only uses it to surf the web. The onl
-
How to transfer windows files from old macbookpro under bootcamp to new notebook
Hi all, I'm currently using both Mac OS and Windows XP on my macbookpro, and I'm buying a new one. I know how to transfer everything on the Mac OS, but how do I do so for the Windows part. Please advise. Thanks in advance!
-
Error con el servidor de licencias
Hola que tal! Instale SAP en mi servidor con WServer 2008 y en las terminales el cliente de sap y se podia conectar todo muy bien. Después se cambiaron las maquinas de dominio y entro un servidor Small Business y después de eso en el server se puede
-
Date in External Content Type 1 hour later than MSSQL date
I have an MSSQL table with a date column. I have created an external content type which pulls data from from this MSSQL table. But when the content type is shown in a list in Sharepoint 2010 site, the date is 1 hour later than the date from the MSSQL
-
Differences between "top 5 timed events" and "Top 5 Timed Foreground Events
Dear all, i want to know what is the difference between "top 5 timed events" and "Top 5 Timed Foreground Events" in AWR reports the meaning the same is? thanks to all.