大家注意,是ORACLE的问题!!!!一下语句ORACLE怎么写
现在有一个表
A(id,col1,col2)
表B (id,col3)
函数 fun(参数id)
创建一个insert 一个update触发器如果发生以上操作,执行语句 : insert into 表B(id,col3) values(id,fun(参数id) )
现在有一个表
A(id,col1,col2)
表B (id,col3)
函数 fun(参数id)
创建一个insert 一个update触发器如果发生以上操作,执行语句 : insert into 表B(id,col3) values(id,fun(参数id) )
解决方案 »
- oracle 合并多条查询记录为一条查询记录
- 问个简单问题 帮帮忙 多用户怎么向一个表里插值啊
- 一个语句,数据量大,想提高一下oracle的性能,有高人么?
- 10g客户端能否连接9i
- 请问怎么查询oracle的pl/sql方面的文档?
- 救命!!!关于恢复误删的表的问题。(
- internal 用户的修改
- 如何获得判断结果! 在线等,急!!
- 【救命】视图中的sql代码(含子查询) copy 到 包过程中 编绎不通过?
- PL/SQL中存储过程进行测试,点击开始调试器(F9)后,”运行“、”单步进入“、”单步跳过“变灰无法进入断点
- PL/SQL Developer被意外关闭生成的PLS-Recovery能否指定存放目录
- 数据库两张表查询
insert into B(id,col3) values(:new.id,fun(:new.id));end;这样?
--你在触发器中用函数去获取更新列的值是做不到的,因你获取时,当前的记录已经改变了
--例:
create table A(
id int,
col1 varchar2(20),
col2 varchar2(20)
);
create table B(
id int,
col3 varchar2(20));create or replace function fun(p_id int)
return varchar2
as
retval varchar2(1000);
begin
select nvl(col1,'')||nvl(col2,'') into retval from A where id=p_id;
return retval;
end;
/create or replace trigger A_ins_upd
after insert or update
on A
for each row
begin
--insert into B values(:new.id,fun(:new.id));
insert into B values(:new.id,nvl(:new.col1,'')||nvl(:new.col2,''));
end;
/insert into A values(1,'2','3');select * from B;update A set col1='4',col2='5' where id=1;select * from B;
create or replace trigger A_ins_upd
after insert or update
on A
for each row
begin
insert into B values(:new.id,fun(:new.id));end;