Execute immediate -- udpate statement

Hello,
I am fairly new to scripting sql..pl/sql.. any help will be really appreciated!!
I have a table where i am trying to update one of the column with table name i am passing dynamically.
However i get the invalid identifier error. ORA-00904. The column AD.MIR_PARENT i am updating is of compatible data type.
Any help please.. where i am doing a mistake..
fyi -- the reason i am updating the column with table name is because i need to know which table i make a hit.
DECLARE
p_table varchar2(200);
P_SCHEMA varchar2(200);
p_acct NUMBER;
v_acct NUMBER;
P_column varchar2(200);
cursoR c is
select schema_name, table_name, column_name from addnl_sources where TABLE_NAME = 'ACCT';
    BEGIN
        FOR R IN C LOOP
                                p_TABLE := R.TABLE_NAME;
                                P_SCHEMA := R.SCHEMA_NAME;
                                P_column := R.column_name;
                   execute immediate 'UPDATE ACCT_DELETE AD
            SET AD.MIR_PARENT = '||p_table || '
            WHERE EXISTS (select "'||p_table || '" from "' || P_SCHEMA||'"."'||p_table || '" where "' || P_column ||'" = ad.acct_id )
            AND AD.EXCLUDE IS NULL
            AND AD.ACCT_ID = 472039
            AND AD.MIR_PARENT IS NULL' ;
                        END LOOP;
    end;Edited by: 982806 on Jan 18, 2013 10:47 AM
Edited by: 982806 on Jan 18, 2013 11:04 AM

Welcome to the forum!
Whenever you post provide your 4 digit Oracle version (result of SELECT * FROM V$VERSION)
>
I am fairly new to scripting sql..pl/sql.. any help will be really appreciated!!
I have a table where i am trying to update one of the column with table name i am passing dynamically.
However i get the invalid identifier error. ORA-00904. The column AD.MIR_PARENT i am updating is of compatible data type.
Any help please.. where i am doing a mistake..
>
Just about everything you are doing is a mistake.
1. You using PL/SQL instead of SQL to do this job? That is usually a red flag that something is wrong about what you are trying to do or how you are trying to do it.
2. You are 'fairly new to scripting' and have chosen to use dynamic sql? That is one of the harder techniques to learn and to use properly and is another red flag. Experienced professionals often don't use dynamic sql properly and often use it when they shouldn't.
3. You are using a loop to execute against multiple tables? It is extremely difficult to perform proper error handling and recovery when you do this. What if some of the tables get updated and others don't? How will you know which ones still need to be updated? How will you roll back the data if you need to.
4. You have opened a GIGANTIC opportunity for sql injection where the wrong tables could accidentally be updated. That could corrupt the data and reek havoc on the system. Anyone could, accidentally or intentionally, put the wrong schema, table or column in your lookup table and cause enormous damage.
5. You are using double quotes in PL/SQL? Where did you learn that?
            WHERE EXISTS (select "'||p_table || '" from "' || P_SCHEMA||'"."'||p_table || '" where "' || P_column ||'" = ad.acct_id ) Finally, it is standard practice when you do have a use case for dynamic sql to construct the query in a variable and then print the query or write it to a log file so it can be tested independently.
If you do that you will likely see your error.
query VARCHAR2(4000);
query := 'UPDATE . . .';
execute immediate query;SUMMARY: don't try to automate something until you can first do it manually. Write a query that works properly first. Then, and only then, convert it to dynamic sql.

