Getting row count
is there any other way than select count(*) from tableName to get the number of rows in a table or to know if the table has any records or not ?
Thanks !
To get an exact count? No, that's the only way.
If you're using the cost-based optimizer (CBO) and your statistics are up to date and you can tolerate an estimate, you could query the NUM_ROWS column of DBA_/USER_/ALL_TABLES for the table in question.
Justin
Similar Messages
-
GETTING ROW COUNTS OF ALL TABLES AT A TIME
Is there any column in any Data dictionary table which gives the row counts for particular table..
My scenario is...i need to get row counts of some 100 tables in our database...
instead of doing select count(*) for each table....is there any way i can do it?
similary How to get column counts for each table..in database .For example
Employee table has 3 columns...empid,empname,deptno....i want count(empid),
count(empname),count(deptno) ...is there any easy way for finding all column counts of each table in data base? is it possible?Why does "select count(mgr) from emp" return null and not 13?Good question ;)
Seems that xml generation in principle can't handle »counting nulls«:
SQL> select xmltype(cursor(select null c from dual)) x from dual
X
<?xml version="1.0"?>
<ROWSET>
<ROW>
</ROW>
</ROWSET>
1 row selected.
SQL> select cursor(select count(null) c from dual) x from dual
Cur
0
1 row selected.
SQL> select xmltype(cursor(select count(null) c from dual)) x from dual
select xmltype(cursor(select count(null) c from dual)) x from dual
Error at line 1
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00229: input source is empty
Error at line 0
ORA-06512: at "SYS.XMLTYPE", line 0
ORA-06512: at line 1
but
SQL> select xmltype(cursor(select count(1) c from dual)) x from dual
X
<?xml version="1.0"?>
<ROWSET>
<ROW>
<C>1</C>
</ROW>
</ROWSET>
1 row selected.Looks like a bug to me ... -
Trying to get row counts for all tables at a time
Hi,
i am trying to get row counts in database at a time with below query but i am getting error:
its giving me ora-19202 error..please advise me
select
table_name,
to_number(
extractvalue(
xmltype(dbms_xmlgen.getxml('select count(*) c from '||table_name))
,'/ROWSET/ROW/C')
count
from all_tables;ALL_TABLES returns tables/views current user has access to. These tables/views are owned not just by current user. However your code
dbms_xmlgen.getxml('select count(*) c from '||table_name)does not specify who the owner is. You need to change it to:
dbms_xmlgen.getxml('select count(*) c from '||owner || '.' || table_name)However, it still will not work. Why? As I said, ALL_TABLES returns tables/views current user has access to. Any type of access, not just SELECT. So if current user is, for example, granted nothing but UPDATE on some table the above select will fail. You would have to filter ALL_TABLES through ALL_SYS_PRIVS, ALL_ROLE_PRIVS, ALL_TAB_PRIVS and PUBLIC to get list of tables current user can select from. For example, code below does it for tables/views owned by current user and tables/views current user is explicitly granted SELECT:
select
t.owner,
t.table_name,
to_number(
extractvalue(
xmltype(dbms_xmlgen.getxml('select count(*) c from '||t.owner || '.' || t.table_name))
,'/ROWSET/ROW/C')
count
from all_tables t,user_tab_privs p
where t.owner = p.owner
and t.table_name = p.table_name
and privilege = 'SELECT'
union all
select
user,
t.table_name,
to_number(
extractvalue(
xmltype(dbms_xmlgen.getxml('select count(*) c from '||t.table_name))
,'/ROWSET/ROW/C')
count
from user_tables t
OWNER TABLE_NAME COUNT
SCOTT DEPT 4
U1 QAQA 0
U1 TBL 0
U1 EMP 1
SQL> SY. -
Get row count for different tables to the same line
How can I get the row count for different tables in one line:
SELECT count(A), count(B), count(C) from table tb_a A , tb_b B, tb_c C;
Thanks!>
Hi,
How can I get the row count for different tables in one line:
SELECT count(A), count(B), count(C) from table tb_a A , tb_b B, tb_c C;Something like this? One of the many uses for CTE's - Common Table Expressions - AKA
subquery refactoring. Worth getting to know - very handy!
with acount as
select count(*) as counta from dual -- put your table name here
bcount as
select count(*) as countb from dual -- put your table name here
ccount as
select count(*) as countc from dual -- put your table name here
select a.counta, b.countb, c.countc from acount a, bcount b, ccount c;HTH,
Paul...
Edited by: Paulie on 25-Jul-2012 17:44 -
Dynamically Add Report Parameters & Get Row Count
In out Portal reports, we are inserting records into our own logging tables at the beginning of the report and updating the record at the end of the report. Currently, the sequential key has been added as a parameter so that we can access it through-out the report execution. Therefore, it displays on the parameter screen. We don't want the users to see this item. Is it possible to add it to the parameter list without having it display on the screen? Can this be done using a procedure in wwv_standard_util? Any other suggestions?
Also, we need to get the total row count of the query. Where can we get this value?
nullIn out Portal reports, we are inserting records into our own logging tables at the beginning of the report and updating the record at the end of the report. Currently, the sequential key has been added as a parameter so that we can access it through-out the report execution. Therefore, it displays on the parameter screen. We don't want the users to see this item. Is it possible to add it to the parameter list without having it display on the screen? Can this be done using a procedure in wwv_standard_util? Any other suggestions?
Also, we need to get the total row count of the query. Where can we get this value?
null -
Getting row count of file into table column
Hi experts,
I want to insert the row count of the file into a table column for generating a summary file containing the detials of all the files generated for the day along with the row count and also for audit purpose.
My design is to create table in the summary file format & update the data's in it then using OdiSqlUnload to generate the required summary file, for this purpose I need to insert the row count of the file generated.
I tried to get the row count using the http://odiexperts.com/get-file-length-and-header-in-operator post. But passing the "lines" value into a ODI variable or inserting into a table column is not working.
Please help or suggest what can be done to achive the above scenario.
Thanks in advance.There are a few excellent examples at :- COUNT
Cheers
John
http://john-goodwin.blogspot.com/ -
Hi all
my requirement is
Get the count of rows returned by the query and if the number exceeds 500 display a warning .
below is my code in process form request
I have put the below code at the end of the Process form request
OAViewObject getrowcountVO = (OAViewObject) am.findViewObject("TrackingVO");
if (getrowcountVO.getRowCount() >= 500)
OAException message1 = new OAException("Row Count Exceeds 500."+" "+getrowcountVO.getRowCount(),OAException.WARNING);
pageContext.putDialogMessage(message1);
else
OAException message4 = new OAException("Row Count does not Exceeds 500."+" "+getrowcountVO.getRowCount(),OAException.WARNING);
pageContext.putDialogMessage(message4);
I am not getting the desired results.
When i run the query for filters i have on my page I get the message Row Count Exceeds 500. irrespective of the number of records shown on the page(85 currently)
Basically i get the message depending on the last queried result not the current one
Please help me
ThanksHi Modify ur code like this
OAViewObject getrowcountVO = (OAViewObject) am.findViewObject("TrackingVO");
getrowcountVO.last();
int iRowCount = getrowcountVO.getFetchedRowCount();
if (giRowCount >= 500)
OAException message1 = new OAException("Row Count Exceeds 500."+" "+getrowcountVO.getRowCount(),OAException.WARNING);
pageContext.putDialogMessage(message1);
else
OAException message4 = new OAException("Row Count does not Exceeds 500."+" "+getrowcountVO.getRowCount(),OAException.WARNING);
pageContext.putDialogMessage(message4);
Thanks
Pratap -
Most efficient way to get row count with a where clause
Have not found a definitive answer on how to do this. Is there a better way to get a row count from a large table that needs to satisfy a where clause like so:
SELECT COUNT(*) FROM BigTable WHERE TypeName = 'ABC'
I have seen several posts suggesting something like
SELECT COUNT(*) FROM BigTable(NOLOCK);
and
selectOBJECT_NAME(object_id),row_count from sys.dm_db_partition_stats
whereOBJECT_NAME(object_id)='BigTable'but I need the row count that satisfies my where clause (i.e.: WHERE TypeName = 'ABC')It needs index to improve the performance.
- create index on typename column
- create a indexed view to do the count in advance
-partition on type name (although it's unlikely) then get count from the system tables...
all those 3 solutions are about indexing.
Regards
John Huang, MVP-SQL, MCM-SQL, http://www.sqlnotes.info -
How to get row count(*) for each table that matches a pattern
I have the following query that returns all tables that match a pattern (tablename_ and then 4 digits). I also want to return the row counts for these tables.
Currently a single column is returned: tablename. I want to add the column RowCount.
DECLARE @SQLCommand nvarchar(4000)
DECLARE @TableName varchar(128)
SET @TableName = 'ods_TTstat_master' --<<<<<< change this to a table name
SET @SQLCommand = 'SELECT [name] as zhistTables FROM dbo.sysobjects WHERE name like ''%' + @TableName + '%'' and objectproperty(id,N''IsUserTable'')=1 ORDER BY name DESC'
EXEC sp_executesql @SQLCommandThe like operator requires a string operand.
http://msdn.microsoft.com/en-us/library/ms179859.aspx
Example:
DECLARE @Like varchar(50) = '%frame%';
SELECT * FROM Production.Product WHERE Name like @Like;
-- (79 row(s) affected)
For variable use, apply dynamic SQL:
http://www.sqlusa.com/bestpractices/datetimeconversion/
Rows count all tables:
http://www.sqlusa.com/bestpractices2005/alltablesrowcount/
Kalman Toth Database & OLAP Architect
SQL Server 2014 Design & Programming
New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012 -
How to get row count of a sql query
After firing a query, how can i get the number of records returned by the query from the database, it should be database indipendent.
Statement stmt = conn.createStatement();
stmt.executeQuery(query);After this I want the number of row i.e. the number of records returned by the database.Number of rows in a ResultSet may be obtained with:
ResultSet rs;
int numRows=rs.last().getRow();
I would have said this too, as a matter of fact I mentioned scrollable result sets in my post, but as I said, not all drivers support this, and he said he needed it to be database independent, so this method should not be used. -
Can we get row counts when using dbms_datapump?
When using dbms_datapump, is there a way to get the rows loaded for each table, similar to the log files when using the command line? I can't seem to find anything. I'm trying to import. Database is 10g r2.
if you don't have to use DBMS_DATAPUMP and can use external tables for the import (both work exactly same way), then you can use ROWCOUNT
INSERT INTO MYTABLE SELECT * FROM EXTERNALTABLE;
v_number_of_rows := SQL%ROWCOUNT ;
COMMIT;
if you have to use DBMS_DATAPUMP then look at "worker status types" in this document
http://www.stanford.edu/dept/itss/docs/oracle/10gR2/appdev.102/b14258/d_datpmp.htm#i997417 -
Unable to get the row count of supplier site for each supplier
Hi,
In the sourcing module, suppliers page is having an advanced table in which there is a field 'supplier' and another filed 'supplier sites' (supplier field is of type picklist).Now, how can i get the count of 'supplier sites' for each supplier???Hi sumit,
Thanks for the reply, can u please help in writing the code to loop through the VO...
I was trying to get the first row and then finding the count of supplier sites, but in each iteration of for loop(for each row) i am getting the same count value for each and every row...
Code :
int j=vo.getrowcount();//count of no. of rows
for (int i=0;i<j;i++)
row=(xxVORowImpl)rowsetiterator.getRowAtRangeIndex(1);
int a=am.getSupplierSitesVO.getRowCount();//this is the view object in the pick list
oapagecontext.writeDiagnostics(this,"value of a is :"+a,1);
this code is giving row count of last row of supplier.
How to get the count for each and every row of supplier sites ?
Thanks. -
I'm trying to get the count for each row to total count for each month
Something like this
Hardware | Jan
Monitors | 5
Processors | 137
Printers | 57
etc........
How can I write a query for this. I can get the Hardware column but don't know how to get the next column.If you can provide more data like sample input DML statements it would have been wonderful..
Assuming is , you need a pivot. Here is an article on basic Pivot..
http://sqlsaga.com/sql-server/how-to-use-pivot-to-transform-rows-into-columns-in-sql-server/
something like this may be..
DECLARE @Input TABLE
Hardware VARCHAR(20),
[Date] VARCHAR(20)
INSERT INTO @Input VALUES('Monitor', '01/01/2014'), ('CPU', '01/01/2014'), ('Monitor', '01/03/2014')
, ('ABC', '01/01/2014'),('Monitor', '02/01/2014')
;WITH CTE AS
SELECT Hardware, LEFT(DATENAME(M, [Date]),3) AS [MonthName] FROM @Input
SELECT *
FROM
SELECT Hardware, [MonthName], COUNT(Hardware) AS Count FROM CTE GROUP BY Hardware, [MonthName]) a
PIVOT (MAX([Count]) FOR [MonthName] IN ([Jan], [Feb])) pvt
Please mark as answer, if this has helped you solve the issue.
Good Luck :) .. visit www.sqlsaga.com for more t-sql code snippets and BI related how to articles. -
Get the count of rows in a table control
Hi Experts,
How do I get the count of the rows in a table control during run time.
I am developing a BDC in which I have to check all entries in a table control.
My requirement is to get the total number of rows in a table control dynamically.
Thanks
KumarHi,
Use a variable when u r passing the records from the internal table to the screen fields
and display the same.
I think this idea may help u.
And pls explain me ur requirement clearly.
Refer to the following link this may help u.
http://sapabapnotes.blogspot.com/2008/03/working-with-ecatt-extended-computer.html
Reward if helpful.
Jagadish -
How to get the row Count of a ResultSet
How to get the row Count of a ResultSet
Hi
I'v tried rennie1's way ,but I only get zero,my code is:
rs.executeQuery("select count(*) from t_test");
if (rs.next()) int rowCount=rs.getInt(1);
I also tried barni's way ,but the method rs.last() and rs.beforeFirst() throw a same Exception
I tried another way,the code is:
while rs.next(){
// Do nothing ,just move the cursour to the last row
int rowCount=rs.getRow()
However,the rowCount still equal zero
Any help would be greatly apprecite!
note:
I get connection by DataSource's JNDI name from client, the Server is Weblogic Server 6, the DBMS is Oracle.
Maybe you are looking for
-
How to print '≤' or '≥' Signs Through SAP script
Hi Experts, i am trying to print 'u2264' or 'u2265' from SAP script. but i am not able to print is. In the final output through printer i am getting '#' printed. Thanks Rajpal Sehrawat
-
My workplace's web site was recently redesigned and launched and with more recent versions of Firefox [including 5] I had both display and functionality problems I hadn't had before and that aren't happening with IE8. Everything from wrong colors to
-
Hello Abap Gurus; I have a report of invoice list.In this report i want shade column of the SD document: Delivery: Item data in which the shade is displayed.I m attaching the code also. *& Report ZRPT_SD_002 REPORT zrpt_sd_002 LINE-SIZE 70 NO STAND
-
Can anyone advise me how to insert a hyperlink into a project I am using Captivate 5?
Can anyone advise me how to insert a hyperlink into a project - I am using Captivate 5
-
Wrt160N as a access point for Canon MP620 Printer
I have a desktop running XP. I am using comcast as my ISP. I have my printer attached to my Linksys wrt160N router via Ethernet. My desktop is also attached via ethernet. I also have a laptop attached to the router via wireless. How do I access t