create or replace trigger calcData
after insert on 进帐明细
for each row
declare
begin
pkgTiJiao.calcData(new.单价, new.日期);
end 进帐明细;CREATE OR REPLACE PACKAGE BODY pkgTiJiao IS
PROCEDURE calcData(
日期 VARCHAR2,
单价, NUMBER) IS
begin
....
end SetGisData;pkgTiJiao.calcData(new.单价, new.日期);这句如何写?
--表名和字段名竟然用中文......
create or replace trigger calcData
before insert on 进帐明细
for each row
begin
pkgTiJiao.calcData(:new.单价,:new.日期);
end 进帐明细;
before insert on 进帐明细
for each row
begin
pkgTiJiao.calcData(:new.单价,:new.日期);
end 进帐明细;
create or replace trigger calcData before insert on 进帐明细
for each row
declare
begin
pkgTiJiao.calcData(:new.单价, :new.日期);
end 进帐明细;
---注意对于事后的触发器 不能修改:new.col 的值
SQL> create table tt(id number)
2 .
SQL> /表已创建。SQL> ed
已写入 file afiedt.buf 1 create or replace trigger tri_tt after insert on tt for each row
2 begin
3 :new.id:=2;
4* end;
SQL> /
create or replace trigger tri_tt after insert on tt for each row
*
第 1 行出现错误:
ORA-04084: 无法更改此触发器类型的 NEW 值
SQL> ed
已写入 file afiedt.buf 1 create or replace trigger tri_tt before insert on tt for each row
2 begin
3 :new.id:=2;
4* end;
SQL> /触发器已创建SQL> insert into tt values(1)
2 /已创建 1 行。SQL> commit
2 /提交完成。SQL> select * from tt
2 / ID
----------
2
pkgTiJiao.calcData(new.单价, new.日期);
--->
pkgTiJiao.calcData(:new.单价, :new.日期);