Column Order Execute Immediate
I am trying to alter a table to add columns in a specific order. When I run the below statement, it always makes the first column (ORA_ERR_NUMBER$) the last column in the actual order of the table. Why is this? Some kind of bug?
create procedure test
as
sqlstmt varchar2(2000);
BEGIN
sqlstmt := 'ALTER TABLE test.ERR$_F00165 ADD (ORA_ERR_NUMBER$ NUMBER, ORA_ERR_MESG$ VARCHAR2(2000 BYTE), ORA_ERR_ROWID$ UROWID(4000), ORA_ERR_OPTYPE$ VARCHAR2(2 BYTE), ORA_ERR_TAG$ VARCHAR2(2000 BYTE))';
EXECUTE IMMEDIATE sqlstmt;
END;
Purge recyclebin doesn't help. Not sure what else it could be. I don't think it has anything to do with my script but it is below for reference.
create or replace
procedure Merge811_sp
AUTHID CURRENT_USER
as
sqlstmtC varchar2(2000);
sqlstmtI varchar2(2000);
sqlstmtL varchar2(2000);
sqlstmtCnt varchar2(2000);
sqlstmtCnt2 varchar2(2000);
sqlstmtLOB varchar2(2000);
sqlstmtLOBCat varchar2(2000);
sqlstmtLOBCat2 varchar2(2000);
sqlstmtLOBCat3 varchar2(2000);
CountVar number;
CountVar2 number;
LOBCommaList varchar2(2000);
BEGIN
declare
cursor c8 is
--select src and dest tables where table group is 2 and active = Y
select TABLE_NAME, TABLE_SRC_SCHEMA, TABLE_DEST_SCHEMA
from testschema.TEST_TABLES where TABLE_ACTIVE = 'Y'
and TABLE_GROUP = 2
order by TABLE_NAME;
begin
for r_c8 in c8 loop
BEGIN
sqlstmtCnt := 'select count(*) into :CountVar from dba_tables where table_name = ''ERR$_'||r_c8.TABLE_NAME||''' and owner = '''||r_c8.TABLE_DEST_SCHEMA||''';';
EXECUTE IMMEDIATE 'BEGIN '||sqlstmtCnt||' END;' USING OUT CountVar;
--If error table does not exist.......
IF CountVar = 0
THEN
sqlstmtCnt2 := 'select count(*) into :CountVar2 from dba_tables a join dba_tab_columns b ON a.table_name = b.table_name and a.owner = b.owner
where a.table_name = '''||r_c8.TABLE_NAME||''' and
a.owner = '''||r_c8.TABLE_SRC_SCHEMA||''' and b.DATA_TYPE in (''BLOB'', ''CLOB'', ''LONG'', ''LONG RAW'', ''NCLOB'');';
--dbms_output.put_line(sqlstmtCnt2);
EXECUTE IMMEDIATE 'BEGIN '||sqlstmtCnt2||' END;' USING OUT CountVar2;
--If no LOB or LONG data types, create error table and insert data with logging
IF CountVar2 = 0
THEN
sqlstmtC := 'DBMS_ERRLOG.create_error_log (dml_table_name => '''||r_c8.TABLE_DEST_SCHEMA||'.'||r_c8.TABLE_NAME||''');';
--dbms_output.put_line(sqlstmtC);
EXECUTE IMMEDIATE ('BEGIN '||sqlstmtC||' END;');
--commit;
sqlstmtI := 'INSERT INTO '||r_c8.TABLE_DEST_SCHEMA||'.'||r_c8.TABLE_NAME||' SELECT * FROM '||r_c8.TABLE_SRC_SCHEMA||'.'||r_c8.TABLE_NAME||' LOG ERRORS INTO '||r_c8.TABLE_DEST_SCHEMA||'.ERR$_'||r_c8.TABLE_NAME||' (''811UPGRADE_Grp2'') REJECT LIMIT UNLIMITED;';
--dbms_output.put_line(sqlstmtI);
EXECUTE IMMEDIATE('BEGIN '||sqlstmtI||' END;');
commit;
END IF;
--If LOB or LONG data types exist, create error table without them and then insert with logging
IF CountVar2 > 0
THEN
sqlstmtLOB := 'SELECT LTRIM(SYS_CONNECT_BY_PATH(myvalues, '''||','||'''),'''||','||''') into :LOBCommaList
FROM (SELECT myvalues, ROW_NUMBER() OVER (ORDER BY myvalues) rn, COUNT(*) OVER () cnt
FROM (SELECT column_name as myvalues
FROM dba_tables a join dba_tab_columns b ON a.table_name = b.table_name and a.owner = b.owner
where a.table_name = '''||r_c8.TABLE_NAME||''' and
a.owner = '''||r_c8.TABLE_SRC_SCHEMA||''' and b.DATA_TYPE not in (''BLOB'', ''CLOB'', ''LONG'', ''LONG RAW'', ''NCLOB'') )) data
WHERE rn = cnt
START WITH rn = 1
CONNECT BY PRIOR rn = rn-1;';
EXECUTE IMMEDIATE 'BEGIN '||sqlstmtLOB||' END;' USING OUT LOBCommaList;
sqlstmtLOBCat := 'CREATE TABLE '||r_c8.TABLE_DEST_SCHEMA||'.ERR$_'||r_c8.TABLE_NAME||' AS SELECT '||LOBCommaList||' FROM '||r_c8.TABLE_SRC_SCHEMA||'.'||r_c8.TABLE_NAME||' WHERE 1 = 0';
EXECUTE IMMEDIATE sqlstmtLOBCat;
sqlstmtLOBCat2 := 'ALTER TABLE '||r_c8.TABLE_DEST_SCHEMA||'.ERR$_'||r_c8.TABLE_NAME||' ADD (ORA_ERR_NUMBER$ NUMBER, ORA_ERR_MESG$ VARCHAR2(2000 BYTE), ORA_ERR_ROWID$ UROWID(4000), ORA_ERR_OPTYPE$ VARCHAR2(2 BYTE), ORA_ERR_TAG$ VARCHAR2(2000 BYTE))';
EXECUTE IMMEDIATE sqlstmtLOBCat2;
sqlstmtL := 'INSERT INTO '||r_c8.TABLE_DEST_SCHEMA||'.'||r_c8.TABLE_NAME||' SELECT * FROM '||r_c8.TABLE_SRC_SCHEMA||'.'||r_c8.TABLE_NAME||' LOG ERRORS INTO '||r_c8.TABLE_DEST_SCHEMA||'.ERR$_'||r_c8.TABLE_NAME||' (''811UPGRADE_Grp2'') REJECT LIMIT UNLIMITED;';
EXECUTE IMMEDIATE('BEGIN '||sqlstmtL||' END;');
commit;
END IF;
END IF;
END;
Similar Messages
-
Execute immediate with using clause to pass column name dynamically
Hai,
Is there any way using execute immeidate to pass the column name dynamically. I used to pass the column value as dynamic with the help of "Using clause" . But if i use to pass column name, it is giving numberic error at run time. Eg,. for testing has been given below.
1. Column value as dynamic, which is working correctly.
create or replace function testexeimm (acctnum char)
return number as
acctbal number;
begin
execute immediate 'select balance from acct_master where acct_no=:a' into acctbal using acctnum;
return acctbal;
end;
2. Column name as dynamic which is not working
create or replace function testexeimm (colnam char)
return char as
acctbal char;
begin
execute immediate 'select :a from ch_acct_mast where rownum=1' into acctbal using colnam;
return acctbal;
end;
Any help in this regard will be highly appericated.
Regards
SridharSo the variable has to be numeric too:
create or replace function testexeimm (colnam char)
return number as
acctbal number;
begin
execute immediate 'select '|||colnam||' from ch_acct_mast where rownum=1' into acctbal;
return acctbal;
end;Max
http://oracleitalia.wordpress.com -
Execute immediate of Anonymous pl/sql block stored in a VARCHAR2 DB Column
Hi Guys,
I really hope someone can help me with this.
I have the following pl/sql anonymous block stored in a varchar2 database column.
declare
l_my_val varchar2(32767);
cursor c_activity is
SELECT
l.DESCRIPTION || decode(l2.DESCRIPTION,null,'',l2.description, '-' || l2.description) || decode(a.DT,'Y',' - Distributed Training','N',null,null) as value1
FROM ACTIVITY a
,MOUNTAINEERING m
,LOV l
,LOV l2
WHERE a.JSATFA_ID = 82
AND a.SPECIFIC_ACTIVITY_LOV_ID = l.LOV_ID
AND m.ACTIVITY_ID(+) = a.ACTIVITY_ID
AND m.CLASSIFICATION_LOV_ID = l2.LOV_ID(+);
begin
for each_row in c_activity loop
l_my_val := l_my_val || ', ' || each_row.value1;
end loop;
:l_value := ltrim (l_my_val, ', ');
end; The code is select out of the database and assigned to a local variable within my pl/sql package. The following code should demonstrate what I'm trying to achieve:
declare
l_sql varchar2(32767);
l_value varchar2(32767);
begin
select query_sql into l_sql from lov where lov_id = 100;
execute immediate l_sql using out :l_value;
dbms_output.put_line(l_value);
end;However Oracle (10.2.0.2) seems to be doing something funny with the single quotes. and gives the following error:
ORA-06550: line 1, column 1:
PLS-00103: Encountered the symbol "" when expecting one of the following:
begin case declare exit for function goto if loop mod null
package pragma procedure raise return select separate type
update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
form table call close current define delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
library OPERATOR_ pipe
errorIf I embed the code I'm trying to execute within the package i.e
declare
l_sql varchar2(32767);
l_value varchar2(32767);
begin
l_sql := q'~declare
l_my_val varchar2(32767);
cursor c_activity is
SELECT
l.DESCRIPTION || decode(l2.DESCRIPTION,null,'',l2.description, '-' || l2.description) || decode(a.DT,'Y',' - Distributed Training','N',null,null) as value1
FROM ACTIVITY a
,MOUNTAINEERING m
,LOV l
,LOV l2
WHERE a.JSATFA_ID = 82
AND a.SPECIFIC_ACTIVITY_LOV_ID = l.LOV_ID
AND m.ACTIVITY_ID(+) = a.ACTIVITY_ID
AND m.CLASSIFICATION_LOV_ID = l2.LOV_ID(+);
begin
for each_row in c_activity loop
l_my_val := l_my_val || ', ' || each_row.value1;
end loop;
:l_value := ltrim (l_my_val, ', ');
end;
~';
execute immediate l_sql using out :l_value;
dbms_output.put_line(l_value);
end;It works perfectly. Notice I have used the q syntax when embedding the sql directly into the package.
I have tried
- appending the q syntax directly to query_sql stored in the database
- escaping the quotes i.e. ' become ''
Neither method seem to work. We are running 10.2.0.2 on Windows Server 2003. If anyone has any suggestions I would love to hear from you as this has me stumped.
Regards
Kris
- http://kristianjones.blogspot.comIf you do:
declare
l_sql varchar2(32767);
l_value varchar2(32767);
begin
select query_sql into l_sql from lov where lov_id = 100;
dbms_output.put_line(l_sql);
end;
You'll see something like that:
SELECT
l.DESCRIPTION || decode(l2.DESCRIPTION,null,'',l2.description, '-' || l2.description) || decode(a.DT,'Y',' - Distributed Training','N',null,null) as value1
FROM ACTIVITY a
,MOUNTAINEERING m
,LOV l
,LOV l2
WHERE a.JSATFA_ID = 82
AND a.SPECIFIC_ACTIVITY_LOV_ID = l.LOV_ID
AND m.ACTIVITY_ID(+) = a.ACTIVITY_ID
AND m.CLASSIFICATION_LOV_ID = l2.LOV_ID(+);
you need to duplicate the '
you can do many things like:
CTH@> select * from sqls;
C
select first_name || ' ' || last_name as value1 from employees where rownum=1
1 fila seleccionada.
CTH@>
CTH@> ;
1 declare
2 l_sql varchar2(32767);
3 l_value varchar2(32767);
4 type generic_cursor is ref cursor;
5
6 c generic_cursor;
7
8 begin
9 select replace(c, ''', ''''') into l_sql from sqls;
10
11 execute immediate l_sql into l_value;
12 dbms_output.put_line(l_value);
13* end;
CTH@> /
Ellen Abel
Procedimiento PL/SQL terminado correctamente.
CTH@> -
Execute immediate column not allowed here error
Hi,
I have the following procedure
CREATE OR REPLACE PROCEDURE SWF_ICD
IS
SEQSWF NUMBER;
req VARCHAR2(1000):='';
BEGIN
DBMS_OUTPUT.ENABLE( 1000000 ) ;
DBMS_OUTPUT.PUT_LINE('DEBUT');
FOR CUR1 IN (SELECT * FROM ICD WHERE ETAICD=5)
LOOP
SELECT SEQ_SWF.NEXTVAL INTO SEQSWF FROM DUAL;
FOR CUR2 IN (SELECT CODCSWSSW,CODSSW,RUBSSW FROM SSW,OSW
WHERE INSOSW='ICD' AND CODCSWSSW=CODCSWOSW)
LOOP
req:= 'INSERT INTO SWF (SEQESWSWF,CODCSWSWF,CODSSWSWF,VALSWF) '
|| 'VALUES (CUR2.SEQSWF,CUR2.CODCSWSSW,CUR2.CODSSW,CUR1.' || CUR2.RUBSSW || ')';
DBMS_OUTPUT.PUT_LINE('req : ' || req);
EXECUTE IMMEDIATE req;
END LOOP;
END LOOP;
DBMS_OUTPUT.PUT_LINE('FIN');
END;
The procedure is created but when running i have the following error column not allowed here.
pls advise.Hi
Try EXECUTE IMMEDIATE sql USING ... syntax.
EXECUTE IMMEDIATE dynamic_string
[INTO {define_variable[, define_variable]... | record}]
[USING [IN | OUT | IN OUT] bind_argument
[, [IN | OUT | IN OUT] bind_argument]...]
[{RETURNING | RETURN} INTO bind_argument[, bind_argument]...];
Please see the link for more info.
http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/11_dynam.htm#13131
Thanks -
Using Execute Immediate in PLSQL block Vs Stand alone procedure
I am facing very unusual ( atleast unusual to me ) with usage of "Execute Immediate" statement.
I have a table dynamic_sql with one column plsql_block as VARCHAR2(4000);
I have stored some PLSQL blocks ('DECLARE ..... BEGIN.... END.... ) in this column .
Now I want to execute these PLSQL blocks one after other depending on certain conditions .
In order to archive this I wrote a PLSQL block as below
DECLARE
Cursor c1 is
select plsql_block from dynamic_sql
begin
for irec in c1
loop
<<< Condition >>>
begin
execute_immediate(irec.plsql_block);
exception
when others then
raise_application_error(-20001,'error ' ||irec.plsql_block||' '||sqlerrm);
end loop ;
end ;
With above PLSQL block , "execute immediate" is executing PLSQL block successfully without any error
But When I converted above PLSQL block into standalone procedure as shown below , I am getting error .
CREATE OR REPLACE procedure test AS
Cursor c1 is
select plsql_block from dynamic_sql
begin
for irec in c1
loop
<<< Condition >>>
begin
execute_immediate(irec.plsql_block);
exception
when others then
raise_application_error(-20001,'error ' ||irec.plsql_block||' '||sqlerrm);
end loop ;
end ;
BEGIN
test;
end ;
It is showing the value of irec.plsql_block but not showing sqlerrm...
I found this is very unusual as I am able to execute "execute immediate" statement with PLSQL block but not with similar procedure .
can anybody explain me why this is happening?
Thanks in Advance
AmitHello,
It doesn't make any sense to add SQLERRM for user defined exception, unless you want to raise application error for already defined error (e.g NOT_DATA_FOUND, ..)
Check following piece of code and its output,
CREATE OR REPLACE PROCEDURE myinsert1
AS
v_count NUMBER;
v_sql VARCHAR2 (300);
BEGIN
v_sql :=
'INSERT INTO ENTITY_EMPLOYEE VALUES(0,''TIM'',''LASTNAME'',10000)';
BEGIN
EXECUTE IMMEDIATE v_sql;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE (SUBSTR (SQLERRM, 1, 300));
RAISE_APPLICATION_ERROR (-20002, 'My Error ' || SQLERRM, TRUE);
RAISE;
END;
END;
Output._
ORA-20002: My Error ORA-00001: unique constraint (ENTITY_EMPLOYEE_PK) violated
ORA-06512: at "MYINSERT1", line 21
ORA-00001: unique constraint (ENTITY_EMPLOYEE_PK) violated
ORA-06512: at line 2
Regrds -
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,
-Dmitriya 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; -
Problem when using execute immediate str variable into refcursor var
Hi,
I have a packaged function which returns a "strong refcursor" variable to the calling program.
inside this packaged function, i had to use dynamic sql ....
i am doing it somethingl like this...
execute immediate lc_submit_Sql into lrc_submitted;
where lc_submit_Sql contains the query. and lrc_submitted is declared as a refcursor variable which is a recordtype.
when calling this packaged function from an anonymous block getting an error.....
"ora-00932 inconsistent datatypes:expecting - got -"
I checked the select statment columns and the record type columns, their types and order. they are fine.
not sure abt the reason.
any help is appreciated. have some dead lines to meet.
Thanks in advance.
KiranHi John,
the following is the code ....
package spec...
CREATE OR REPLACE PACKAGE refcur_kk IS
--Sample submitted Function
TYPE r_submitted IS RECORD(
q_party_name apps.bpsicc_crm_quote_header_v.party_name%TYPE,
q_party_id apps.bpsicc_crm_quote_header_v.cust_party_id%TYPE,
q_quote_header_id apps.bpsicc_crm_quote_header_v.quote_header_id%TYPE,
q_creation_date apps.bpsicc_crm_quote_header_v.quote_creation_date%TYPE,
q_created_by apps.bpsicc_crm_quote_header_v.quote_created_by%TYPE,
q_quote_status apps.bpsicc_crm_quote_header_v.quote_status%TYPE,
q_quote_name apps.bpsicc_crm_quote_header_v.quote_name%TYPE,
q_quote_number apps.bpsicc_crm_quote_header_v.quote_number%TYPE,
q_internal_project_details apps.bpsicc_crm_quote_line_v.internal_project_details%TYPE,
ql_item apps.bpsicc_crm_item_all_v.item_number%TYPE,
ql_item_link apps.bpsicc_crm_item_all_v.item_link%TYPE,
ql_party_link apps.bpsicc_gcm_party_details_v.party_link%TYPE,
ql_quantity apps.bpsicc_crm_quote_line_v.quantity%TYPE,
q_country apps.bpsicc_gcm_party_sites_v.party_site_country_name%TYPE,
q_territory apps.bpsicc_crm_party_by_terr_mv.territory%TYPE,
q_region apps.bpsicc_crm_party_by_terr_mv.region%TYPE,
q_created_disp apps.bpsicc_crm_quote_header_v.quote_created_by_username%TYPE,
reqst_shipdate apps.bpsicc_crm_quote_header_v.date_of_request%TYPE,
q_item_color apps.bpsicc_crm_item_all_v.item_color%TYPE
TYPE rc_submitted IS REF CURSOR;
RETURN r_submitted;
FUNCTION get_submitted(
pd_start_date IN DATE,
pc_time IN VARCHAR2,
pd_end_date IN DATE,
pc_party_id IN VARCHAR2,
pc_price_class IN VARCHAR2,
ps_section IN VARCHAR2,
pn_sales_channel IN NUMBER,
pc_country IN VARCHAR2,
pc_territory IN VARCHAR2,
pc_region IN VARCHAR2)
RETURN rc_submitted;
and the body of it.....
ls_submit_sql:= 'SELECT bcqhv.party_name q_party_name,'||
'bcqhv.cust_party_id q_party_id,'||
'bcqhv.quote_header_id q_quote_header_id,'||
'TRUNC(bcqhv.quote_creation_date) q_creation_date,'||
'bcqhv.quote_created_by q_created_by,'||
'bcqhv.quote_status q_quote_status,'||
'bcqhv.quote_name q_quote_name,'||
'bcqhv.quote_number q_quote_number,'||
'bcqlv.internal_project_details q_internal_project_details,'||
'bciav.item_number ql_item,'||
'bciav.item_link ql_item_link,'||
'bgpdv.party_link ql_party_link,'||
'bcqlv.quantity ql_quantity,'||
'bgpsv.party_site_country_name q_country,'||
'bcpbtv.territory q_territory,'||
'bcpbtv.region q_region,'||
'bcqhv.quote_created_by_username q_created_disp,'||
'bcqhv.date_of_request reqst_ship_date,'||
'bciav.item_color q_item_color '||
'FROM apps.bpsicc_crm_quote_header_v bcqhv,'||
'apps.bpsicc_crm_party_by_terr_mv bcpbtv,'||
'apps.bpsicc_gcm_party_sites_v bgpsv,'||
'apps.bpsicc_crm_quote_line_v bcqlv,'||
'apps.bpsicc_crm_item_all_v bciav,'||
'apps.bpsicc_gcm_party_details_v bgpdv '||
'WHERE bciav.inventory_item_id = bcqlv.inventory_item_id '||
'AND bcqhv.cust_party_id = bcpbtv.party_id '||
'AND bcqhv.sold_to_party_site_id = bgpsv.party_site_id '||
'AND bgpdv.party_id = bcqhv.cust_party_id '||
'AND bcqlv.quote_header_id = bcqhv.quote_header_id '||
'AND bcqhv.quote_status IN ('||chr(39)||'Submitted to Lab for Review'||chr(39)||','||chr(39)||'Submitted to US Lab for Review'||chr(39)||')';
execute immediate ls_submit_sql into lrc_submitted;
returning lrc_submitted to the report which is calling this function.
using oracle report builder.
kiran -
How to use cursor in EXECUTE IMMEDIATE command.
i.e. I have a dynamic SELECT query where I will get huge records while using EXECUTE IMEDIATE command, which I want that to be in a cursor.
Can I do this ? If yes how ?Hi, it works perferctly fine with me. Oracle version 10.2.0.4
SQL> --create table t as select * from user_objects; ----->>> My mistake, there is no owner column in the table user_objects
SQL> create table t as select * from all_objects;
Table created.
SQL> CREATE OR REPLACE PROCEDURE dynamic_table (
2 table_name IN VARCHAR2,
condition IN VARCHAR2 DEFAULT NULL) AS
3 4 where_clause VARCHAR2(100) := ' WHERE ' || condition;
5 v_table varchar2(30);
6 type v_typet is table of t%rowtype index by pls_integer;
7 v_tableT v_typeT;
8 BEGIN
-- first make sure that the table actually exists; if not, raise an exception
SELECT OBJECT_NAME INTO v_table FROM USER_OBJECTS
9 10 11 where object_name = upper(table_name) and object_type = 'TABLE';
if condition is null then where_clause := ' order by object_type'; end if;
12 13 execute immediate 'SELECT * from ' || v_table || where_clause bulk collect into v_tablet;
14 for indx in 1..v_tablet.count loop
dbms_output.put_line(v_tablet(indx).owner || ' ' || v_tablet(indx).status);
15 16 end loop;
17 EXCEPTION
18 when no_data_found then
19 dbms_output.put_line ('Invalid table: ' || table_name);
20 end;
21 /
Procedure created.
begin
dynamic_table('T', '');
--Enter the table name you want for the 1st parameter and the condition for the second parameter.
--I think you just want to switch from tables where you want to select.
end;
/Edited by: Spongebob on May 25, 2010 1:33 PM -
How to take output of execute immediate 'select * from table' into a file ?
hi all,
below is my code .....
declare
var_column_name varchar2(2000);
main_string varchar2(12000);
var_table_name varchar2(30);
base_string varchar2(2000);
final_string varchar2(2000);
cursor c1 is
select
object_name
from user_objects
where object_type in ('TABLE','VIEW') and rownum < 2 ;
cursor c2 is
select
column_name
from user_tab_columns
where upper(table_name) = upper(var_table_name);
begin
--var_column_name := null;
-- main_string :=null;
-- table_name :=null ;
-- base_string :=null;
-- final_string := null;
open c1;
fetch c1 into var_table_name;
close c1;
for c2_var in c2
loop
main_string := c2_var.column_name||','||main_string;
end loop;
select rtrim(main_string,',') into final_string from dual;
dbms_output.put_line(final_string);
base_string := 'Select '||final_string ||' from '||var_table_name||'' ;
dbms_output.put_line(base_string);
spool tete.lst;
execute immediate base_string;
spool off;
end;
i want to take the output of the execute immediate in a file on unix server ....
please suggest
rgds
sWere you looking for something like this?
SELECT
CASE WHEN Columns.Column_Id = 1 THEN 'SELECT ' || CHR(10) END
|| CHR(09) || Columns.Column_Name
|| CASE
WHEN Columns.Column_Id = Info.Total_Columns THEN
CHR(10) || 'FROM'
|| CHR(10) || CHR(09) || Columns.Table_Name || ';'
|| CHR(10)
ELSE ','
END Statement
FROM
User_Tab_Columns Columns,
SELECT
Table_Name,
MAX(Column_Id) Total_Columns
FROM
User_Tab_Columns
GROUP BY
Table_Name
) Info
WHERE
Columns.Table_Name = Info.Table_Name
ORDER BY
Columns.Table_Name,
Columns.Column_Id; -
I am using oracle 10G XE.
When I have the following, it works fine..
========================================
FOR report_c IN report_cur LOOP
FOR i in 1 .. 62 loop
INSERT INTO trip_stop (sc_v, r_id, b_id,
code_id, terminal, seq_num, bs_id, flag, note_id, eta_string)
VALUES (report_c.sc_v, report_c.r_id, report_c.b_id,
report_c.code_id, report_c.terminal, i , report_c.st_id1,
report_c.flag1, report_c.note1, report_c.eta1);
COMMIT;
END LOOP;
END LOOP;
========================================
I need to use a dynamic sql to change the column name
i.e.: from id1 to id2 then to id3, etc..
I need to repeat this 62 times.. So I tried to use the following, but I got error:
ORA-00984: column not allowed
Any idea??? Any suggestion??
Thanks
========================================
FOR report_c IN report_cur LOOP
FOR i in 1 .. 62 loop
stmt:= ' INSERT INTO trip_stop ' ||
' (sc_v, r_id, b_id, ' ||
' code_id, terminal, ' ||
' seq_num, bs_id, flag, note_id, eta_string) ' ||
' VALUES (report_c.sc_v, report_c.r_id, report_c.b_id, ' ||
' report_c.code_id, report_c.terminal, ' ||
i ||','|| c_st_id||','|| c_flag||','|| c_note||','|| c_eta|| ' ||);' ;
i ||', report_c.st_id' || i || ', report_c.flag' || i||', report_c.note' || i||', report_c.eta' || i||');' ;
EXECUTE IMMEDIATE stmt;
END LOOP;
END LOOP;I would suggest "unpivoting" that table by turning each row in the source table into 62 rows - that way you can insert into/select from and do this in one insert statement with no procedural or dynamic code at all.
Here's an example going 1-2 instead of 1-62:
sql>select * from t;
SC_V R_ID B_ID ST_ID1 FLAG1 ETA1 ST_ID2 FLAG2 ETA2
0 123 1111 101 1 1001 102 0 1002
0 124 1112 201 1 2001 202 0 2002
0 125 1113 301 1 3001 302 0 3002
3 rows selected.
sql>select *
2 from t, (select rownum rn from dual connect by level <= 2) d
3 order by t.r_id, d.rn;
SC_V R_ID B_ID ST_ID1 FLAG1 ETA1 ST_ID2 FLAG2 ETA2 RN
0 123 1111 101 1 1001 102 0 1002 1
0 123 1111 101 1 1001 102 0 1002 2
0 124 1112 201 1 2001 202 0 2002 1
0 124 1112 201 1 2001 202 0 2002 2
0 125 1113 301 1 3001 302 0 3002 1
0 125 1113 301 1 3001 302 0 3002 2
6 rows selected.
sql>select t.sc_v, t.r_id, t.b_id,
2 case rn
3 when 1 then st_id1
4 when 2 then st_id2
5 end st_id,
6 case rn
7 when 1 then flag1
8 when 2 then flag2
9 end flag,
10 case rn
11 when 1 then eta1
12 when 2 then eta2
13 end eta
14 from t, (select rownum rn from dual connect by level <= 2) d
15 order by t.r_id;
SC_V R_ID B_ID ST_ID FLAG ETA
0 123 1111 101 1 1001
0 123 1111 102 0 1002
0 124 1112 201 1 2001
0 124 1112 202 0 2002
0 125 1113 301 1 3001
0 125 1113 302 0 3002
6 rows selected. -
Execute immediate fundamentals
I was trying to create a scritpt to kill all inactive session in my session. So i did this
declare
type v_sid_type is table of NUMBER;
type v_serial_type is table of NUMBER;
v_sid v_sid_type ;
v_serial v_serial_type;
sqlStmt VARCHAR2(1000);
begin
select sid into v_sid from v$session where status='inactive';
select serial# into v_serial from v$session where status='inactive';
sqlstmt := 'alter system kill session ''' ||to_char(v_sid) ||',' ||to_char(v_serial) ||'''' ;
dbms_output.put_line( sqlstmt );
execute immediate sqlstmt;
end;
But i got the error:
ERROR at line 9:
ORA-06550: line 9, column 17:
PLS-00642: local collection types not allowed in SQL statements
ORA-06550: line 10, column 21:
PLS-00642: local collection types not allowed in SQL statements
Any thoughtsIn my environment I use this trick that allows me to execute any sort of dynamic SQL.
This are the needed objects.
CREATE GLOBAL TEMPORARY TABLE text_stream
(idx NUMBER(*,0) NOT NULL,
text CLOB)
ON COMMIT PRESERVE ROWS
CREATE OR REPLACE TYPE string_table as
table of varchar2(4000)
CREATE OR REPLACE
FUNCTION divide_clob(
string in clob,
len in integer
return string_table
pipelined
is
i integer;
lob_len integer;
begin
i := 1;
lob_len := dbms_lob.getlength(string);
while ( i <= lob_len) loop
pipe row (substr(string,i,len));
i := i + len;
end loop;
return;
end divide_clob;
CREATE OR REPLACE procedure execute_text_stream
as
dyn_cur number;
outv number;
ddl_stat dbms_sql.varchar2a;
acapo varchar2(256);
lospool varchar2(256);
cursor get_stream is
select text
from text_stream
order by (idx);
BEGIN
for stat in get_stream loop
begin
select *
bulk collect into ddl_stat
from table (
divide_clob(stat.text,256)
dyn_cur := dbms_sql.open_cursor;
dbms_sql.parse(c => dyn_cur,
statement => ddl_stat,
lb => ddl_stat.first,
ub => ddl_stat.last,
lfflg => false,
language_flag => dbms_sql.native
outv := dbms_sql.execute(dyn_cur);
dbms_sql.close_cursor(dyn_cur);
exception
when others then begin
dbms_sql.close_cursor(dyn_cur);
dbms_output.put_line('Error on :'||ddl_stat(1));
raise;
end;
end;
end loop;
delete from text_stream;
exception
when others then begin
delete from text_stream;
raise;
end;
END; -- Procedure
/I use a table of LOBs containing the statements I want to execute with a column idx indicating the order of executions. After I call a stored procedure to execute them in the right order.
In your case you could do something like this.
begin
insert
into text_stream(
idx,
text
select rownum as idx,
'alter system kill session '''||sid||','||serial#||''''
from gv$session
where <whatever>;
execute_text_stream;
end;
/Bye Alessandro -
Error while insert data using execute immediate in dynamic table in oracle
Error while insert data using execute immediate in dynamic table created in oracle 11g .
first the dynamic nested table (op_sample) was created using the executed immediate...
object is
CREATE OR REPLACE TYPE ASI.sub_mark AS OBJECT (
mark1 number,
mark2 number
t_sub_mark is a class of type sub_mark
CREATE OR REPLACE TYPE ASI.t_sub_mark is table of sub_mark;
create table sam1(id number,name varchar2(30));
nested table is created below:
begin
EXECUTE IMMEDIATE ' create table '||op_sample||'
(id number,name varchar2(30),subject_obj t_sub_mark) nested table subject_obj store as nest_tab return as value';
end;
now data from sam1 table and object (subject_obj) are inserted into the dynamic table
declare
subject_obj t_sub_mark;
begin
subject_obj:= t_sub_mark();
EXECUTE IMMEDIATE 'insert into op_sample (select id,name,subject_obj from sam1) ';
end;
and got the below error:
ORA-00904: "SUBJECT_OBJ": invalid identifier
ORA-06512: at line 7
then when we tried to insert the data into the dynam_table with the subject_marks object as null,we received the following error..
execute immediate 'insert into '||dynam_table ||'
(SELECT887684 wrote:
ORA-00904: "SUBJECT_OBJ": invalid identifier
ORA-06512: at line 7The problem is that your variable subject_obj is not in scope inside the dynamic SQL you are building. The SQL engine does not know your PL/SQL variable, so it tries to find a column named SUBJECT_OBJ in your SAM1 table.
If you need to use dynamic SQL for this, then you must bind the variable. Something like this:
EXECUTE IMMEDIATE 'insert into op_sample (select id,name,:bind_subject_obj from sam1) ' USING subject_obj;Alternatively you might figure out to use static SQL rather than dynamic SQL (if possible for your project.) In static SQL the PL/SQL engine binds the variables for you automatically. -
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,
JureWell 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 -
Error in execute immediate statement
i am writing a stored procedure i am getting error
v_Sql NVARCHAR2(1500);
BEGIN
v_Sql := 'Select * from vw_FillPatient Where 1 = 1 ';
IF v_pVisitTypeID <> 0 THEN
v_Sql := v_Sql || ' AND VisitTypeID = ' || CAST(v_pVisitTypeID AS VARCHAR2) || '';
ELSE
IF v_pVisitTypeID = 0 THEN
v_Sql := v_Sql || ' AND VisitTypeID In (1,2,6)';
END IF;
END IF;
v_Sql := v_Sql || ' AND VisitDate between ''' || TO_CHAR(v_pFromDate,'''DD_MON_YYYY''')
|| ''' and ''' || TO_CHAR(v_pToDate,'''DD-MON-YYYY''') || '''';
v_Sql := v_Sql || ' ORDER BY VisitID ';
EXECUTE IMMEDIATE v_Sql;-- error in this line as shown by SQL Developer
end;
error
Error(64,22): PLS-00382: expression is of wrong typev_Sql NVARCHAR2(1500);
BEGIN
V_SQL := 'Select * from vw_FillPatient Where 1 = 1 ';
IF V_PVISITTYPEID=0 THEN
v_Sql := v_Sql || ' AND VisitTypeID = ''' || CAST(v_pVisitTypeID AS VARCHAR2) || '''';
ELSE
IF v_pVisitTypeID = 0 THEN
v_Sql := v_Sql || ' AND VisitTypeID In (1,2,6)';
END IF;
END IF;
V_SQL :=
V_SQL || ' AND VisitDate between to_date(''' ||V_PFROMDATE||''',''DD-MON-YYYY'') and '
|| 'to_date('''||v_pToDate||''',''DD-MON-YYYY'')';
v_Sql := v_Sql || ' ORDER BY VisitID ';
EXECUTE IMMEDIATE v_Sql;-- error in this line as shown by SQL Developer
END;try it , please
I think your V_PFROMDATE, and V_PTODATE is varchar
elsif V_PFROMDATE and V_PTODATE id date then
V_SQL || ' AND VisitDate between to_date(''' ||to_char(V_PFROMDATE,'DD-MON-YYYY')||''',''DD-MON-YYYY'') and '
|| ' to_date('''||to_char(v_pToDate,'DD-MON-YYYY')||''',''DD-MON-YYYY'')';Edited by: Mahir M. Quluzade on Mar 1, 2011 11:15 AM
Edited by: Mahir M. Quluzade on Mar 1, 2011 11:22 AM -
Java Stored Procedure in EXECUTE IMMEDIATE
Hi,
I need advice for the following.
I'm on Oracle 11g R2. I'm testing application in Oracle 11gR1 and R2 and Oracle Express.
Purpose is to generate XML reports.
I have PLSQL Stored Procedure which does that, but since there is bug in Oracle11gR2 related to XMLTRANSFORM I have and Java Stored Procedure which is workaround. They are both compiled, valid etc.
Java class is :
import java.io.PrintWriter;
import java.io.Writer;
import oracle.xml.parser.v2.DOMParser;
import oracle.xml.parser.v2.XMLDocument;
import oracle.xml.parser.v2.XSLProcessor;
import oracle.xml.parser.v2.XSLStylesheet;
* This class is used as Java stored procedure
* There is a bug on Oracle11gR2, related to the limitation on the number of style sheet instructions
* This stored procedure is workaround when PLSQL code can not be used.
* File must not have package, otherwise is wrongly compiled in DB
public class JavaXslt {
public static void XMLTtransform(oracle.sql.CLOB xmlInput,oracle.sql.CLOB xslInput,oracle.sql.CLOB output) throws Exception{
DOMParser parser;
XMLDocument xml;
XMLDocument xsldoc;
try{
parser = new DOMParser();
parser.parse(xmlInput.getCharacterStream());
xml = parser.getDocument();
parser.parse(xslInput.getCharacterStream());
xsldoc = parser.getDocument();
XSLProcessor processor = new XSLProcessor();
XSLStylesheet xsl = processor.newXSLStylesheet(xsldoc);
Writer w = output.setCharacterStream(1L);
PrintWriter pw = new PrintWriter(w);
processor.processXSL(xsl, xml, pw);
}catch (Exception ex){
throw ex;
PROCEDURE Java_XmlTransform (xml CLOB, xslt CLOB, output CLOB) AS LANGUAGE JAVA
NAME 'JavaXslt.XMLTtransform(oracle.sql.CLOB, oracle.sql.CLOB, oracle.sql.CLOB)';
I'm calling Java stored procedure from PLSQL Stored procedure (if it is Oracle11gR2) like that :
Java_Proc.Java_XmlTransform(inputXML, xslt, res);
So till here everything works ok. XSLT as applied and output XML (res) is OK.
But when Oracle Express is used Java is out of the question, so there is no Java stored procedure. Howewer PLSQL Stored procedure is still needed.
So I had to put call to Java Stored procedure in EXECUTE IMMEDIATE statement in order to compile to PLSQL package.
But when I do that :
EXECUTE IMMEDIATE 'BEGIN Java_Proc.Java_XmlTransform (:1, :2, :3); END;' USING inputXML, xslt, res;
result value CLOB (res) has zero length...
What am I missing? Should i set return value to Java class?
Hope my explanations are clear though.
ThanksHi odie_63,
Thanks for quick response.
I didn't clearly explained.
When using Oracle 11gR1 and Oracle Express I'm using only PLSQL Procedure.
When using Oracle 11gR2 i have to use Java Stored procedure because there is documented bug in R2.
That's why i have to use EXECUTE IMMEDIATE. I don't know which version is the client DB and whether there is or no Java procedures.
I did tried
EXECUTE IMMEDIATE 'BEGIN Java_Proc.Java_XmlTransform (:1, :2, :3); END;' USING IN inputXML, IN xslt, OUT res; and the result was ORA-06537: OUT bind variable bound to an IN position
When using IN OUT for last parameter i.e.
EXECUTE IMMEDIATE 'BEGIN Java_Proc.Java_XmlTransform (:1, :2, :3); END;' USING IN inputXML, IN xslt, IN OUT res;
there is no exception, but still DBMS_LOB.getlength(res) = 0
Thanks
Maybe you are looking for
-
Did JWS prompt for file associations in 1.5?
I have a vague memory of running a sandboxed app. that claims file associations, and being pleased to see a prompt asking whether I (as a user) actually wanted to make the file association. That was in 1.5. I just tried the same app. again in 1.6 (it
-
How to control "Adobe PDF" Printer?
Hello Everyone, We have a designed a large crystal report containing around 270 pages with lots of high quality images related to properties available for sale. When we try to export this report to PDF after exporting 20-50 pages (depending on t
-
Materialized view (creating and complete refresh)
Good day. I have a huge query that is used to create a materialized view. The query consist of 9 joins, a lot of aggregations, some subqueries, so we can say it is rather huge. The query itself executes for about 30 seconds and returns about 200 rows
-
Function Keys on Selection-Screen
Hi, I used function keys in one of my report program. Now, if some check box is checked in the customization that function should be displayed, otherwise shouldnot be displayed. I made use of "loop at screen" to make that application button invisible
-
Unsupported Image Format RAW (NEF) Nikon d7000 in Aperture 3, why?
I just bought a Nikon D7000. According to the Aperture 3 specs, it supports RAW (NEF) format from this camera. However, I get the message that the image format, which loads as thumbnails in the viewer, is not supported. I just downloaded the trial