Sign-up....

高分请教!!! 达人帮忙!!!谢谢

我有两张表A.dec_bill_status和B.ep_dec_bill_list

create table A.dec_bill_status

(

list_no varchar2(20) primary key, --清单编号

list_status varchar2(10), --状态标志

ems_list_no varchar2(20) --存储清单编号没有改变前的编号

)

create table B.ep_dec_bill_list

(

list_no varchar2(20) primary key,

tag varchar2(20),

list_g_no varchar2(20)

)

第一张表中list_no是以B开头的,当更新了状态标志为2后,list_no变成以0开头

ems_list_no中存储的是没有改变的list_no。现在我想建一个触发器,当状态改变时B.ep_dec_bill_list.list_no相应的改变为以0开头的A.dec_bill_status.list_no中的数据,该怎么写?问题主要集中在我如何获得状态已改变的那一行数据。我自己写了一个如下:

我用A用户创建的

create or replace trigger DEC_BILL_STAT_CHECK

after update on dec_bill_status for each row

declare

v varchar2(70);

x varchar2(20);

begin

if :new.status!=:old.status then

select ems_list_no into v from dec_bill_status where status='2';

select list_no into x from dec_bill_status where status='2';

update B.ep_dec_bill_list set list_no=x

where list_no=v;

end if;

end;

报错: 函数/触发器不可读

[918 byte] By [msdn] at [2007-9-19 0:25:43]
# 1 Re: 高分请教!!! 达人帮忙!!!谢谢

谢谢两位老大指教 又学到一招 呵呵

CAINIAO_oooo at 2005-10-20 10:41:20 >

Oracle

All Classified