You can not use the sql task to perform operations like this cinsce the task
is only designed for single sqlstatements and launches the code ar the first
";". 

In your case 

create or replace trigger addresses_trg
before insert on addresses
for each row
begin
   if :new.address_id is null then  
     select addresses_seq.nextval
     into :new.address_id
     from dual;
   end if;

which makes no sence to oracle. By using the delimiter option you can change
the behaviour to launch at "/" on a single row. Thus it is possible to launch
block statements.

I have made a modified sqltask though, that is made especially to handle all
kinds of Oracle statements that I can send you if you like. 

/Johan

-----Original Message-----
From: Gauti Reynisson [mailto:[EMAIL PROTECTED]]
Sent: den 1 november 2001 14:21
To: [EMAIL PROTECTED]
Subject: sql task doesn't execute script


Hi!

I have a problem with executing a sql script through the sql task.

When I come to this decleration in the script:


create or replace trigger addresses_trg
before insert on addresses
for each row
begin
   if :new.address_id is null then  
     select addresses_seq.nextval
     into :new.address_id
     from dual;
   end if;
end;
/

... it fails and says

      [sql] SQL: create or replace trigger cls_addresses_bir_trg before
insert on cls_addresses_tb for each row begin if :new.address_id is null
then  
     select addresses_seq.nextval
     into :new.address_id
     from dual;
      [sql] -1 rows affected
      [sql] SQL: end if;
      [sql] Failed to execute: end if

BUILD FAILED

All tables and sequences have been created when this part is executed.

Am I doing something wrong?

cheers,

Gauti

PS. my ant task looks like:

<sql driver="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@host:1521:orcl" userid="user" password="pass">
                        <transaction src="${database}/scriptName.sql"/>
                        <classpath>
                                <pathelement
location="${lib}/oracle/jdbc/classes12.jar"/>
                        </classpath>
                </sql>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to