先说说我的情况,我有两张表一张叫A另一个叫B,我现在在A表中添加了一个字段c,而该字段的值是从B表中取得的.想用触发器去完成.(A,B现在有一个共同的字段C_ID)
有那位朋友知道该怎么去写该触发器的代码吗?
只要一旦运行正确就马上给分,在线等待!
有那位朋友知道该怎么去写该触发器的代码吗?
只要一旦运行正确就马上给分,在线等待!
解决方案 »
- Oracle查询SQL2000某张表时,带过滤条件的语法怎么写?
- 大家帮我看看下面的查询语句有什么问题
- 向各位高手请教问题
- 关于clob作为存储过程参数的问题?
- oracle存储过程用数组做参数怎么写
- pl/sql developer开发问题:不清楚pl/sql developer 都有哪些用处?它可以和那些软件结合开发程序?哪个方面有前途?
- 在oracle里,怎么设自增的列呀!---急,急!
- 谁有关于ERwin使用方面的文档或电子书籍?
- 怎么写动态加入一列到一个表里的SQL语句?
- 做etl还是dba啊,各位老哥大神帮我分析分析
- 行转换为列,跟一般要求不同,请大家看看
- 请教在linux上编译proc时遇到的问题,麻烦各位大侠帮忙看看
DECLARE
BEGIN
SELECT B.C INTO :NEW.C FROM B WHERE B.C_ID=:NEW.C_ID;
END;
索引中丢失in或out参数::1
请继续帮助!
SQL> create table a (c_id number(8),c varchar2(10),primary key(c_id));表已创建。SQL> create table b (c_id number(8),c varchar2(10),primary key(c_id));表已创建。SQL> insert into a values(1,'111');已创建 1 行。SQL> insert into b values(2,'222');已创建 1 行。SQL> insert into b values(3,'333');已创建 1 行。SQL> commit;提交完成。SQL> CREATE OR REPLACE TRIGGER TEST BEFORE INSERT ON "A" FOR EACH ROW
2 DECLARE
3 BEGIN
4 SELECT B.C INTO :NEW.C FROM B WHERE B.C_ID=:NEW.C_ID;
5 END;
6 /触发器已创建SQL> select * from a; C_ID C
---------- ----------
1 111 SQL> select * from b; C_ID C
---------- ----------
2 222
3 333 SQL> insert into a(c_id) values(2);已创建 1 行。SQL> commit;提交完成。SQL> select * from b; C_ID C
---------- ----------
2 222
3 333 SQL> spool off;
---------- ----------
1 111
2 222
update a set a.c=(select b.c from b where b.c_id=a.c_id);