ORACLE中怎么设置SEQUENCE权限?

ORACLE中怎么设置SEQUENCE权限?,第1张

ORACLE中怎么设置SEQUENCE权限步骤如下:

1、Create Sequence

首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。

创建语句如下:

CREATE SEQUENCE seqTest

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 从1开始计数

NOMAXvalue -- 不设置最大值

NOCYCLE -- 一直累加,不循环

CACHE 10 --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE

2、得到Sequence值 

定义好sequence后,你就可以用currVal,nextVal取得值。

CurrVal:返回 sequence的当前值

NextVal:增加sequence的值,然后返回 增加后sequence值

得到值语句如下:

SELECT Sequence名称.CurrVal FROM DUAL 

如得到上边创建Sequence值的语句为:

select seqtest.currval from dual

在Sql语句中可以使用sequence的地方:

- 不包含子查询、snapshot、VIEW的 SELECT 语句

- INSERT语句的子查询中

- INSERT语句的values中

- UPDATE 的 SET中

如在插入语句中

insert into 表名(id,name)values(seqtest.Nextval,'sequence 插入测试')

3、Alter Sequence 

拥有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create。

4、Drop Sequence

DROP SEQUENCE seqTest 

5、一个例子

create or replace trigger tri_test_id

before insert on S_Depart   --S_Depart 是表名

for each row

declare

nextid number

begin

IF :new.DepartId IS NULLor :new.DepartId=0 THEN --DepartId是列名

select SEQ_ID.nextval --SEQ_ID正是刚才创建的

into nextid

from sys.dual

:new.DepartId:=nextid

end if

end tri_test_id

首先去下载oracleclient客户端工具

小编这里已经下载的有了,目录结构如下所示

请点击输入图片描述

打开PLSQL,点取消进去,然后d出PLSQL主界面,找到菜单栏的tools选择属性preferences进去

请点击输入图片描述

请点击输入图片描述

请点击输入图片描述

d出如下界面,配置oracleclient

配置好两个设置项,点apply,然后点ok,关闭PLSQL,重启PLSQL

请点击输入图片描述

上边的两个填写项就是第一步中的目录,以及目录下的一个文件

如下图所示,在哪个目录就对应的去找就可以了。

请点击输入图片描述

重启PLSQL进入到登录界面,输入相关信息,用户名密码,以及连接信息

连接信息:可以是ip:1521/实例名

也可以是network/admin目录下的tnsname.ora中配置的TNS别名。

请点击输入图片描述

连接进去成功之后

可以随便写一个语句查查,是否正常

select * from dual

请点击输入图片描述


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11163941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存