怎么在Oracle里边写一个tigger ,这个trigger是在某个table更新完了触发的,而这个trigger会用到select 某个table的语句的cursor, 为了防止row changed between retrieve and update 这样的错误,我应该怎么写呢?
解决方案 »
- 有这么个变态需求,能否用一句SQL实现
- 关于DBMS_STATS.GATHER_TABLE_STATS的统计结果,在那里可以查看到呢
- 监听器启动又自动关闭,试过N种方法均不行...
- ORACLE能不能根据日志查出哪个机器访问了SQL SERVER数据库,执行了哪些操作
- 一个简单SQL语句的问题
- 不同用户之间的数据倒换
- 请问:varchar在各种数据库中的最大长度
- 企业管理器进不去了,提示没有监听器啊,刚重装了没多久,又出了同样的问题。sqlplus可以登录的。
- oracle816配置问题
- 如何由table1生成table2?
- 从未见之怪现象 select sysdate from dual 带不带服务名连接 结果不一致
- 触发器或check问题,我也不清楚..
table_1
wo_no(key)
wo_seq(key)
wo_begin_date
wo_end_date
custom_1
...
另一表是
table_2
wo_no
wo_seq
trx_no(key)
dsp_seq(显示次序)
resource_code现在有一个wo_no = 1 的记录连着3条table_2的数据, 现要在每次table_2的更新时,比如改变显示顺序,要把显示顺
序最小的那个resource_code 写到table1 的custom_1里边.什么情况下才算是table_2所有记录都更新完了呢?因为如果在没有更新完的情况下,我要比较显顺序比较麻烦.比如当前顺序是1 2 3 , 现在把1,2调换位置, 更新的时候先把2更新成1了,在第二行更新前便有了两个显示顺序等于2的数据,但是我只能每一行都去比较,看哪个显示顺序最小.有什么解决方法吗?
AFTER UPDATE
ON XYTO_TEST_14V.JM_WO_TRANSACTION
REFERENCING NEW AS NEW OLD AS OLD
BEGIN
IF Pk_Trx_Trigger.TRIGGERSENABLED THEN
IF NOT Pk_Trx_Trigger.F_EMPTYROWLIST(TRUE) THEN
Pk_Trx_Trigger.P_HANDLE_UPDATE;
END IF;
END IF;
END;
/
在P_HANDLE_UPDATE完了之后还不算整个UPDATA结束了吗?