hal itu dikarenakan user tersebut belum diberikannya hak akses buat melakukan 
triger..
coba di ketik di oracle seperti ini
grant resource to <nama_user>

semoga berhasil


________________________________
Dari: Del Ester <[email protected]>
Kepada: [email protected]
Terkirim: Sel, 9 Februari, 2010 10:50:17
Judul: [indo-oracle] Tanya Trigger n save

  
Hallo para senior Oracle.
Saya baru belajar Oracle dapat kesulitan, mudahan2 para senior oracle ada yang 
bisa memberikan penyegaran.. ......
aku mau membuat trigger dari contoh di bawah ini.

1. untuk create table sih gak ada masalah, semuanya "table created",
2. setelah nyoba create dua trigger, ke dua duanya keluar pesan "ORA-01031: 
insufficient privilages".
kenapa yah.... apa memang ada yang salah dari dua sintak trigger tersebut.
3. dalam penulisannya apa memang harus di ikutkan kata2 replace untuk create 
(baru).
4. sintak2 seperti ini apa bisa di simpan (dalam satu file/tempat) dan sewaktu2 
bisa di panggil untuk modifikasi,

Sekian dari saya atas kebaikan hati para senior Oracle untuk memberikan 
tanggapan dan pencerahannya saya ucapkan terima kasih.

NB.
Berikut adalah sintak yang saya coba

1. Buat tabel dan mendefinisikan constraint
SQL> CREATE TABLE MASTER_BARANG
2  (KODE_BRG NUMBER(4) PRIMARY KEY,
3  NAMA_BRG VARCHAR2(20) NOT NULL,
4  HARGA NUMBER(10),
5  STOCK NUMBER(4));
Table created.

SQL> CREATE TABLE ORD
2  (NO_ORDER NUMBER(4) PRIMARY KEY,
3  ID_SUPPLIER NUMBER(4) NOT NULL,
4  TGL_ORDER DATE,
5  RP_TOTAL NUMBER(12));
Table created.

SQL> CREATE TABLE ORDER_DETAIL
2  (NO_ORDER NUMBER(4) REFERENCES ORD(NO_ORDER) ,
3  NO_URUT NUMBER(3),
4  KODE_BRG NUMBER(4) REFERENCES MASTER_BARANG( KODE_BRG) ,
5  HARGA NUMBER(10),
6  QTY NUMBER(4),
7  SUBTOTAL NUMBER(10));
Table created.

SQL> CREATE TABLE SALES
2  (NO_SALES NUMBER(4) PRIMARY KEY,
3  ID_CUST NUMBER(4) NOT NULL,
4  TGL_SALES DATE,
5  RP_TOTAL NUMBER(12));
Table created.

SQL> CREATE TABLE SALES_DETAIL
2  (NO_SALES NUMBER(4) REFERENCES SALES(NO_SALES) ,
3  NO_URUT NUMBER(3),
4  KODE_BRG NUMBER(4) REFERENCES MASTER_BARANG( KODE_BRG) ,
5  HARGA NUMBER(10),
6  QTY NUMBER(4),
7  SUBTOTAL NUMBER(10));
Table created. 

2. Membuat Trigger Database

SQL> CREATE OR REPLACE TRIGGER update_STOCK_ brg_ord
2  BEFORE INSERT OR UPDATE OF QTY ON order_detail
3  FOR EACH ROW
4  BEGIN
5    IF NVL(:OLD.QTY, 0) < NVL(:NEW.QTY, 0) THEN
6       UPDATE MASTER_BARANG
7       SET STOCK = STOCK + (NVL(:NEW.QTY, 0)-NVL(:OLD. QTY,0))
8       WHERE KODE_BRG = :NEW.KODE_BRG;
9    ELSE
10      UPDATE MASTER_BARANG
11      SET STOCK = STOCK - (NVL(:OLD.QTY, 0)-NVL(:NEW. QTY,0))
12      WHERE KODE_BRG = :NEW.KODE_BRG;
13    END IF;
14  END;
15  /
ORA-01031: insufficient privilages

SQL> CREATE OR REPLACE TRIGGER update_STOCK_ brg_sales
2  BEFORE INSERT OR UPDATE OF QTY ON sales_detail
3  FOR EACH ROW
4  BEGIN
5    IF NVL(:OLD.QTY, 0) < NVL(:NEW.QTY, 0) THEN
6       UPDATE MASTER_BARANG
7       SET STOCK = STOCK - (NVL(:NEW.QTY, 0)-NVL(:OLD. QTY,0))
8       WHERE KODE_BRG = :NEW.KODE_BRG;
9    ELSE
10      UPDATE MASTER_BARANG
11      SET STOCK = STOCK + (NVL(:OLD.QTY, 0)-NVL(:NEW. QTY,0))
12      WHERE KODE_BRG = :NEW.KODE_BRG;
13   END IF;
4  END;
15  /
ORA-01031: insufficient privilages

[Non-text portions of this message have been removed]


 


      Berselancar lebih cepat. Internet Explorer 8 yang dioptimalkan untuk 
Yahoo! otomatis membuka 2 halaman favorit Anda setiap kali Anda membuka 
browser. Dapatkan IE8 di sini! 
http://downloads.yahoo.com/id/internetexplorer

[Non-text portions of this message have been removed]

Kirim email ke