| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Oracle Trigger
On Tue, 03 Feb 2004 19:58:53 +0000, Andy Hassall <andy_at_andyh.co.uk> wrote:
>On Tue, 3 Feb 2004 16:39:21 GMT, Rajesh Patel <rpatel_at_rajix.com> wrote:
>
>>I had a sql file that just had Creates for
>>tables/views. Then I tried to add a trigger.
>>
>>I was using a jdbc connection to send the sql
>>file to the database. That worked great until
>>I added the trigger. I kept getting errors from
>>oracle.
>
> Presumably you have ':new' or ':old' in the trigger. This would get
>interpreted as a bind variable from most interfaces. You may be able to
>suppress this depending on your interface, or maybe not. I don't know whether
>you can in JDBC, haven't worked with it much.
>
> But anyway - post the error message, as it may be something entirely
>different.
Can create triggers with JDBC from here, anyway. :new doesn't seem to cause a problem, even with a PreparedStatement.
import java.sql.*; import java.math.*; import java.io.*; import java.awt.*;
class JdbcTest {
public static void main (String args []) throws SQLException {
// Load Oracle driver
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
// Connect to the local database
Connection conn = DriverManager.getConnection
("jdbc:oracle:oci:@dev92lnx", "test", "test");
Statement stmt = conn.createStatement();
try {
stmt.executeUpdate("drop table t");
}
catch (SQLException e) {
}
stmt.executeUpdate("create table t (c1 number)");
String trig = "create or replace trigger testtrigger\n" +
"after insert on t\n" +
"for each row\n" +
"declare\n" +
" v t.c1%type;\n" +
"begin\n" +
" v := :new.c1;\n" +
"end;";
System.out.println(trig);
stmt.executeUpdate(trig);
System.out.println("Trigger created.");
PreparedStatement prepstmt = conn.prepareStatement(trig);
prepstmt.executeUpdate();
System.out.println("Trigger created.");
stmt.close();
conn.close();
Outputs:
create or replace trigger testtrigger
after insert on t
for each row
declare
v t.c1%type;
begin
v := :new.c1;
end;
Trigger created.
Trigger created.
So... post some errors and/or some code.
-- Andy Hassall <andy_at_andyh.co.uk> / Space: disk usage analysis tool <http://www.andyh.co.uk> / <http://www.andyhsoftware.co.uk/space>Received on Tue Feb 03 2004 - 15:13:44 CST
![]() |
![]() |