我现在想做个触发器:监听visitor_table是否有添加,如果有添加,则将添加的所有字段返回WinForm用于提示特定用户操作
create or replace trigger tr_visitor_insert
after insert on vm_visitor_table
for each row
declare
insert_visitor -- 什么类型?
begin
insert_visitor=select * from inserted --不知道具体怎么写了
end tr_visitor_insert;
我用的是oracle数据库
还有就是到Winform这边来怎么编程处理,在赶毕设,谢谢了
create or replace trigger tr_visitor_insert
after insert on vm_visitor_table
for each row
declare
insert_visitor -- 什么类型?
begin
insert_visitor=select * from inserted --不知道具体怎么写了
end tr_visitor_insert;
我用的是oracle数据库
还有就是到Winform这边来怎么编程处理,在赶毕设,谢谢了
create or replace trigger tr_visitor_insert
after insert on vm_visitor_table
for each row
declare
@insert_visitor_id number,@insert_visitor_name varchar2(20),@insert_visitor_reason varchar2(20) begin
@insert_visitor_id=visitor_id,@insert_visitor_name=visitor_name,@insert_visitor_reason=visitor_reason from inserted
end tr_visitor_insert;
这是我刚瞎想的,触发器oracle是用‘@’还是‘:’??还有就是SqlTriggerContext这个类适合oracel数据库吗
create trigger tr_Value on vm_visitor_table
for insert
as
begin
select * from inserted--当vm_visitor_table这个有东西插入到这个表的时候,把插入的值返回
end
数据库不熟,方法概要想好了,不知道怎么实现
正好没人看到罢了,自己要多顶几下。首先创建一张表,包含所有你要返回的字段,假定该表表名为TMP001,触发器创建参考如下语句:create or replace trigger tr_visitor_insert
after insert on vm_visitor_table
for each row
begin
insert into TMP001(column1,column2,column3)
values(:new.column1,:new.column2,:new.column3)
end tr_visitor_insert;
然后WinForm里定时查询该TMP001表,发现有数据,显示出来并将显示过的数据从TMP001表中删除即可。
create or replace trigger tr_visitor_insert
after insert on vm_visitor_table
--referencing new as new_value
for each row
begin
insert into VM_INSERTED(VISITED_ID)
values(:NEW.VISITED_ID);end tr_visitor_insert;
Compilation errors for TRIGGER WANGYULONG.TR_VISITOR_INSERTError: PLS-00049: bad bind variable 'NEW.VISITED_ID'
Line: 7
Text: values(:NEW.VISITED_ID);
另外,隐约感觉到使用定时器还是客户端主动的取数据,起不到数据库主动“推”的效果,另外使用定时器感觉有点浪费资源