请教下,触发器中的
select count(*) into n from AA.BB
其中AA表示什么,是不是用户名,这个用户名与当前登录用户之间需满足什么关系?
例子是下面一段代码,我试了下,去掉AA.在本用户下创建一个BB表好像没有什么问题,但是如果在AA用户下建立一个BB表,这个触发器怎么感觉有点问题。
----------------------------------------create or replace trigger trig_cb_dklsysqb_gxczjlb
after insert or update or delete on cb_dklslysqb
for each row
declare
-- local variables here
nMaxbsm number(1);
begin
if inserting or updating then
begin
--删除老记录
delete from JSYDSPLS.GXCZJLB where trim(lybh) = trim(:new.bi_code) and xmlx = 5;
--新增记录
begin
select max(bsm) into nMaxbsm from JSYDSPLS.GXCZJLB;
exception
when no_data_found then
nMaxbsm := 0;
end;
insert into JSYDSPLS.GXCZJLB(bsm,LYBH,XMLX,GXSJ,SXRKZT,TXRKZT,CZLX,chbh,gbbs) values(nMaxbsm+1,:new.bi_code,5,sysdate,0,0,1,:new.chbh,0);
end;
end if;
if deleting then
--删除老记录
delete from JSYDSPLS.GXCZJLB where trim(lybh) = trim(:old.bi_code) and xmlx = 5;
--新增记录
begin
select max(bsm) into nMaxbsm from JSYDSPLS.GXCZJLB;
exception
when no_data_found then
nMaxbsm := 0;
end;
insert into JSYDSPLS.GXCZJLB(bsm,LYBH,XMLX,GXSJ,SXRKZT,TXRKZT,CZLX,chbh,gbbs) values(nMaxbsm+1,:old.bi_code,5,sysdate,0,0,0,:old.chbh,0);
end if; end trig_cb_dklsysqb_gxczjlb;
select count(*) into n from AA.BB
其中AA表示什么,是不是用户名,这个用户名与当前登录用户之间需满足什么关系?
例子是下面一段代码,我试了下,去掉AA.在本用户下创建一个BB表好像没有什么问题,但是如果在AA用户下建立一个BB表,这个触发器怎么感觉有点问题。
----------------------------------------create or replace trigger trig_cb_dklsysqb_gxczjlb
after insert or update or delete on cb_dklslysqb
for each row
declare
-- local variables here
nMaxbsm number(1);
begin
if inserting or updating then
begin
--删除老记录
delete from JSYDSPLS.GXCZJLB where trim(lybh) = trim(:new.bi_code) and xmlx = 5;
--新增记录
begin
select max(bsm) into nMaxbsm from JSYDSPLS.GXCZJLB;
exception
when no_data_found then
nMaxbsm := 0;
end;
insert into JSYDSPLS.GXCZJLB(bsm,LYBH,XMLX,GXSJ,SXRKZT,TXRKZT,CZLX,chbh,gbbs) values(nMaxbsm+1,:new.bi_code,5,sysdate,0,0,1,:new.chbh,0);
end;
end if;
if deleting then
--删除老记录
delete from JSYDSPLS.GXCZJLB where trim(lybh) = trim(:old.bi_code) and xmlx = 5;
--新增记录
begin
select max(bsm) into nMaxbsm from JSYDSPLS.GXCZJLB;
exception
when no_data_found then
nMaxbsm := 0;
end;
insert into JSYDSPLS.GXCZJLB(bsm,LYBH,XMLX,GXSJ,SXRKZT,TXRKZT,CZLX,chbh,gbbs) values(nMaxbsm+1,:old.bi_code,5,sysdate,0,0,0,:old.chbh,0);
end if; end trig_cb_dklsysqb_gxczjlb;
解决方案 »
- ORACLE 9i数据库优化,statspack报告,请大侠救命呀。
- [救命100分]在oracle920中建Queue table和Queue时包错,详细如下:(再线等待)
- 关于带多步数据更新的存储过程优化
- ajax中的消息框(如:删除成功!), 为乱码(显示为???),请高手帮我诊断一下是不是数据库的问题?(内有oracle中字符集设置)
- 请问各位DBA,在ORACLE中的问题
- 帮忙翻译一句话,实在是不明白逻辑~~
- 如何将两条数据和成一条数据?
- 假如某一列容量(clob或blob)大于4GB时,咋办??再建一列,还是....??
- 我装了不能用超级管理员登陆也1!
- Oracle使用SYS用户SYSDBA权限恢复数据到orcl表空间是EP,新创建的ep用户默认表空间是EP无法访问数据表
- 逗号分隔的问题、、、
- 配置Linux的oracle RAC时,每个结点的eth0网卡通讯问题
如用aa用户登录,授权给scott用户
grant delete on bb to scott;
那么,用scott用户就可以删除aa用户的bb表了
AA.BB表示AA用户下的BB表。这个用户名与当前登录用户之间需满足什么关系?
当前用户必须对AA.BB表有必要的权限(增删改等等)。你的代码里都是对JSYDSPLS.GXCZJLB表的操作,所以你本用户对JSYDSPLS.GXCZJLB表没权限的话,就不会有触发了
begin
select max(bsm) into nMaxbsm from JSYDSPLS.GXCZJLB;
exception
when no_data_found then
nMaxbsm := 0;
end; 这块代码好像有问题