问题描述
我没有DBA状态,因此,在开发具有MS ACCESS 2010前端的Oracle后端时,必须在需要时要求特权。
我现在有了创建触发器特权。我意识到我也必须要求创建序列特权。
要允许用户从MS access编辑表,oracle表必须具有主键。这被称为ID。
我了解我需要创建序列以使用序列中的nextValue填充ID列。
(很抱歉,我没有访问LiveSQL的权限 (但是,这里非常严格)。因此,我将不得不在此注释中放入代码。)
下面是我的预期代码。
4个问题:
1.在新添加的行中插入ID NextVal可能还需要哪些其他特权?
2.什么是 “对偶” (以下在触发器代码中)?
3.Exception子句与这个简单的触发器是必要的吗?
4.因为,我有12个表需要一个触发器,我会创建12个唯一序列和12个唯一触发器。
这里是我的代码 (到目前为止)
任何指导将不胜感激。
约瑟夫·贾隆巴多
步骤1
创建序列MyTable_seq
从NNN开始 (某些值TBD)
递增1
无缓存
NOCYCLE;
步骤2
创建或替换触发器触发器名称 _ 1_of_12
插入前
在架构上。MyTable
指新的旧的
对于每一行
声明
tmpVar编号;
开始
tmpVar := 0;
从dual中选择SeqICreate.NEXTVAL进入tmpVar; (什么是dual?)
: 新的。MyTableIDField := tmpVar;
异常 (我需要这个异常吗)
当其他人那么
-考虑记录错误,然后重新引发
加薪;
结束触发器名称 _ 1 _ of _ 12
我现在有了创建触发器特权。我意识到我也必须要求创建序列特权。
要允许用户从MS access编辑表,oracle表必须具有主键。这被称为ID。
我了解我需要创建序列以使用序列中的nextValue填充ID列。
(很抱歉,我没有访问LiveSQL的权限 (但是,这里非常严格)。因此,我将不得不在此注释中放入代码。)
下面是我的预期代码。
4个问题:
1.在新添加的行中插入ID NextVal可能还需要哪些其他特权?
2.什么是 “对偶” (以下在触发器代码中)?
3.Exception子句与这个简单的触发器是必要的吗?
4.因为,我有12个表需要一个触发器,我会创建12个唯一序列和12个唯一触发器。
这里是我的代码 (到目前为止)
任何指导将不胜感激。
约瑟夫·贾隆巴多
步骤1
创建序列MyTable_seq
从NNN开始 (某些值TBD)
递增1
无缓存
NOCYCLE;
步骤2
创建或替换触发器触发器名称 _ 1_of_12
插入前
在架构上。MyTable
指新的旧的
对于每一行
声明
tmpVar编号;
开始
tmpVar := 0;
从dual中选择SeqICreate.NEXTVAL进入tmpVar; (什么是dual?)
: 新的。MyTableIDField := tmpVar;
异常 (我需要这个异常吗)
当其他人那么
-考虑记录错误,然后重新引发
加薪;
结束触发器名称 _ 1 _ of _ 12
专家解答
序列
我会让你简单地排序为:
以NNN开始创建MyTable_seq序列
你非常需要 “nocache”
2) 触发
同样的交易,你可以把整个事情编码为:
你就完了。您仍然需要相同的特权 (创建触发器,创建序列)
请注意,在当前版本的Oracle (12) 中,您根本不需要触发器或序列,您可以使用:
创建表T (始终作为标识生成的mycol编号)
我们会帮你处理的。
通常,只有你需要的那些私人是一件好事,但在开发环境中,它是典型的 (例如):
创建表
创建类型
创建集群
创建触发器
创建过程
创建序列
创建视图
我会让你简单地排序为:
以NNN开始创建MyTable_seq序列
你非常需要 “nocache”
2) 触发
同样的交易,你可以把整个事情编码为:
CREATE OR REPLACE TRIGGER TriggerName_1_of_12 BEFORE INSERT ON schema.MyTable FOR EACH ROW BEGIN :NEW.MyTableIDField := SeqICreate.NEXTVAL ; END TriggerName_1_of_12
你就完了。您仍然需要相同的特权 (创建触发器,创建序列)
请注意,在当前版本的Oracle (12) 中,您根本不需要触发器或序列,您可以使用:
创建表T (始终作为标识生成的mycol编号)
我们会帮你处理的。
通常,只有你需要的那些私人是一件好事,但在开发环境中,它是典型的 (例如):
创建表
创建类型
创建集群
创建触发器
创建过程
创建序列
创建视图
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




