Oracle中触发器如何调用存储过程
Oracle中触发器如何调⽤存储过程
1--创建测试表B_TEST_TABLE,稍后会在本表上增加触发器,在插⼊本表的同时复制⼀份数据到B_TEST_TABLE2中
2create table B_TEST_TABLE
3(
4  c1 VARCHAR2(200),
5  d2 DATE
6);
7
8--创建B_TEST_TABLE2表,在插⼊B_TEST_TABLE数据时,复制⼀份数据到本表中格式
9create table B_TEST_TABLE2
教师求职简历模板10(
11  c1 VARCHAR2(200),
12  d2 DATE
13);
14
15--创建存储过程,往B_TEST_TABLE2中插⼊⼀条数据
16create or replace procedure TestPro(C1 VARCHAR2) is萝卜丸子怎么做
17begin
18INSERT INTO B_TEST_TABLE2 VALUES (C1, SYSDATE);
19--因为此存储过程是触发器中调⽤的,所以不能增加提交命令
20--COMMIT;
21end TestPro;
公司办公室工作总结
22--下⾯这个斜杠不能去掉,否则会导致触发器和存储过程或其他脚本编译在同⼀个对象中,每个单独的对象都应⽤此符号分开(建表等操作除外) 23/
24--创建触发器,before insert on b_test_table为在插⼊b_test_table数据之前触发,可以改成after insert on b_test_table
25--或者before update on b_test_table等选项
26create or replace trigger TEST_TABLE_TRIGGER_INST_BF
27  before insert on b_test_table
28for each row
29begin
30--调⽤存储过程:new代表的是新的记录对象,可以直接取值或修改该记录的每⼀列,:new.c1是取新纪录的c1列值,:new.d2是取新纪录的d2列值31  TestPro(:new.c1);
32--如果不想⽤存储过程也可以直接这样写
33--INSERT INTO B_TEST_TABLE2 VALUES (:new.c1, :new.d2);
34end TEST_TABLE_TRIGGER_INST_BF;
35/
36--插⼊测试数据
37insert into B_TEST_TABLE values ('1', sysdate);七个字的歌名
38commit;
39
40--查询测试表数据
41select*from B_TEST_TABLE;
顺丰快递查询42select*from B_TEST_TABLE2;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。