要求:
1、表中的一个日期字段与系统日期比较,当日期小于系统日期触发;
2、触发修改一个此表中字段的内容。
1、表中的一个日期字段与系统日期比较,当日期小于系统日期触发;
2、触发修改一个此表中字段的内容。
解决方案 »
- 读取数据库时,只能读取前两列的值
- 关于oracle连接数释放问题
- 内网的ORACLE怎样实现和外部的ORACLE数据库同步??
- OracleOraDb10gManagementServer服务启动不起来
- 有谁在 红旗4.1上装过 oracle10g
- 求sql
- 怎么把一个数据库迁移到另外一个数据库中去?
- 基本问题:我现在在oracle客户端的scott用户下,想访问服务器上的表emp,(服务已建好,连接没问题),表的全路径应该怎么写?
- 请问:在oracle里的哪个配置文件里修改参数,可以用PLSQL任意连接到其他数据库??
- 多台Oracle数据库服务器,请教这些服务器上的数据库内容如何进行同步?
- 关于在oracle中创建index的问题
- 存储过程中,有没有遇到异常,跳过的执行的方法?
before update on youtablename
referencing NEW as FNew
for each row
begin
if :FNew.DateField < sysdate then
:FNew.ChangeField = ChangeValue;
end if;
exception
when others then
return;
end TriggerName;
还有 FNew.ChangeField = ChangeValue
before update on youtablename --你要操作的表名
referencing NEW as FNew --可以不这么写,代码里面的FNew 改成 NEW就可以
for each row
begin
if :FNew.DateField < sysdate then --:FNew.DateField 你要判断的日期字段
:FNew.ChangeField := ChangeValue; -- :FNew.ChangeField 你要更改的字段,ChangeValue 你要改成的值。
end if;
exception
when others then
return;
end TriggerName;
OLD就是旧的记录
我想让它在查询之前改变!
BEFORE and AFTER ROW for INSERT, UPDATE, and DELETE.
CREATE OR REPLACE TRIGGER temp_biudr
BEFORE INSERT OR UPDATE OR DELETE ON TEMP
FOR EACH ROW
BEGIN
CASE
WHEN inserting THEN
dbms_output.put_line('inserting before');
WHEN updating THEN
dbms_output.put_line('updating before');
WHEN deleting THEN
dbms_output.put_line('deleting before');
END CASE;
END;CREATE OR REPLACE TRIGGER temp_aiudr
AFTER INSERT OR UPDATE OR DELETE ON TEMP
FOR EACH ROW
BEGIN
CASE
WHEN inserting THEN
dbms_output.put_line('inserting after');
WHEN updating THEN
dbms_output.put_line('updating after');
WHEN deleting THEN
dbms_output.put_line('deleting after');
END CASE;
END;
我想表的一个字段是随系统时间的变化,而变化的,而不一定是要更新表,这个有方法实现吗?