By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,199 Members | 1,474 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,199 IT Pros & Developers. It's quick & easy.

Basic PL/SQL script needed

P: n/a
I have taken over management of a data warehouse running on
Oracle/Windows. I would like to add some code to the daily load
processing scripts that would check that a table has been loaded, that
is, has more than 0 records. I have .bat scripts that call SQL
scripts. I'd like the SQL scripts to do a record count and if it is
zero end with a non-zero return code. I think what I want to use is a
PL/SQL block in the SQL script. I've come up with the following basic
process. Can someone fill in the correct code to make it work?
Thanks.

DECLARE
recs number := 0;
BEGIN
SELECT count(*) INTO recs FROM WarehouseTable;
IF recs = 0 THEN
EXIT FAILURE;
END IF;
END;
/
Jul 19 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Jack Overhiser wrote:
I have taken over management of a data warehouse running on
Oracle/Windows. I would like to add some code to the daily load
processing scripts that would check that a table has been loaded, that
is, has more than 0 records. I have .bat scripts that call SQL
scripts. I'd like the SQL scripts to do a record count and if it is
zero end with a non-zero return code. I think what I want to use is a
PL/SQL block in the SQL script. I've come up with the following basic
process. Can someone fill in the correct code to make it work?
Thanks.

DECLARE
recs number := 0;
BEGIN
SELECT count(*) INTO recs FROM WarehouseTable;
IF recs = 0 THEN
EXIT FAILURE;
END IF;
END;
/


I haven't tried this, but it should work:

WHENEVER SQLERROR EXIT FAILURE

DECLARE
recs number := 0;
BEGIN
SELECT COUNT(*) INTO recs FROM WarehouseTable WHERE ROWNUM=1;
IF recs = 0 THEN
RAISE_APPLICATION_ERROR(-20001,'Table empty');
END IF;
END;
/

Steve
Jul 19 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.