Similar Messages

  • Problem wile EXECUTE IMMEDIATE DDL statement in procedure

    Hi ,
    This is my procedure and it's getting compiled but while executing procedure getting this error,
    can anyone please tell me how to fix this?
    create or replace procedure construct_Table (name_table IN VARCHAR2)
    IS
    v_tab_name varchar2(40):=NULL;
    v_sql_Stmt varchar2(32767) := NULL;
    finalquery varchar2(32767) :=NULL;
    cursor tp is
    select COLUMN_NAME,DATA_TYPE,DATA_PRECISION,CHAR_LENGTH  from all_tab_cols where table_name=name_table;
    BEGIN
    begin
    select TABLE_NAME into v_tab_name from user_tables where table_name=name_table;
    EXCEPTION
    WHEN no_Data_found
    THEN
    DBMS_OUTPUT.PUT_LINE('No such table exist');
    end;
    if(v_tab_name IS NOT NULL)then
    finalquery := 'CREATE TABLE '||v_tab_name||'_DUMMY (';
       FOR I IN tp LOOP
       if(I.data_type='VARCHAR2') then
       v_sql_stmt := finalquery ||I.column_name||' '||I.data_type||'('||I.char_length||') ';
       elsif(I.data_type='NUMBER') then
       v_sql_stmt := finalquery ||I.column_name||' '||I.data_type||'('||I.DATA_PRECISION ||') ';
       else
       v_sql_stmt := finalquery ||I.column_name||' '||I.data_type ;
       end if;
       finalquery := v_sql_stmt || ',';
       END LOOP;
       finalquery := SUBSTR(finalquery,1,LENGTH(finalquery) - 1)||')';
       dbms_output.put_line(finalquery);
       EXECUTE IMMEDIATE'grant create any table to cmsuser';
       EXECUTE IMMEDIATE finalquery;
    end if; 
    END;
    /This is the error I am getting
    Error starting at line 1 in command:
    begin
    construct_Table ('EMP');
    end;
    Error report:
    ORA-01031: insufficient privileges
    ORA-06512: at "CMSUSER.CONSTRUCT_TABLE", line 30
    ORA-06512: at line 2
    01031. 00000 -  "insufficient privileges"
    *Cause:    An attempt was made to change the current username or password
               without the appropriate privilege. This error also occurs if
               attempting to install a database without the necessary operating
               system privileges.
               When Trusted Oracle is configure in DBMS MAC, this error may occur
               if the user was granted the necessary privilege at a higher label
               than the current login.
    *Action:   Ask the database administrator to perform the operation or grant
               the required privileges.
               For Trusted Oracle users getting this error although granted the
               the appropriate privilege at a higher label, ask the database
               administrator to regrant the privilege at the appropriate label.Thanks ,
    Deekay.

    Deekay,
    If you grant create table privilege and create table in the same procedure, then how you will differentiate that which user you granted the privilege and in which schema, you are creating the table. Here, you are granting to "cmuser", but in the same schema, you are creating the table also. How can a user grant privilege to himself?
    Login as DBA, grant create any table privilege to "cmuser" from dba. Then, you can execute you procedure in "cmuser" schema.

  • EXECUTE IMMEDIATE dynamic statement and return procedure value

    Hello guys,
    How can i return values from procedure using EXECUTE IMMEDIATE statment?
    I made easy example:
    CREATE OR REPLACE PACKAGE pac_test
    IS
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER);
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER);
    END;
    CREATE OR REPLACE PACKAGE BODY pac_test
    IS
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER)
    IS
    BEGIN
    v_out:=(p_age_1+p_age_2+p_age_3)/3;
    END pro_calc_average;
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER)
    IS
    x number;
    v_sql varchar2(4000);
    BEGIN
    v_sql:='pac_test.pro_calc_average('||p_age_1||','||p_age_2||','||p_age_3||',x)';
    dbms_output.put_line(v_sql);
    EXECUTE IMMEDIATE v_sql;
    dbms_output.put_line(' ====> '||x);
    END pro_calc;
    END;
    -- Run procedures [Faild]
    EXEC pac_test.pro_calc(2,9,19);
    When i run:
    DECLARE
    x number;
    BEGIN
    pac_test.pro_calc_average(2,9,9,x);
    dbms_output.put_line(' ====> '||x);
    END;
    It's works, but this is not what i am looking for.
    Thank you guys,
    Sam.

    Hi Sam,
    Like this?
    CREATE OR REPLACE PACKAGE pac_test
    IS
    pac_var number;  /* added new*/
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER);
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER);
    END;
    CREATE OR REPLACE PACKAGE BODY pac_test
    IS
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER)
    IS
    BEGIN
    v_out:=(p_age_1+p_age_2+p_age_3)/3;
    END pro_calc_average;
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER)
    IS
    pack_local_var number;
    v_sql varchar2(4000);
    BEGIN
    --v_sql:='pac_test.pro_calc_average('||p_age_1||','||p_age_2||','||p_age_3||',x)';
    v_sql:=' declare x number; begin pac_test.pro_calc_average('||p_age_1||','||p_age_2||','||p_age_3||',x);
    dbms_output.put_line(x);
    pac_test.pac_var:=x; /* added new*/
    end;';
    dbms_output.put_line(v_sql);
    EXECUTE IMMEDIATE v_sql;
    pack_local_var:=pac_var; /* added new*/
    dbms_output.put_line(pack_local_var); /* added new*/
    END pro_calc;
    END;Declared a package variable.
    But be aware this variable is accessible to everyone and they can read or change its value if they have the right privileges.
    REgards,
    Bhushan

  • [Solved] Reference apex_application.g_fXX in "execute immediate" statement

    Hi!
    I created a dynamically generated tabular form - the number of columns is not known in advanced. Each cell of the form is a text item generated with apex_item.text().
    I want to write an after-submit process that saves the values from the form into a database table. In this process I already know how many columns there are in the report so I want to do the following:
    --for each row...
    for i in 1..apex_application.g_f01.count loop
      -- and for each column in that row (number of columns is in v_col_count)
      for j in 1..v_col_count loop
        -- get the value of text item
        v_query := 'select apex_application.g_f0' || j || '(' || i || ')' || ' from dual';
        execute immediate v_query into v_value;
        -- now do some DML with v_value
      end loop;
    end loop;The problem is that I get an error: ORA-06553: PLS-221: 'G_Fxx' is not a procedure or is undefined where xx is the number from the generated query.
    My question is - am I doing something wrong or is is just not possible to reference apex_application.g_fxx in "execute immediate"? Will I have to manually check for all 50 possibilites of apex_application.g_fxx? Is there another way?
    TIA,
    Jure

    Well now I know what was wrong and what you were trying to tell me - apex_application.g_fxx is not visible in "plain" SQL. And now I also have a solution to this problem. The point is to wrap the select statement with begin - end block so that the statement is rendered as pl/sql:
    --for each row...
    for i in 1..apex_application.g_f01.count loop
      -- and for each column in that row (number of columns is in v_col_count)
      for j in 1..v_col_count loop
        -- get the value of text item
        v_query := 'begin select apex_application.g_f0' || j || '(:i)' || ' into :x from dual; end;';
        execute immediate v_query using i, out v_value;
        -- now do some DML with v_value
      end loop;
    end loop;This works great :).
    Jure

  • How can i have '&' in EXECUTE IMMEDIATE statement?

    I have PL/SQL procedure, where i will be inserting data to a table. Data which i am inserting is having a '&' value in it. If i use the below statement for insert then sqlplus is prompting for the value '&' like a substitution value while compile this procedure.
    EXECUTE IMMEDIATE 'INSERT INTO TABLE_TEST VALUES (:1,:2)' USING 'root/direct/&text', SYSDATE;If i replace the '&' by assigning this value to VARCHAR field then it is working properly. But when i populate an xml from this table using DBMS.XMLGEN, then the value '&' is not entity escaped in the XML which is normally replaced with '&' in XML.
    Please help.

    Vel wrote:
    i can't go by both ways because i am using '&' in various files to get some values. Also in this package i am using the '&' to get another substitution variable. Is there any other workaround possible?I prefer not to mess with server-side SQL and PL/SQL code to fix, or work around, a problem on the client-side. Not a very sensible thing IMO.
    In such a case as you've described, I would set the substitution character to a character that I'm not using in server-side code. I have done this a couple of times in the past for db create and installation scripts. Oracle uses the same approach for their Apex installation scripts.
    I think Oracle uses the +#+ character for their Apex install scripts. E.g.
    set define '#'I think I used the tilde (char <i>~</i>) at a stage as substitution char as it is very seldom used in PL/SQL and SQL code.
    The bottom line is that you will need to change your code. Set define off and on where needed to ensure substitution only happens where needed. Set the substitution char to a different char and update your substitution variables. Or hack your server-side code (as suggested above) and use the char() function instead.

  • How to execute a statement in forms procedure like SQL EXECUTE IMMEDIATE

    Hi to all,
    In a form I have created this procedure:
    PROCEDURE insert_rows (
    tbName IN VARCHAR2,
    list_of_fields IN VARCHAR2,
    origin_table IN VARCHAR2,
    wCondition IN VARCHAR2 DEFAULT NULL)
    IS
    where_clause VARCHAR2 (2000) := ' WHERE ' || wCondition ;
    table_to_fill VARCHAR2 (30);
    BEGIN
    -- Exist the table ?
    SELECT OBJECT_NAME INTO table_to_fill FROM USER_OBJECTS
    WHERE OBJECT_NAME = UPPER(origin_table) AND OBJECT_TYPE = 'TABLE' ;
    IF wCondition IS NULL THEN
    where_clause := NULL;
    END IF ;
    EXECUTE IMMEDIATE 'INSERT INTO ' || table_to_fill || ' SELECT ' || list_of_fields || ' FROM ' || origin_table || where_clause ;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    -- Here the Alert
    END;
    But, when I compile this error is displayed:
    Function not supported from client side application corresponding to SQL statement EXECUTE IMMEDIATE
    How can to correct this script for my form ?
    I hope in Your help.
    Best Regards
    Gaetano

    You have two options:
    1)To create this procedure in database
    2)Yo use the forms built-in FORMS_DDL instead of execute immediate , altering the one provided
    Sim

  • How to use using clause in execute immediate statement??

    Hi ALL,
    Can u help me ....
    This is the code which I have written...
    declare
    type rec_typ is table of forall_test%rowtype;
    v_rectype rec_typ:=rec_typ();
    begin
    --poputating records
    for i in 1..10000 loop
    v_rectype.extend;
    v_rectype(v_rectype.last).id:=i;
    v_rectype(v_rectype.last).code:=to_char(i);
    v_rectype(v_rectype.last).description:='Description :'||to_char(i);
    end loop;
    execute immediate 'truncate table forall_test';
    forall i in v_rectype.first..v_rectype.last
    execute immediate 'insert into forall_test values :1' using v_rectype(i);
    commit;
    end;
    But I am getting this ERROR....
    execute immediate 'insert into forall_test values :1' using v_rectype(i);
    ERROR at line 14:
    ORA-06550: line 14, column 61:
    PLS-00457: expressions have to be of SQL types
    ORA-06550: line 14, column 1:
    PL/SQL: Statement ignored
    Thanks & Regards,
    T.Halder

    Thatmeans using statement cannot be a non sql type.True: You need an sql type for this:
    e.g. with
    create or replace type emp_typ
    as
       object (empno number (4),
               ename varchar2 (10 byte),
               job varchar2 (9 byte),
               mgr number (4),
               hiredate date,
               sal number (7, 2),
               comm number (7, 2),
               deptno number (2))
    create or replace type emp_tab as table of emp_typ
    /you can do
    --- an empty test table
    SQL> create table emp2
    as
       select *
       from emp
       where 1 = 2
    Table created.
    SQL> declare
       emp2_tab       emp_tab;
    begin
      /* fill the collection */
       select emp_typ (empno,
                       ename,
                       job,
                       mgr,
                       hiredate,
                       sal,
                       comm,
                       deptno)
       bulk collect into emp2_tab
       from emp
       where empno like '77%';
      --  forall loop
       forall c in 1 .. emp2_tab.count
          execute immediate 'begin
                               insert into emp2 select * from table(cast(emp_tab(:1) as emp_tab)) t;
                               update emp2 set sal = null where empno = (:1).empno and empno = 7788;
                             end;' using emp2_tab (c);
    end;
    PL/SQL procedure successfully completed.
    SQL> select empno, ename, sal from emp2
         EMPNO ENAME             SAL
          7782 CLARK            2450
          7788 SCOTT               
    2 rows selected.

  • Problem in Update statement using Execute Immediate

    Hi All,
    I am facing problem in update statement.
    I am creating dynamic sql and use "execute immediate" statement to execute a update statement.
    But it is not updating any thing there in the table.
    I have created a query like :
    update_query='Update '|| Table_Name ||' t set t.process_status =''Y'' where t.tid=:A';
    Execute immediate update_query using V_Id;
    commit;
    But it is not updating the table.
    I have a question , is execute immediate only does insert and delete?
    Thanks
    Ashok

    SQL> select * from t;
                     TID P
                     101 N
    SQL> declare
      2     V_Id          number := 101;
      3     Table_Name    varchar2(30) := 'T';
      4     update_query  varchar2(1000);
      5  begin
      6     update_query := 'Update '|| Table_Name ||' t set t.process_status =''Y'' where t.tid=:A';
      7     Execute immediate update_query using V_Id;
      8     commit;
      9  end;
    10  /
    PL/SQL procedure successfully completed.
    SQL> select * from t;
                     TID P
                     101 Y                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to run a EXECUTE IMMEDIATE statement in a Interactive Report

    Hello all!!
    I need to make a dinamic construction of a query to execute in a Interactive Report, but the Region Source only allows simple SELECT statements. There is any way to run a EXECUTE IMMEDIATE statement in a Interactive Report Region Source?
    Regards Pedro.

    Thank you Andy for your reply.
    I have been testing for a while the use of a collection in the interactive report but i am unable to load data in the interactive report.
    I created the collection successfully in the SQL Commands with the code:
    declare
    v_sql varchar2(32000);
    begin
    v_sql:='select ename, job from emp';
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY('coleccao_emp',v_sql,'NO' );
    end;
    I tested successfully the creation of the collection with the query:
    SELECT c001, c002
    FROM APEX_collections
    WHERE collection_name = 'COLECCAO_EMP'
    My problem is: the data of the collection are returned in the SQL Commands but when i run the query statament in an interactive report, report or even a Pl/Sql region in my application the data aren't displayed, only the message (No data found).
    Can someone explain why, besides the collection is populated the interactive can not print the results.
    Regards Pedro.

  • Error on execute immediate statement ?

    declare
    v_statement VARCHAR2(500);
    CURSOR Mov_Tab_to_ERP_Tbsp
    IS
    select t.table_name
    from user_tables t
    where t.tablespace_name='SYSTEM' or t.tablespace_name='USER';
    BEGIN
    FOR y IN Mov_Tab_to_ERP_Tbsp
    LOOP
    /* Build the statement */
    v_statement := 'Alter table ' || y.table_name ||' Move tablespace ERP;';
    execute immediate v_statement;
    END LOOP;
    END;
    I am getting the error of
    ORA-00911: invalid character
    ORA-06512: at line 14
    it is correct by the book....what could be the reason. ...Thanks in advance.

    Hi,
    try below given code
    DECLARE
       v_statement   VARCHAR2 (500);
       CURSOR mov_tab_to_erp_tbsp
       IS
          SELECT t.table_name
            FROM user_tables t
           WHERE t.tablespace_name = 'SYSTEM' OR t.tablespace_name = 'USER';
    BEGIN
       FOR y IN mov_tab_to_erp_tbsp
       LOOP
    /* Build the statement */
          v_statement :=
                        'Alter table ' || y.table_name || ' Move tablespace ERP';/* removed ';'*/
          EXECUTE IMMEDIATE v_statement;
       END LOOP;
    END;*009*

  • EXECUTE IMMEDIATE problem with long SQL statement

    Hello Experts,
    I am having a BIG problem executing script inside the iSQLPlus. This script has 29 blocks. 27 of those blocks are working OK, but block #26 and #27 are giving me the error on the "EXECUTE IMMEDIATE" statement. The length of the SQL statements in those two blocks is more then 4000 characters and I can not use a string variable to keep the SQL statement. If I pass the entire SQL statement as a string to the "EXECUTE IMMEDIATE" command, I am getting the error inside the iSQLPlus:
    Error writing 26 Bad Value. -907: ORA-00907: missing right parenthesis
    Error writing 27 Bad Value. -907: ORA-00907: missing right parenthesis
    The script code is shown below:
    SET ECHO OFF;
    SET VERIFY OFF;
    SET PAGESIZE 78;
    SET LINESIZE 132;
    SET SERVEROUTPUT ON;
    SET FEEDBACK OFF;
    --PROMPT;
    --PROMPT REPORT BEING PROCESSED - PLEASE WAIT.
    --PROMPT;
    DECLARE
    l_count NUMBER;
    s_user VARCHAR2(50);
    s_command VARCHAR2(4000);
    CURSOR INREC (BATCH_PARAM NUMBER) IS
    SELECT BATCH,
    AK$DEALER,
    FK$TRIP_TICKET,
    INVOICE,
    CONTINUATION_IND,
    TRIP_DATE,
    SPL_NO,
    AK$MRIS_AREA,
    AK$MRIS_COUNTY,
    TIME_FISHED,
    TIME_UNITS,
    DEPTH,
    DEPTH_UNITS
    FROM T$TRIP_TICKET_WORK
    WHERE TO_NUMBER(BATCH) = BATCH_PARAM;
    DATEST DATE;
    BEGDATE DATE;
    ENDATE DATE;
    FLAGCNT NUMBER := 0;
    MSGNUM NUMBER;
    MAXLIC VARCHAR2(7);
    BEGIN
    select sys_context('USERENV','SESSION_USER') into s_user from dual;
    select count(*) into l_count from all_tables where table_name = 'BATCHERS_REPORT' and owner=s_user;
    --the table 'BATCHERS_REPORT' alwase exist for the MRIS user role,co we have to check if more then 1 record exist:
    IF l_count > 0 then
         --TRUNCATE TABLE BATCHERS_REPORT REUSE STORAGE;
         s_command := 'TRUNCATE TABLE BATCHERS_REPORT REUSE STORAGE';
         execute immediate s_command;
    ELSE
         --CREATE TABLE BATCHERS_REPORT AS (SELECT * FROM MRIS.BATCHERS_REPORT);
         --s_command := 'CREATE TABLE BATCHERS_REPORT AS SELECT * FROM MRIS.BATCHERS_REPORT WHERE 1=2';
    s_command := 'CREATE TABLE BATCHERS_REPORT
    (BATCH VARCHAR2(6),
    AK$DEALER VARCHAR2(9),
    FK$TRIP_TICKET NUMBER,
    INVOICE     VARCHAR2(13),
    CONTINUATION_IND VARCHAR2(1),
    TRIP_DATE     VARCHAR2(8),
    SPL_NO          VARCHAR2(9),
    AK$MRIS_AREA VARCHAR2(7),
    AK$MRIS_COUNTY VARCHAR2(3),
    TIME_FISHED VARCHAR2(3),
    TIME_UNITS VARCHAR2(1),
    DEPTH VARCHAR2(5),
    DEPTH_UNITS VARCHAR2(1),
    AK$MRIS_GEAR VARCHAR2(4),
    AK$SPECIES VARCHAR2(4),
    SPECIES_SIZE VARCHAR2(8),
    WEIGHT_IN_POUNDS NUMBER(10,2),
    UNIT_PRICE NUMBER(5,3),
    ERROR_NUM NUMBER)';
         execute immediate s_command;
         execute immediate 'commit';          
    END IF;
    DBMS_OUTPUT.PUT_LINE('.');
    DBMS_OUTPUT.PUT_LINE('. PROCEDURE NAME = BATCHERS');
    DBMS_OUTPUT.PUT_LINE('. STARTING TIME = '||TO_CHAR(SYSDATE,'MM/DD/YYYY HH:MI:SS'));
    SELECT MAX(DATE_B), MAX(DATE_E)
    INTO BEGDATE, ENDATE
    FROM T$BATCH_HEADER
    WHERE PK$BATCH = &BATCHNUM;
    SELECT LPAD(MAX(LIC_NUM),7,'0') INTO MAXLIC
    FROM T$SWP_LICENSE;
    BEGIN
    MSGNUM := 1;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    AK$MRIS_GEAR, ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    G.AK$MRIS_GEAR, '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_GEAR_WORK G,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||') AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND (G.AK$MRIS_GEAR IS NULL
    OR G.AK$MRIS_GEAR NOT IN (SELECT TO_CHAR(PK$MRIS_GEAR) FROM MT$MRIS_GEAR))
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    G.AK$MRIS_GEAR, '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_GEAR_WORK G,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND (G.AK$MRIS_GEAR IN (110, 120, 130)
    AND NOT EXISTS (SELECT * FROM T$TRIP_TICKET_GEAR_WORK G2
    WHERE G2.AK$TRIP_TICKET = G.AK$TRIP_TICKET
    AND G2.AK$MRIS_GEAR = 40))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 2;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$MRIS_GEAR,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    NULL,
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.AK$MRIS_AREA != '||'''0'''||')
    AND (T.AK$MRIS_AREA NOT IN (SELECT TO_CHAR(PK$MRIS_AREA) FROM MT$MRIS_AREA))
    AND NOT (T.AK$DEALER IN ('||'''WD0004606'''||', '||'''WD0003877'''||', '||'''WD0000157'''||', '||'''WD0001326'''||', '||'''WD0000426'''||')
    AND
    T.AK$MRIS_AREA IN ('||'''161.2'''||', '||'''301.2'''||', '||'''720.2'''||', '||'''760.2'''||', '||'''771.2'''||', '||'''772.2'''||', '||'''773.2'''||', '||'''780.2'''||', '||'''800.1'''||', '||'''821.2'''||', '||'''882.2'''||'))
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR,
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE ((TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'))
    AND ((T.FK$TRIP_TICKET = G.AK$TRIP_TICKET))
    AND ((INSTR(T.AK$MRIS_AREA,'||'''.'''||') = 0) OR
    (INSTR(T.AK$MRIS_AREA,'||'''.'''||') > 0 AND T.AK$MRIS_AREA NOT LIKE '||'''%.9%'''||'))
    AND ((G.AK$MRIS_GEAR IN ('||'''30'''||', '||'''6750'''||', '||'''6760'''||') OR
    G.AK$MRIS_GEAR = '||'''70'''||' OR
    G.AK$MRIS_GEAR BETWEEN '||'''4700'''||' AND '||'''4780'''||' or
    g.ak$mris_gear = '||'''80'''||' or
    g.ak$mris_gear between '||'''5300'''||' and '||'''5360'''||'))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    -- Error number 3 not in use - Logic moved to ctyarflg.sql
    BEGIN
    MSGNUM := 4;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS, '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.SPL_NO IS NULL
    OR NOT EXISTS (SELECT * FROM T$SWP_LICENSE L
    WHERE L.AK$LICENSE_TYPE = '||'''SP'''||'
    AND L.LIC_NUM = SUBSTR(T.SPL_NO,3,7)))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION
    WHEN INVALID_NUMBER THEN
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS, '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.SPL_NO = '||''' '''||'
    OR T.SPL_NO IS NULL
    OR SUBSTR(T.SPL_NO,3,7) NOT BETWEEN '||'''0000000'''||' AND '||'''9999999'''||'
    OR LPAD(RTRIM(LTRIM(SUBSTR(T.SPL_NO,3,7))),7,'||'''0'''||') > '|| MAXLIC ||')';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 5;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND S.WEIGHT_IN_POUNDS < 1';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 6;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T
    WHERE ((TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'))
    AND ((T.TIME_UNITS = '||'''D'''||' AND T.TIME_FISHED < 1) OR
    (T.TIME_UNITS = '||'''N'''||'))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 7;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (S.WEIGHT_IN_POUNDS > 5500)
    AND (S.AK$SPECIES BETWEEN 131 AND 150 OR
    S.AK$SPECIES BETWEEN 203 AND 217)';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 8;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE ((TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'))
    AND ((T.FK$TRIP_TICKET = S.AK$TRIP_TICKET))
    AND ((S.AK$SPECIES in (135, 163, 185, 223, 227, 315, 316, 490, 494, 795, 805)) OR
    (S.AK$SPECIES BETWEEN 169 AND 171) OR
    (S.AK$SPECIES IN (263, 265, 310, 311, 312)) OR
    (((S.AK$SPECIES BETWEEN 812 AND 825) OR (S.AK$SPECIES = 255)) AND S.AK$TRIP_TICKET IN (SELECT AK$TRIP_TICKET
    FROM T$TRIP_TICKET_GEAR_WORK
    WHERE AK$MRIS_GEAR != 9955)))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 9;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (S.AK$SPECIES = 0
    OR S.AK$SPECIES IS NULL
    OR S.AK$SPECIES NOT IN (SELECT TO_CHAR(PK$SPECIES)
    FROM MT$SPECIES))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 10;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE ((TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'))
    AND ((T.FK$TRIP_TICKET = S.AK$TRIP_TICKET))
    AND ((S.AK$SPECIES = 401 AND T.AK$DEALER != '||'''WD000573'''||') OR
    (S.AK$SPECIES = 405 AND T.AK$MRIS_COUNTY != 26) OR
    (S.AK$SPECIES in (187, 239, 307, 324, 341, 342, 363, 365,
    367, 383, 387, 427, 450, 457, 461)))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 11;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND S.AK$SPECIES = 251 AND (S.WEIGHT_IN_POUNDS > 49 OR S.UNIT_PRICE > .99)';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 12;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (S.WEIGHT_IN_POUNDS > 50)
    AND (S.AK$SPECIES BETWEEN 149 AND 150 OR
    S.AK$SPECIES BETWEEN 217 AND 218)';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 13;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND S.WEIGHT_IN_POUNDS > 1000
    AND S.AK$SPECIES IN (175, 176, 178)';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 14;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE ((TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'))
    AND ((T.FK$TRIP_TICKET = S.AK$TRIP_TICKET))
    AND ((S.AK$SPECIES = 302 AND S.UNIT_PRICE >= 4.00) OR
    (S.AK$SPECIES = 303 AND (S.UNIT_PRICE > 0 AND S.UNIT_PRICE < 4.00)))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 15;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND S.AK$SPECIES = 345
    AND S.UNIT_PRICE > .06';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 16;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE ((TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'))
    AND ((T.FK$TRIP_TICKET = S.AK$TRIP_TICKET))
    AND ((LTRIM(S.SPECIES_SIZE) IS NOT NULL))
    AND ((S.AK$SPECIES = 325 AND RTRIM(ltrim(S.SPECIES_SIZE,'||''' '''||'),'||''' '''||') != '||'''J'''||') OR
    (S.AK$SPECIES = 327 AND RTRIM(ltrim(S.SPECIES_SIZE,'||''' '''||'),'||''' '''||') != '||'''L'''||') OR
    (S.AK$SPECIES = 329 AND RTRIM(ltrim(S.SPECIES_SIZE,'||''' '''||'),'||''' '''||') != '||'''M'''||') OR
    (S.AK$SPECIES = 331 AND RTRIM(ltrim(S.SPECIES_SIZE,'||''' '''||'),'||''' '''||') != '||'''S'''||') OR
    (S.AK$SPECIES = 332 AND RTRIM(ltrim(S.SPECIES_SIZE,'||''' '''||'),'||''' '''||') != '||'''LT'''||'))
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (S.AK$SPECIES IN (325, 327, 329, 331, 332))
    AND (S.UNIT_PRICE BETWEEN .01 AND 1.50)
    AND NOT (S.AK$SPECIES = 332 AND RTRIM(LTRIM(S.SPECIES_SIZE,'||''' '''||'),'||''' '''||') = '||'''LT'''||')
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (S.UNIT_PRICE < .01 AND S.AK$SPECIES = 332)
    AND (RTRIM(LTRIM(SPECIES_SIZE,'||''' '''||'),'||''' '''||') != '||'''LT'''||' or species_size is null)';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 17;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (S.AK$SPECIES = 103 OR
    S.AK$SPECIES BETWEEN 414 AND 416 OR
    S.AK$SPECIES BETWEEN 471 AND 474)
    AND (SUBSTR(T.TRIP_DATE,5,2) BETWEEN '||'''03'''||' AND '||'''05'''||')
    AND (ROUND(TO_NUMBER(T.AK$MRIS_AREA) * 10, 1) NOT IN
    (19, 29, 39, 49, 59, 69, 79, 89, 99, 109, 119,
    7179, 7229, 7289, 7329, 7369, 7419, 7449, 7489))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 18;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (S.WEIGHT_IN_POUNDS > 50)
    AND (S.AK$SPECIES = 103)
    and substr(t.trip_date,5,2) = '||'''04'''||'
    AND (ROUND(TO_NUMBER(T.AK$MRIS_AREA) * 10, 1) IN
    (19, 7179, 7229, 7289, 7329, 7369, 7419, 7449, 7489))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 19;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND S.AK$SPECIES BETWEEN 325 AND 332
    AND SUBSTR(T.TRIP_DATE,5,4) BETWEEN '||'''0516'''||' AND '||'''1014'''||'
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = &BATCHNUM
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND S.AK$SPECIES BETWEEN 317 AND 318
    AND SUBSTR(T.TRIP_DATE,5,4) BETWEEN '||'''0401'''||' AND '||'''0805'''||'';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 20;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND S.AK$SPECIES = 141
    AND S.WEIGHT_IN_POUNDS > 300
    AND T.TRIP_DATE BETWEEN '||'''19971220'''||' AND '||'''19971231'''||'';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 21;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE ((TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'))
    AND ((T.FK$TRIP_TICKET = S.AK$TRIP_TICKET))
    AND ((S.AK$SPECIES = 209))
    AND ((T.AK$MRIS_AREA BETWEEN 0 AND 11))
    AND ((T.TRIP_DATE BETWEEN '||'''19981016'''||' AND '||'''19990131'''||') OR
    (T.TRIP_DATE BETWEEN '||'''19990315'''||' AND '||'''19990401'''||') OR
    (T.TRIP_DATE BETWEEN '||'''19990415'''||' AND '||'''19990901'''||'))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 22;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND S.AK$SPECIES = 193
    AND S.WEIGHT_IN_POUNDS > 250
    and substr(t.trip_date,1,4) > '||'''1996'''||'';
    -- AND TO_NUMBER(TO_CHAR(TO_DATE(T.TRIP_DATE,'YYYYMMDD'),'YY')) >= 96;
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 23;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (S.AK$SPECIES = 193)
    AND NOT (SUBSTR(T.TRIP_DATE,5,2) BETWEEN '||'''06'''||' AND '||'''08'''||')';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 24;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE ((TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'))
    AND ((T.FK$TRIP_TICKET = S.AK$TRIP_TICKET))
    AND ((S.AK$SPECIES = 458 AND S.WEIGHT_IN_POUNDS > 50) OR
    (S.AK$SPECIES = 449 AND S.WEIGHT_IN_POUNDS > 30) OR
    (S.AK$SPECIES = 113 AND S.WEIGHT_IN_POUNDS > 50))
    and substr(t.trip_date,1,4) >= '||'''1996'''||'';
    -- AND ((TO_NUMBER(TO_CHAR(TO_DATE(T.TRIP_DATE,'||'''YYYYMMDD'''||'),'||'''YY'''||')) >= 96))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 25;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$MRIS_GEAR,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR,
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE ((TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'))
    AND ((T.FK$TRIP_TICKET = G.AK$TRIP_TICKET))
    AND ((G.AK$MRIS_GEAR IN (30, 70, 80)) OR
    (G.AK$MRIS_GEAR BETWEEN 4700 AND 4790) OR
    (G.AK$MRIS_GEAR BETWEEN 5300 AND 5390) OR
    (G.AK$MRIS_GEAR BETWEEN 6700 AND 6790))
    AND ((TO_NUMBER(T.AK$MRIS_AREA) - ROUND(TO_NUMBER(T.AK$MRIS_AREA)) NOT BETWEEN .85 AND .95))
    AND ((ROUND(TO_NUMBER(T.AK$MRIS_AREA)) <= 0))';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 26;
    execute immediate 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$MRIS_GEAR,AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    NULL, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND SUBSTR(T.TRIP_DATE,5,2) BETWEEN '||'''04'''||' AND '||'''10'''||'
    AND S.AK$SPECIES = 165
    AND S.WEIGHT_IN_POUNDS > 3500
    AND T.AK$MRIS_COUNTY IN ('||'''26'''||', '||'''28'''||', '||'''55'''||', '||'''65'''||', '||'''74'''||')
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    NULL,S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND SUBSTR(T.TRIP_DATE,5,2) BETWEEN '||'''04'''||' AND '||'''10'''||'
    AND S.AK$SPECIES = 165
    AND S.WEIGHT_IN_POUNDS > 500
    AND T.AK$MRIS_COUNTY IN ('||'''15'''||', '||'''16'''||', '||'''23'''||', '||'''41'''||', '||'''53'''||', '||'''60'''||', '||'''66'''||')
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    NULL, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (SUBSTR(T.TRIP_DATE,5,2) BETWEEN '||'''04'''||' AND '||'''10'''||')
    AND (S.AK$SPECIES = 165)
    AND ((S.WEIGHT_IN_POUNDS > 1250 AND T.AK$MRIS_COUNTY = '||'''54'''||')
    OR (T.AK$MRIS_AREA > 700 AND S.WEIGHT_IN_POUNDS > 500
    AND T.AK$MRIS_COUNTY != '||'''54'''||'))
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
    and (substr(t.trip_date,5,2) in ('||'''01'''||','||'''02'''||','||'''03'''||','||'''11'''||','||'''12'''||'))
    and (S.AK$SPECIES = 165)
    AND (S.WEIGHT_IN_POUNDS > 0)
    AND (T.TRIP_DATE BETWEEN '||'''19990331'''||' AND '||'''19990701'''||')
    AND (T.AK$MRIS_COUNTY NOT IN ('||'''15'''||','||'''16'''||','||'''23'''||','||'''26'''||','||'''28'''||','||'''41'''||','||'''53'''||','||'''54'''||','||'''55'''||','||'''60'''||','||'''65'''||','||'''66'''||','||'''74'''||')
    AND ((G.AK$MRIS_GEAR IN (70, 80)) OR
    (G.AK$MRIS_GEAR BETWEEN 4700 AND 4900) OR
    (G.AK$MRIS_GEAR BETWEEN 5300 AND 5390)))
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
    and (substr(t.trip_date,5,2) in ('||'''01'''||','||'''02'''||','||'''03'''||','||'''11'''||','||'''12'''||'))
    and (S.AK$SPECIES = 165)
    AND (S.WEIGHT_IN_POUNDS > 500)
    AND (T.TRIP_DATE > '||'''19990130'''||')
    AND (T.AK$MRIS_COUNTY NOT IN ('||'''15'''||','||'''16'''||','||'''23'''||','||'''26'''||','||'''28'''||','||'''41'''||','||'''53'''||','||'''54'''||','||'''55'''||','||'''60'''||','||'''65'''||','||'''66'''||','||'''74'''||'))
    AND ((G.AK$MRIS_GEAR = 40) OR
    G.AK$MRIS_GEAR BETWEEN 6100 AND 6190)';
    --execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value'||'. '||SQLCODE||': '||SQLERRM);
    END;
    BEGIN
    MSGNUM := 27;
    execute immediate 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$MRIS_GEAR, AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    NULL, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND S.AK$SPECIES = 165
    AND S.WEIGHT_IN_POUNDS > 500
    AND T.AK$MRIS_COUNTY IN (15, 16, 23, 41, 53, 54, 55, 60, 66, 74)
    AND SUBSTR(T.TRIP_DATE,5,2) IN ('||'''01'''||', '||'''02'''||', '||'''03'''||', '||'''11'''||', '||'''12'''||')
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
    AND (S.AK$SPECIES = 165)
    AND (S.WEIGHT_IN_POUNDS > 1250)
    AND (T.TRIP_DATE > '||'''19990130'''||')
    AND (T.AK$MRIS_COUNTY in ( 15, 16, 23, 26, 28, 41, 53, 54, 55, 60, 65, 66, 74))
    AND (G.AK$MRIS_GEAR = 40 OR G.AK$MRIS_GEAR BETWEEN 6100 AND 6190)
    AND (SUBSTR(T.TRIP_DATE,5,2) IN ('||'''01'''||', '||'''02'''||', '||'''03'''||', '||'''11'''||', '||'''12'''||'))
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
    AND (S.AK$SPECIES = 165)
    AND (S.WEIGHT_IN_POUNDS > 25000)
    AND (T.TRIP_DATE > '||'''19990119'''||')
    AND (T.AK$MRIS_COUNTY in ( 15, 16, 23, 26, 28, 41, 53, 54, 55, 60, 65, 66, 74))
    AND (G.AK$MRIS_GEAR IN (70, 80) OR
    G.AK$MRIS_GEAR BETWEEN 4700 AND 4790 OR
    G.AK$MRIS_GEAR BETWEEN 5300 AND 5390)
    AND (SUBSTR(T.TRIP_DATE,5,2) IN ('||'''01'''||', '||'''02'''||', '||'''03'''||', '||'''11'''||', '||'''12'''||'))
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
    AND (S.AK$SPECIES = 165)
    AND (S.WEIGHT_IN_POUNDS > 500)
    AND (T.TRIP_DATE > '||'''19990103'''||')
    AND (T.AK$MRIS_COUNTY in ( 15, 16, 23, 26, 28, 41, 53, 54, 55, 60, 65, 66, 74))
    AND (G.AK$MRIS_GEAR = 40 OR G.AK$MRIS_GEAR BETWEEN 6100 AND 6190)
    AND (SUBSTR(T.TRIP_DATE,5,2) IN ('||'''01'''||', '||'''02'''||', '||'''03'''||', '||'''11'''||', '||'''12'''||'))
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
    AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
    AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
    AND (S.AK$SPECIES = 165)
    AND (S.WEIGHT_IN_POUNDS > 0)
    AND (T.TRIP_DATE > '||'''19990119'''||')
    AND (T.AK$MRIS_COUNTY in ( 15, 16, 23, 26, 28, 41, 53, 54, 55, 60, 65, 66, 74))
    AND (G.AK$MRIS_GEAR IN (70, 80) OR
    G.AK$MRIS_GEAR BETWEEN 4700 AND 4790 OR
    G.AK$MRIS_GEAR BETWEEN 5300 AND 5390)
    AND (SUBSTR(T.TRIP_DATE,5,2) IN ('||'''01'''||', '||'''02'''||', '||'''03'''||', '||'''11'''||', '||'''12'''||'))';
    -- execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value'||'. '||SQLCODE||': '||SQLERRM);
    END;
    BEGIN
    MSGNUM := 28;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND T.AK$MRIS_AREA BETWEEN 0.0 AND 10.99
    AND SUBSTR(T.TRIP_DATE,5,2) IN ('||'''02'''||', '||'''03'''||', '||'''04'''||', '||'''09'''||', '||'''10'''||')
    AND S.AK$SPECIES = 209
    AND S.WEIGHT_IN_POUNDS > 2000';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    BEGIN
    MSGNUM := 29;
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    AK$MRIS_GEAR, AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,
    ERROR_NUM)
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND T.FK$TRIP_TICKET = G.AK$TRIP_TICKET
    AND S.AK$SPECIES IN (353, 355, 357, 359)
    AND T.AK$MRIS_COUNTY IN ('||'''23'''||', '||'''54'''||')
    AND G.AK$MRIS_GEAR != 9250
    UNION
    SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
    T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
    T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
    G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
    TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
    '||''''||MSGNUM||''''||'
    FROM T$TRIP_TICKET_WORK T,
    T$TRIP_TICKET_SPECIES_WORK S,
    T$TRIP_TICKET_GEAR_WORK G
    WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
    AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
    AND T.FK$TRIP_TICKET = G.AK$TRIP_TICKET
    AND S.AK$SPECIES IN (353, 355, 357, 359)
    AND G.AK$MRIS_GEAR NOT IN (9250, 9433)';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('. Error writing '||MSGNUM||' Bad Value');
    END;
    FOR I IN INREC (&BATCHNUM) LOOP
    BEGIN
    IF I.TRIP_DATE IS NULL THEN
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    ERROR_NUM)
    VALUES(I.BATCH, I.AK$DEALER, I.FK$TRIP_TICKET, I.INVOICE,
    I.CONTINUATION_IND, I.TRIP_DATE, I.SPL_NO, I.AK$MRIS_AREA,
    I.AK$MRIS_COUNTY, I.TIME_FISHED, I.TIME_UNITS, I.DEPTH, I.DEPTH_UNITS,
    30)';     
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    ELSE
    DATEST := TO_DATE(I.TRIP_DATE,'YYYYMMDD');
    END IF;
    -- IF DATEST NOT BETWEEN BEGDATE AND ENDATE THEN
    IF datest not between add_months(endate,-6) and endate then
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    ERROR_NUM)
    VALUES(I.BATCH, I.AK$DEALER, I.FK$TRIP_TICKET, I.INVOICE,
    I.CONTINUATION_IND, I.TRIP_DATE, I.SPL_NO, I.AK$MRIS_AREA,
    I.AK$MRIS_COUNTY, I.TIME_FISHED, I.TIME_UNITS, I.DEPTH, I.DEPTH_UNITS,
    30)';     
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    END IF;
    EXCEPTION WHEN OTHERS THEN
    s_command := 'INSERT INTO BATCHERS_REPORT
    (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
    CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
    AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
    ERROR_NUM)
    VALUES(I.BATCH, I.AK$DEALER, I.FK$TRIP_TICKET, I.INVOICE,
    I.CONTINUATION_IND, I.TRIP_DATE, I.SPL_NO, I.AK$MRIS_AREA,
    I.AK$MRIS_COUNTY, I.TIME_FISHED, I.TIME_UNITS, I.DEPTH, I.DEPTH_UNITS,
    30)';
    execute immediate s_command;
    FLAGCNT := FLAGCNT + SQL%ROWCOUNT;
    --COMMIT;
    execute immediate 'commit';
    END;
    END LOOP;
    DBMS_OUTPUT.PUT_LINE('. RECORDS WRITTEN = '||TO_CHAR(FLAGCNT));
    DBMS_OUTPUT.PUT_LINE('. ENDING TIME = '||TO_CHAR(SYSDATE,'MM/DD/YYYY HH:MI:SS'));
    DBMS_OUTPUT.PUT_LINE('.');
    END;
    --SET TERMOUT OFF;
    CLEAR BREAKS;
    BREAK ON BATCH ON AK$DEALER;
    CLEAR COLUMNS;
    --SPOOL BATCHERS.LST;
    --CLEAR COLUMNS;
    COLUMN BATCH NOPRINT;
    COLUMN AK$DEALER HEADING 'DEALER' FORMAT A9 JUSTIFY LEFT;
    COLUMN FK$TRIP_TICKET HEADING 'TTK#' FORMAT 9999999999;
    COLUMN INVOICE HEADING 'INVOICE' FORMAT A13 JUSTIFY LEFT;
    COLUMN CONTINUATION_IND HEADING 'CONT' FORMAT A4 JUSTIFY LEFT;
    COLUMN TRIP_DATE HEADING 'DATE' FORMAT A8 JUSTIFY LEFT;
    COLUMN SPL_NO HEADING 'SPL' FORMAT A9 JUSTIFY LEFT;
    COLUMN AK$MRIS_AREA HEADING 'AREA' FORMAT A7 JUSTIFY LEFT;
    COLUMN AK$MRIS_COUNTY HEADING 'CTY' FORMAT A3 JUSTIFY LEFT;
    COLUMN TIME_FISHED HEADING 'TIME' FORMAT A4 JUSTIFY LEFT;
    COLUMN TIME_UNITS HEADING 'UNIT' FORMAT A4 JUSTIFY LEFT;
    COLUMN DEPTH HEADING 'DEPTH' FORMAT A5 JUSTIFY LEFT;
    COLUMN DEPTH_UNITS HEADING 'UNIT' FORMAT A4 JUSTIFY LEFT;
    COLUMN AK$MRIS_GEAR HEADING 'GEAR' FORMAT A4 JUSTIFY LEFT;
    COLUMN AK$SPECIES HEADING 'SPEC' FORMAT A4 JUSTIFY LEFT;
    COLUMN SPECIES_SIZE HEADING 'SIZE' FORMAT A8 JUSTIFY LEFT;
    COLUMN WEIGHT_IN_POUNDS HEADING 'POUNDS' FORMAT 99999.99;
    COLUMN UNIT_PRICE HEADING 'PRICE' FORMAT 99999.999;
    COLUMN ERROR_NUM NOPRINT;
    --CLEAR BREAKS;
    --BREAK ON BATCH ON AK$DEALER;
    --SPOOL BATCHERS.LST;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Undefined gear codes.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 1
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Undefined or non-Florida area codes.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 2
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    -- Error number 3 not in use - Logic moved to ctyarflg.sql
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Incorrect or no SPL information.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 4
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Reported less than 1 pound weight.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 5
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Bad time fished or time units.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 6
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Weight over 5500 lbs for reef fish.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 7
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Landings in closed fisheries.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 8
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Invalid species codes.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 9
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Unlikely or unusual species codes.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 10
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Food fish > 50 lbs or too expensive.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 11
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Mixed or other grouper or snapper > 50 lbs.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 12
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Over 1000 lbs striped mullet.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 13
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Oysters improperly coded.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 14
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Too expensive bait shrimp.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 15
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Bad stone crab sizes, prices or unidentified lites.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 16
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Reported landings of greater amberjack,' SKIP -
    CENTER 'lesser amberjack, almaco jack and banded rudderfish ' SKIP -
    CENTER 'during the closed season (March-May) from state waters.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 17
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Over the bag limit (1 fish) landings of' SKIP -
    CENTER 'greater amberjack during April from South Atlantic federal waters.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 18
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Landings during closed seasons.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 19
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Snowy grouper > 300 lbs (South Atlantic trip limit from Dec. 20 thru Dec. 31, 1997).' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 20
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Out-of-season Gulf red snapper landings. Commercial harvest closed' SKIP -
    CENTER 'Oct. 16, 1998 - Jan. 31 1999, Mar. 15 - Apr. 1, 1999, and' SKIP -
    CENTER 'Apr. 15 - Sep. 1, 1999.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 21
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Too much spotted seatrout.' SKIP -
    CENTER 'Commercial harvest allows 75 fish daily vessel limit, flagged 250+ lbs.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 22
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Out-of-season spotted seatrout. Commercial harvest allowed June, July, and August only.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 23
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Too much tripletail, cobia, or african pompano.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 24
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Undefined or non-Florida area fished for gear codes.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 25
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'South Atlantic king mackerel fishery (April-October)' SKIP -
    CENTER '- > 3,500lbs in Nassau-Volusia or' SKIP -
    CENTER '- > 500 lbs in Brevard-Dade or' SKIP -
    CENTER '- > 500 lbs H and L in rest of Gulf (until 7/1/1999)' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 26
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Gulf-Atlantic king mackerel fishery (November - March)' SKIP -
    CENTER '- > 500 lbs Volusia-Dade or' SKIP -
    CENTER ' > 1250 lbs H and L (>500 after 1/30/99 or' SKIP -
    CENTER ' > 25,000 lbs gill net (zero after 1/19/99) Monroe Escambia';
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 27
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'More than 2,000 lbs mixed of Gulf red snapper.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 28
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Bad or unusual gears for sponges.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 29
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    TTITLE LEFT 'Page: ' FORMAT 999 SQL.PNO RIGHT 'Batch: ' &BATCHNUM SKIP -
    CENTER 'Date is blank, invalid, before begin date or after end date.' SKIP 2;
    SELECT * FROM BATCHERS_REPORT
    WHERE ERROR_NUM = 30
    ORDER BY AK$DEALER, FK$TRIP_TICKET;
    --SPOOL OFF;
    --SET TERMOUT ON;
    --PROMPT;
    --PROMPT REPORT WRITTEN TO BATCHERS.LST;
    --PROMPT;
    --TTITLE OFF;
    SET FEEDBACK ON;
    SET LINESIZE 72;
    SET PAGESIZE 32;
    --SET NEWPAGE 1;
    SET SERVEROUT OFF;
    SET VERIFY ON;
    SET ECHO ON;
    What is wrong with my syntax or what is I am doing wrong?
    Any help will be appreciated and thanks in advance,
    -Dmitriy

    a workaround was to split the string into 2 but this is not a long term solution:
    e.g.
    vString1 := 'INSERT INTO BATCHERS_REPORT
                  (BATCH, AK$DEALER, FK$TRIP_TICKET, INVOICE,
                  CONTINUATION_IND, TRIP_DATE, SPL_NO, AK$MRIS_AREA,
                  AK$MRIS_COUNTY, TIME_FISHED, TIME_UNITS, DEPTH, DEPTH_UNITS,
                  AK$MRIS_GEAR,AK$SPECIES, SPECIES_SIZE, WEIGHT_IN_POUNDS, UNIT_PRICE,ERROR_NUM)
                  SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
                  T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
                  T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
                  NULL, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
                  TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
                  '||''''||MSGNUM||''''||'
                  FROM T$TRIP_TICKET_WORK T,
                  T$TRIP_TICKET_SPECIES_WORK S
                  WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
                  AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
                  AND SUBSTR(T.TRIP_DATE,5,2) BETWEEN '||'''04'''||' AND '||'''10'''||'
                  AND S.AK$SPECIES = 165
                  AND S.WEIGHT_IN_POUNDS > 3500
                  AND T.AK$MRIS_COUNTY IN ('||'''26'''||', '||'''28'''||', '||'''55'''||', '||'''65'''||', '||'''74'''||')
                  UNION
                  SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
                  T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
                  T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
                  NULL,S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
                  TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
                  '||''''||MSGNUM||''''||'
                  FROM T$TRIP_TICKET_WORK T,
                  T$TRIP_TICKET_SPECIES_WORK S
                  WHERE TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
                  AND T.FK$TRIP_TICKET = S.AK$TRIP_TICKET
                  AND SUBSTR(T.TRIP_DATE,5,2) BETWEEN '||'''04'''||' AND '||'''10'''||'
                  AND S.AK$SPECIES = 165
                  AND S.WEIGHT_IN_POUNDS > 500
                  AND T.AK$MRIS_COUNTY IN ('||'''15'''||', '||'''16'''||', '||'''23'''||', '||'''41'''||', '||'''53'''||', '||'''60'''||', '||'''66'''||')
                  UNION
                  SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
                  T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
                  T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
                  NULL, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
                  TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
                  '||''''||MSGNUM||''''||'
                  FROM T$TRIP_TICKET_WORK T,
                  T$TRIP_TICKET_SPECIES_WORK S
                  WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||'
                  AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
                  AND (SUBSTR(T.TRIP_DATE,5,2) BETWEEN '||'''04'''||' AND '||'''10'''||')
                  AND (S.AK$SPECIES = 165)
                  AND ((S.WEIGHT_IN_POUNDS > 1250 AND T.AK$MRIS_COUNTY = '||'''54'''||')
                  OR (T.AK$MRIS_AREA > 700 AND S.WEIGHT_IN_POUNDS > 500
                  AND T.AK$MRIS_COUNTY != '||'''54'''||'))
                  UNION
                  SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
                  T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
                  T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
                  G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
                  TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
                  '||''''||MSGNUM||''''||'
                  FROM T$TRIP_TICKET_WORK T,
                  T$TRIP_TICKET_SPECIES_WORK S,
                  T$TRIP_TICKET_GEAR_WORK G
                  WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
                  AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
                  AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
                  and (substr(t.trip_date,5,2) in ('||'''01'''||','||'''02'''||','||'''03'''||','||'''11'''||','||'''12'''||'))
                  and (S.AK$SPECIES = 165)
                  AND (S.WEIGHT_IN_POUNDS > 0)
                  AND (T.TRIP_DATE BETWEEN '||'''19990331'''||' AND '||'''19990701'''||')
                  AND (T.AK$MRIS_COUNTY NOT IN ('||'''15'''||','||'''16'''||','||'''23'''||','||'''26'''||','||'''28'''||','||'''41'''||','||'''53'''||','||'''54'''||','||'''55'''||','||'''60'''||','||'''65'''||','||'''66'''||','||'''74'''||')
                  AND ((G.AK$MRIS_GEAR IN (70, 80)) OR
                  (G.AK$MRIS_GEAR BETWEEN 4700 AND 4900) OR
                  (G.AK$MRIS_GEAR BETWEEN 5300 AND 5390)))';
    vString2 := 'UNION
                 SELECT T.BATCH, T.AK$DEALER, T.FK$TRIP_TICKET, T.INVOICE,
                 T.CONTINUATION_IND, T.TRIP_DATE, T.SPL_NO, T.AK$MRIS_AREA,
                 T.AK$MRIS_COUNTY, T.TIME_FISHED, T.TIME_UNITS, T.DEPTH, T.DEPTH_UNITS,
                 G.AK$MRIS_GEAR, S.AK$SPECIES, LTRIM(S.SPECIES_SIZE),
                 TO_NUMBER(S.WEIGHT_IN_POUNDS), TO_NUMBER(S.UNIT_PRICE),
                 '||''''||MSGNUM||''''||'
                 FROM T$TRIP_TICKET_WORK T,
                 T$TRIP_TICKET_SPECIES_WORK S,
                 T$TRIP_TICKET_GEAR_WORK G
                 WHERE (TO_NUMBER(T.BATCH) = '|| &BATCHNUM ||')
                 AND (T.FK$TRIP_TICKET = S.AK$TRIP_TICKET)
                 AND (T.FK$TRIP_TICKET = G.AK$TRIP_TICKET)
                 and (substr(t.trip_date,5,2) in ('||'''01'''||','||'''02'''||','||'''03'''||','||'''11'''||','||'''12'''||'))
                 and (S.AK$SPECIES = 165)
                 AND (S.WEIGHT_IN_POUNDS > 500)
                 AND (T.TRIP_DATE > '||'''19990130'''||')
                 AND (T.AK$MRIS_COUNTY NOT IN ('||'''15'''||','||'''16'''||','||'''23'''||','||'''26'''||','||'''28'''||','||'''41'''||','||'''53'''||','||'''54'''||','||'''55'''||','||'''60'''||','||'''65'''||','||'''66'''||','||'''74'''||'))
                 AND ((G.AK$MRIS_GEAR = 40) OR
                 G.AK$MRIS_GEAR BETWEEN 6100 AND 6190)';
    Execute Immediate vString1||vString2;

  • Andydata.getObject in piecewise mode using execute immediate statement err

    andydata.getObject in piecewise mode using execute immediate statement
    will get ora-00600 arguments:[kopuigpfx1], [14] in Oracle 11.1.0.6 and Oralce 10.2.0.2.
    andydata.getObject in piecewise mode using execute immediate statement err
    andydata.getObject in piecewise mode using execute immediate statement will get ora-00600 arguments:[kopuigpfx1], [14] in Oracle 11.1.0.6 and Oralce 10.2.0.x
    The following are test scripts in HR schema.
    create type ob_test is object(c1 varchar2(10));
    script 1: not using execute immediate statement and works fine.
    DECLARE
    p_anytype anytype;
    p_anydata anydata;
    p_value_1 VARCHAR2(4000);
    p_value_2 ob_test;
    p_result PLS_INTEGER;
    BEGIN
    anytype.begincreate(dbms_types.typecode_object, p_anytype);
    p_anytype.addattr('A1',
    dbms_types.typecode_varchar2,
    NULL,
    NULL,
    4000,
    NULL,
    NULL,
    NULL);
    p_anytype.addattr('A2',
    dbms_types.typecode_object,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    anytype.getpersistent('HR', 'OB_TEST'));
    p_anytype.endcreate();
    anydata.begincreate(p_anytype, p_anydata);
    p_anydata.setvarchar2('abc');
    p_anydata.setobject(OB_TEST('abc'));
    p_anydata.endcreate;
    DECLARE
    p_anydata2 anydata := p_anydata;
    p_value_1 VARCHAR2(4000);
    p_value_2 OB_TEST;
    p_result PLS_INTEGER;
    BEGIN
    p_anydata2.piecewise;
    p_result := p_anydata2.getvarchar2(p_value_1);
    p_result := p_anydata2.getobject(p_value_2);
    END;
    END;
    script 2: using execute immediate statement will get ora-600
    DECLARE
    p_anytype anytype;
    p_anydata anydata;
    p_value_1 VARCHAR2(4000);
    p_value_2 ob_test;
    p_result PLS_INTEGER;
    BEGIN
    anytype.begincreate(dbms_types.typecode_object, p_anytype);
    p_anytype.addattr('A1',
    dbms_types.typecode_varchar2,
    NULL,
    NULL,
    4000,
    NULL,
    NULL,
    NULL);
    p_anytype.addattr('A2',
    dbms_types.typecode_object,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    anytype.getpersistent('HR', 'OB_TEST'));
    p_anytype.endcreate();
    anydata.begincreate(p_anytype, p_anydata);
    p_anydata.setvarchar2('abc');
    p_anydata.setobject(OB_TEST('abc'));
    p_anydata.endcreate;
    EXECUTE IMMEDIATE 'DECLARE' || chr(10) ||
    ' p_anydata2 anydata := :1;' || chr(10) ||
    ' p_value_1 VARCHAR2(4000);' || chr(10) ||
    ' p_value_2 OB_TEST;' || chr(10) ||
    ' p_result PLS_INTEGER;' || chr(10) || 'BEGIN' ||
    chr(10) || ' p_anydata2.piecewise;' || chr(10) ||
    ' p_result := p_anydata2.getvarchar2(p_value_1);' ||
    chr(10) ||
    ' p_result := p_anydata2.getobject(p_value_2);' ||
    chr(10) || 'END;'
    USING p_anydata;
    END;
    script 3: comment statment "p_result := p_anydata2.getobject(p_value_2);", it works ok.
    DECLARE
    p_anytype anytype;
    p_anydata anydata;
    p_value_1 VARCHAR2(4000);
    p_value_2 ob_test;
    p_result PLS_INTEGER;
    BEGIN
    anytype.begincreate(dbms_types.typecode_object, p_anytype);
    p_anytype.addattr('A1',
    dbms_types.typecode_varchar2,
    NULL,
    NULL,
    4000,
    NULL,
    NULL,
    NULL);
    p_anytype.addattr('A2',
    dbms_types.typecode_object,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    anytype.getpersistent('HR', 'OB_TEST'));
    p_anytype.endcreate();
    anydata.begincreate(p_anytype, p_anydata);
    p_anydata.setvarchar2('abc');
    p_anydata.setobject(OB_TEST('abc'));
    p_anydata.endcreate;
    EXECUTE IMMEDIATE 'DECLARE' || chr(10) ||
    ' p_anydata2 anydata := :1;' || chr(10) ||
    ' p_value_1 VARCHAR2(4000);' || chr(10) ||
    ' p_value_2 OB_TEST;' || chr(10) ||
    ' p_result PLS_INTEGER;' || chr(10) || 'BEGIN' ||
    chr(10) || ' p_anydata2.piecewise;' || chr(10) ||
    ' p_result := p_anydata2.getvarchar2(p_value_1);' ||
    chr(10) ||
    ' /*p_result := p_anydata2.getobject(p_value_2);*/' ||
    chr(10) || 'END;'
    USING p_anydata;
    END;
    Could someone tell me how to solve this problem.
    Thanks a lot.
    Daniel

    andydata.getObject in piecewise mode using execute immediate statement
    will get ora-00600 arguments:[kopuigpfx1], [14] in Oracle 11.1.0.6 and Oralce 10.2.0.2.
    andydata.getObject in piecewise mode using execute immediate statement err
    andydata.getObject in piecewise mode using execute immediate statement will get ora-00600 arguments:[kopuigpfx1], [14] in Oracle 11.1.0.6 and Oralce 10.2.0.x
    The following are test scripts in HR schema.
    create type ob_test is object(c1 varchar2(10));
    script 1: not using execute immediate statement and works fine.
    DECLARE
    p_anytype anytype;
    p_anydata anydata;
    p_value_1 VARCHAR2(4000);
    p_value_2 ob_test;
    p_result PLS_INTEGER;
    BEGIN
    anytype.begincreate(dbms_types.typecode_object, p_anytype);
    p_anytype.addattr('A1',
    dbms_types.typecode_varchar2,
    NULL,
    NULL,
    4000,
    NULL,
    NULL,
    NULL);
    p_anytype.addattr('A2',
    dbms_types.typecode_object,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    anytype.getpersistent('HR', 'OB_TEST'));
    p_anytype.endcreate();
    anydata.begincreate(p_anytype, p_anydata);
    p_anydata.setvarchar2('abc');
    p_anydata.setobject(OB_TEST('abc'));
    p_anydata.endcreate;
    DECLARE
    p_anydata2 anydata := p_anydata;
    p_value_1 VARCHAR2(4000);
    p_value_2 OB_TEST;
    p_result PLS_INTEGER;
    BEGIN
    p_anydata2.piecewise;
    p_result := p_anydata2.getvarchar2(p_value_1);
    p_result := p_anydata2.getobject(p_value_2);
    END;
    END;
    script 2: using execute immediate statement will get ora-600
    DECLARE
    p_anytype anytype;
    p_anydata anydata;
    p_value_1 VARCHAR2(4000);
    p_value_2 ob_test;
    p_result PLS_INTEGER;
    BEGIN
    anytype.begincreate(dbms_types.typecode_object, p_anytype);
    p_anytype.addattr('A1',
    dbms_types.typecode_varchar2,
    NULL,
    NULL,
    4000,
    NULL,
    NULL,
    NULL);
    p_anytype.addattr('A2',
    dbms_types.typecode_object,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    anytype.getpersistent('HR', 'OB_TEST'));
    p_anytype.endcreate();
    anydata.begincreate(p_anytype, p_anydata);
    p_anydata.setvarchar2('abc');
    p_anydata.setobject(OB_TEST('abc'));
    p_anydata.endcreate;
    EXECUTE IMMEDIATE 'DECLARE' || chr(10) ||
    ' p_anydata2 anydata := :1;' || chr(10) ||
    ' p_value_1 VARCHAR2(4000);' || chr(10) ||
    ' p_value_2 OB_TEST;' || chr(10) ||
    ' p_result PLS_INTEGER;' || chr(10) || 'BEGIN' ||
    chr(10) || ' p_anydata2.piecewise;' || chr(10) ||
    ' p_result := p_anydata2.getvarchar2(p_value_1);' ||
    chr(10) ||
    ' p_result := p_anydata2.getobject(p_value_2);' ||
    chr(10) || 'END;'
    USING p_anydata;
    END;
    script 3: comment statment "p_result := p_anydata2.getobject(p_value_2);", it works ok.
    DECLARE
    p_anytype anytype;
    p_anydata anydata;
    p_value_1 VARCHAR2(4000);
    p_value_2 ob_test;
    p_result PLS_INTEGER;
    BEGIN
    anytype.begincreate(dbms_types.typecode_object, p_anytype);
    p_anytype.addattr('A1',
    dbms_types.typecode_varchar2,
    NULL,
    NULL,
    4000,
    NULL,
    NULL,
    NULL);
    p_anytype.addattr('A2',
    dbms_types.typecode_object,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    anytype.getpersistent('HR', 'OB_TEST'));
    p_anytype.endcreate();
    anydata.begincreate(p_anytype, p_anydata);
    p_anydata.setvarchar2('abc');
    p_anydata.setobject(OB_TEST('abc'));
    p_anydata.endcreate;
    EXECUTE IMMEDIATE 'DECLARE' || chr(10) ||
    ' p_anydata2 anydata := :1;' || chr(10) ||
    ' p_value_1 VARCHAR2(4000);' || chr(10) ||
    ' p_value_2 OB_TEST;' || chr(10) ||
    ' p_result PLS_INTEGER;' || chr(10) || 'BEGIN' ||
    chr(10) || ' p_anydata2.piecewise;' || chr(10) ||
    ' p_result := p_anydata2.getvarchar2(p_value_1);' ||
    chr(10) ||
    ' /*p_result := p_anydata2.getobject(p_value_2);*/' ||
    chr(10) || 'END;'
    USING p_anydata;
    END;
    Could someone tell me how to solve this problem.
    Thanks a lot.
    Daniel

  • How to make my Execute Immediate statement to work??

    Hi, Sir:
    I use SQL Oracle 9i,
    I have following procedure called by a trigger:
    CREATE OR REPLACE PROCEDURE emps_check IS
    s_sql VARCHAR2(500);
    BEGIN
    DBMS_OUTPUT.PUT_LINE('1. Start to Delete all rows in the emps' );
    delete from emps;
    DBMS_OUTPUT.PUT_LINE('2. Start to insert into emps from emp' );
    s_sql:='INSERT INTO Emps(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO from emp;';
    DBMS_OUTPUT.PUT_LINE('3. s_sql= ' || s_sql );
    EXECUTE IMMEDIATE s_sql;
    DBMS_OUTPUT.PUT_LINE('3. Procedure call OK, Employ Name ' );
    EXCEPTION
    -- Use this to trap the ORA-00942: table or view does not exist
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('Procedure call Exception: Employ Name ' );
    end emps_check;
    My trigger is:
    CREATE OR REPLACE TRIGGER emps_biu_after
    after INSERT OR UPDATE or delete on emp
    for each row
    begin
    if TO_CHAR(SYSDate,'DY')= 'SUN'
    then
    DBMS_OUTPUT.PUT_LINE('Today is holiday, ename =' );
    else
    DBMS_OUTPUT.PUT_LINE('Today is working Day, ename =');
    emps_check();
    end if;
    end;
    When I use following to update emp table:
    SQL> UPDATE emp T1
    2 SET T1.sal = 200.0
    3 WHERE T1.ename like '%SCOTT%';
    I got:
    Today is working Day, Trigger Call Procedure emps_check()
    1. Start to Delete all rows in the emps
    2. Start to insert into emps from emp
    3. s_sql= INSERT INTO Emps(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) select EMPNO,ENAME,JOB,MGR
    Procedure call Exception: Employ Name
    Trigger Call Procedure emps_check() Success
    Looks like EXECUTE IMMEDIATE s_sql; did not work.
    What is wrong??
    How to make my Execute Immediate statement to work??
    Thanks

    You may omit the ';' character...
    s_sql:='INSERT INTO
    Emps(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)
    select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
    from emp';
    ... and something else
    IN PL/SQL when a procedure , function doews not take
    any parameter(s) then its call can be made as simply
    its name without a pair of parenthesis....(It seems
    that you are influenced by Java...:) )
    SimThanks Sir:
    I remove this ; but still error:
    1 UPDATE emp T1
    2 SET T1.sal = 768.1
    3* wHERE T1.ename like '%SCOTT%'
    SQL> /
    Today is working Day, Trigger Call Procedure emps_check()
    1. Start to Delete all rows in the emps
    2. Start to insert into emps from emp
    3. s_sql= INSERT INTO Emps(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) select EMPNO,ENAME,JOB,MGR,
    Procedure call Exception: Employ Name
    Trigger Call Procedure emps_check() Success
    My code as follows:
    CREATE OR REPLACE PROCEDURE emps_check IS
    s_sql VARCHAR2(500);
    BEGIN
    DBMS_OUTPUT.PUT_LINE('1. Start to Delete all rows in the emps' );
    delete from emps;
    DBMS_OUTPUT.PUT_LINE('2. Start to insert into emps from emp' );
    s_sql:='INSERT INTO Emps(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO from emp';
    DBMS_OUTPUT.PUT_LINE('3. s_sql= ' || s_sql );
    EXECUTE IMMEDIATE s_sql;
    DBMS_OUTPUT.PUT_LINE('3. Procedure call OK, Employ Name ' );
    EXCEPTION
    -- Use this to trap the ORA-00942: table or view does not exist
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('Procedure call Exception: Employ Name ' );
    end emps_check;
    what is other wrong??
    Yes, I am java guys,
    Thanks

  • Inserting variables to table by "execute immediate' statement

    EXECUTE IMMEDIATE 'INSERT INTO aTABLETKA_HISTORY
    (update_id,
    update_type,
    update_date,
    old_db_version,
    description,
    patch_number)
    values
    (' || m_id(v_rec) || ',
    '||m_package(v_rec)||',
    ''07-NOV-07'',
    ''snezi'',
    '||m_desc(v_rec)||',
    '||m_new(v_rec)||')';
    ORA-00917: missing comma
    ORA-06512: at line 142
    i cannot solve this,. can anybody help me?
    i have simillar insert:
    EXECUTE IMMEDIATE 'INSERT INTO ab_table_VERSION(property,version) values (''wiz_datalink'',' || my_version || ')';
    and this one statement work correctly

    Do NOT use "execute immediate". What is the reason for trying it this way?
    If the column update_date is of type date, then you have a bug in the code, as you are trying to insert a string. If it is not a date data type, then you have a bug, because it is not of type date.
    What is the outcome of:
    INSERT INTO aTABLETKA_HISTORY (update_id, update_type, update_date,
          old_db_version, description, patch_number)
       values (m_id(v_rec), m_package(v_rec), to_date('07-NOV-2007', 'dd-MON-yyyy'),
          snezi, m_desc(v_rec), m_new(v_rec) )
    /

  • Execute a DML query its length exceeds 4000 characters with execute immediate statement.

    I want to execute a DML query with execute immediate statement. That DML query length exceeds 4000 characters. This query has Xquery related conditions, i can not split the query. when i tried execute it is giving "string literal too long".  I tried with DBMS_SQL.Parse() and DBMS_SQL.Execute also, but it is giving same error. I have to execute this DML query inside a Procedure. Please help me to resolve this. We are using oracle 10g version
    Thanks & Regards,
    K.Kedarnadh

    Actually Query is a dynamic query. Query length will exceeds if the no of domains\domain values \products exceeds. Any way Below one is current dynamic query, which is generated within procedure
    SELECT
      IVT.ID_IVT
        ,IVT.ID_INS_IVT
      ,EXTRACTVALUE(IVT.DOCUMENT_IVT,'//productName/text()') AS PRODUCTNAME
      ,EXTRACTVALUE(IVT.DOCUMENT_IVT,'//elementName/text()') AS INSTANCENAME
      ,EXTRACTVALUE(IVT.DOCUMENT_IVT,'//elementInternalName/text()') AS INTERNALNAME
        ,CTG.NAME_CTG
        ,CTR.NAME_CTR
        ,MDL.NAME_MDL
      ,IVT.REEDIT_FLAG_IVT
        FROM  VARIATION_IVT IVT INNER JOIN CATEGORY_CTG CTG ON CTG.ID_CTG=IVT.ID_CTG_IVT
      AND IVT.STATUS_IVT='Active' AND IVT.DELETE_FLAG_IVT=0 AND IVT.ID_PRJ_IVT=1
      AND  IVT.DOCUMENT_IVT.existsnode('.//domain[domainName="Jurisdictions" and (domainValue="Delhi" or domainValue="Bangladesh" or domainValue="Mumbai" or domainValue="India" or domainValue="Pakistan" or domainValue="Nepal" or domainValue="Maldives" or domainValue="Kolkata" or domainValue="Bhutan" or domainValue="Chennai" or domainValue="ALL")]')=1 AND  IVT.DOCUMENT_IVT.existsnode('.//domain[domainName="Channels" and (domainValue="Agents" or domainValue="SBI" or domainValue="Maruti" or domainValue="Direct" or domainValue="CitiFinancial" or domainValue="SCB" or domainValue="BankAssurance" or domainValue="CitiBank" or domainValue="Employees" or domainValue="GE" or domainValue="Brokers" or domainValue="Telemarketing" or domainValue="Agency" or domainValue="ALL")]')=1 AND  IVT.DOCUMENT_IVT.existsnode('.//domain[domainName="ModeofDelivery" and (domainValue="Walkin" or domainValue="Internet" or domainValue="ALL")]')=1 AND  IVT.DOCUMENT_IVT.existsnode('.//context[(productName="ALL" or productName="A009" or productName="A010" or productName="A046" or productName="AccidentShieldClassic" or productName="AccidentShieldOnline" or productName="AM01" or productName="AM02" or productName="AME_Cancellation" or productName="ARHG" or productName="ARPA" or productName="B003" or productName="B004" or productName="B007" or productName="B008" or productName="B009" or productName="B010" or productName="B012" or productName="B013" or productName="B015" or productName="B016" or productName="B017" or productName="BC04_PA" or productName="BC06_FDP" or productName="BC06_PA" or productName="BC09" or productName="BC10" or productName="BC12" or productName="BC13" or productName="BF03" or productName="BS01" or productName="BS02" or productName="C017" or productName="C035" or productName="C036" or productName="C037" or productName="C038" or productName="C040" or productName="C041" or productName="C041Gold" or productName="C041New" or productName="C045HomeContents" or productName="C048" or productName="C049" or productName="C054" or productName="C057" or productName="C060Building" or productName="C060Contents" or productName="C060FDP" or productName="C061Building" or productName="C061Contents" or productName="C062" or productName="C063" or productName="C067" or productName="C070" or productName="C072" or productName="C074" or productName="C077" or productName="C081" or productName="C082" or productName="C087" or productName="C088" or productName="CITIFOREVER" or productName="CITISECURE" or productName="CITICHILDPLAN" or productName="D001" or productName="DB01" or productName="DD01" or productName="DD02" or productName="DD03" or productName="DD04" or productName="DD09" or productName="DD10" or productName="E005" or productName="E011" or productName="E016" or productName="E020" or productName="E030" or productName="E034" or productName="E040" or productName="E041" or productName="E045HCP" or productName="E045HSP" or productName="E049" or productName="E049New" or productName="E052" or productName="E053" or productName="E054FDP" or productName="E055" or productName="E056" or productName="E057" or productName="E058" or productName="E061" or productName="E061BATCH" or productName="E062" or productName="E063" or productName="E064HCP" or productName="E064HSP" or productName="E066" or productName="E069" or productName="E073" or productName="E075" or productName="E076" or productName="E088" or productName="E090" or productName="E093A" or productName="E093B" or productName="E095" or productName="E099A" or productName="E099B" or productName="E106" or productName="E107" or productName="E110" or productName="E112" or productName="E114" or productName="E115" or productName="E116" or productName="F001" or productName="FamilyHealthInsurance" or productName="FamilyHospitalBenefits" or productName="FamilyHospitalisationCoverBenefit" or productName="G001" or productName="G002" or productName="HealthShieldOnline" or productName="Health_B005" or productName="Health_S057" or productName="HealthSheild" or productName="HealthWalkin" or productName="HomeContentOnline" or productName="HomeShieldOnline" or productName="HomeShieldWalkin" or productName="HospitalCashOnline" or productName="J001" or productName="J008" or productName="K001" or productName="KV02" or productName="LC03" or productName="ML01" or productName="MP02" or productName="MP03" or productName="MR01" or productName="O005" or productName="PO01" or productName="PO02" or productName="PO03" or productName="PO04" or productName="PO05" or productName="PO06" or productName="RR02" or productName="RR03" or productName="RR04" or productName="S006" or productName="S033" or productName="S049" or productName="S051" or productName="S054" or productName="S057" or productName="S060" or productName="S061" or productName="S065" or productName="S065TM" or productName="S068" or productName="S076" or productName="S077" or productName="S079" or productName="S080" or productName="S081" or productName="S084" or productName="S085" or productName="S086" or productName="S087" or productName="S088" or productName="S091" or productName="S092" or productName="S093" or productName="S094" or productName="S095" or productName="S097" or productName="S098" or productName="S099" or productName="S100" or productName="S101" or productName="S102" or productName="S103" or productName="S104" or productName="S106" or productName="S107" or productName="S108" or productName="S109" or productName="S110" or productName="S111" or productName="S113" or productName="SCBNAC" or productName="SF02" or productName="SS01" or productName="SS02" or productName="SUNFHM" or productName="SurgicalShield" or productName="TD01" or productName="TD02" or productName="TP01" or productName="U002Building" or productName="U002Contents" or productName="U004Building" or productName="U007" or productName="U009" or productName="U013" or productName="U014" or productName="U015" or productName="U016" or productName="V001" or productName="V002" or productName="V005" or productName="V006" or productName="V008" or productName="W008" or productName="W020" or productName="W021" or productName="W022" or productName="W023" or productName="W024" or productName="W026" or productName="W027" or productName="W028" or productName="W029" or productName="W105" or productName="W106" or productName="WI01" or productName="WI02" or productName="WI03" or productName="WI07" or productName="WI08" or productName="WI09" or productName="WI10" or productName="WI11" or productName="WI12" or productName="WI13" or productName="WI14" or productName="WI17" or productName="WI20" or productName="WI21" or productName="WI21_Health" or productName="WI23" or productName="WI24" or productName="WI26" or productName="WI30" or productName="WI31" or productName="WI33" or productName="WI34" or productName="X001" or productName="X002" or productName="X003" or productName="X004" or productName="X005" or productName="X008" or productName="Y001" or productName="Y007" or productName="Y009" or productName="Y010" or productName="Y011" or productName="Y011H" or productName="Y020" or productName="Y020N" or productName="Z008" or productName="ZI001")]')=1
      INNER JOIN CENTER_CTR CTR ON CTR.ID_CTR=CTG.ID_CTR_CTG
        INNER JOIN MODEL_MDL MDL ON  MDL.ID_MDL=CTR.ID_MDL_CTR

Maybe you are looking for