Basic PL/SQL script needed

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jack Overhiser

    Basic PL/SQL script needed

    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;
    /
  • SteveE

    #2
    Re: Basic PL/SQL script needed

    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_APPLICATI ON_ERROR(-20001,'Table empty');
    END IF;
    END;
    /

    Steve

    Comment

    Working...