tags:

views:

52

answers:

2

enter code here

I need the count of records of a data base table from unix.

I am calling one sql script from unix and need the record count to any log file .

+1  A: 

You can put the following into a test.sql file:

SET HEADING OFF;
SELECT COUNT(*) FROM dual;
QUIT;

and call it via SQL*Plus via script.

It will output:

         1

since table dual has only one row. You should be able to write that into a log file.

Peter Lang
+1  A: 

You cant to append the output off your script to a named file by rediecting it like this.

$  sqlplus username/password@SID @your_script.sql >> /tmp/whatever.log

If your want to have more than a bald count in the output you'll need to include the boilerplate in the projectors:

SQL> select to_char(sysdate, 'YYYYMMDDHH24MISS')||'::Number of emps = '
  2         , count(*)
  3  from emp
  4  group by to_char(sysdate, 'YYYYMMDDHH24MISS')||'::Number of emps = '
  5  /

TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS   COUNT(*)
--------------------------------- ----------
20100210133747::Number of emps =          16

SQL>
APC