Oracle
创建用户
/
密码并授权
(1)
创建用户
Create user
用户名
identified by
密码;(如果是数字则要加双引号
”111111”
,如果是字母就不用)
(2)
授权给某个用户
Grant connect,resource to
用户名;
(
只有用户有了
connect
和
resource
后才能操作其他表
)
(3)
授
DBA
权限
Grant dba to
用户名;
(
4
)
撤权:
revoke
权限
... from
用户名
;
grant select on cwp_planned_move to fix_ngen;
conn fix_ngen/fix_ngen@ngen
create synonym cwp_virtual_quay_crane for ngendatasyst_main_hit.cwp_virtual_quay_crane;
conn fixdevusr/fixdevusr@fix
create synonym cwp_planned_move for cwp_planned_move@fix_2_ngen
;
CREATE SEQUENCE
CREATE SEQUENCE — 创建一个新的序列号生成器
语法
CREATE SEQUENCE seqname
[ INCREMENT increment
]
[ MINVALUE minvalue
] [ MAXVALUE maxvalue
]
[ START start
] [ CACHE cache
] [ CYCLE ]
输入
seqname
将要创建的序列号名.
increment
INCREMENT increment
子句是可选的.一个正数将生成一个递增的序列,一个负数将生成一个递减的序列.缺省值是一(1).
minvalue
可选的子句 MINVALUE minvalue
决定一个序列可生成的最小值.缺省分别是递增序列为1递减为-2147483647.
maxvalue
使用可选子句 MAXVALUE maxvalue
决定序列的最大值.缺省的分别是递增为2147483647,递减为-1.
start
可选的 START start
子句
使序列可以从任意位置开始.缺省初始值是递增序列为 minvalue
递减序列为 maxvalue
.
cache
CACHE cache
选项使序列号预分配并且为快速访问存储在内存里面.最小值(也是缺省值)是1(一次只能生成一个值, 也就是说没有缓存).
CYCLE
可选的 CYCLE 关键字可用于使序列到达最大值(maxvalue)
或最小值(minvalue
)时可复位并继续下去.如果达到极限,生成的下一个数据将分别是最小值(minvalue)
或最大值(maxvalue).
输出
CREATE
命令成功执行的返回信息.
ERROR: Relation 'seqname
' already exists
如果声明的序列已经存在.
ERROR: DefineSequence: MINVALUE (start
) can't be >= MAXVALUE (max
)
如果声明的初始值超出范围(最大值),返回此信息.
ERROR: DefineSequence: START value (start
) can't be < MINVALUE (min
)
如果声明的初始值超出范围(最小值),返回此信息.
ERROR: DefineSequence: MINVALUE (min
) can't be >= MAXVALUE (max
)
如果最小值和最大值不连贯.
描述
CREATE SEQUENCE
将向当前数据库里增加一个新的序列号生成器.包括创建和初始化一个新的名为
seqname
的单行表.生成器将为使用此命令的用户"所有".
在序列创建后,你可以使用函数 nextval(seqname
) 从序列中获得新的数字.函数 currval('seqname
') 可用于获取对当前会话中指定序列的上一次 nextval(seqname
) 调用返回的数字.函数 setval('seqname
', newvalue
) 可用于设置指定的序列的当前值.下一次 nextval(seqname
) 调用将返回所给的值加上序列增值.
使用象
SELECT * FROM sequence_name;
这样的查询可以获得序列的参数.除了获取最初的参数外,你可以用
SELECT last_value FROM sequence_name;
获得后端分配的最后一个值.你可以使用
底层的锁定用于令多个请求同时调用生成器成为可能.
注意
|
如果用语序列对象的缓存的设置大于一,而且该对象可能被多个后端同时使用就有可能产生不可预料的结果.每个后端在访问过序列对象并递增序列对象的最后值后,将分配跟在序列值后面"缓存数".这样,该后端在下面的(缓存数-1)次返回序列值时将使用预分配好的数值,而不对共享对象做任何更新.所以,已经分配但在当前会话中没有使用的数字将会丢失.而且,尽管多个后端保证分配独立的序列值,当考虑所有的后端时该数值却有可能是乱序的.(例如,设置缓存数为10,后端 A 可能保留数值 1..10 并且返回 nextval=1,而后端 B 可能保留数值 11..20 并在后端A生成nextval=2之前返回 nextval=11.)因此,将缓存数设为一可以安全地假设 nextval 的数值是顺序生成的;当缓存数设置大于一,我们只能假设 nextval 值都是独立的,而不能假设它们都是纯粹顺序生成的.同样,last_value 将反映由任何后端保留的最后数值,不管它是不是nextval曾返回过的. |
注意
请参考
DROP SEQUENCE
语句来删除序列.
每个后端使用其自身的缓存来存储分配的数字.已分配但当前会话没有使用的数字将丢失,导致序列里面出现"空洞".
用法
创建一个叫
serial
的递增序列,从101开始:
CREATE SEQUENCE serial START 101;
从此序列中选出下一个数字
SELECT NEXTVAL ('serial');
nextval
-------
114
在一个 INSERT 中使用此序列:
INSERT INTO distributors VALUES (NEXTVAL('serial'),'nothing');
在一个 COPY FROM 后设置序列:
CREATE FUNCTION distributors_id_max() RETURNS INT4
AS 'SELECT max(id) FROM distributors'
LANGUAGE 'sql';
BEGIN;
COPY distributors FROM 'input_file';
SELECT setval('serial', distributors_id_max());
END;
兼容性
SQL92
CREATE SEQUENCE
是 Postgres
语言扩展.在 SQL92
里没有 CREATE SEQUENCE
语句.
在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方。
1、Create Sequence
(注释:你需要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限)
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
只要定义了emp_sequence,你就可以用使CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
例如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL
可以使用sequence的地方:
· 不包含子查询、snapshot、VIEW的 SELECT 语句
·INSERT语句的子查询中
·NSERT语句的VALUES中
·UPDATE 的 SET中
可以看如下例子:
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);
SELECT empseq.currval FROM DUAL;
需要注意的是:
第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次 SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就会是不一样的。
- 假如指定CACHE值,Oracle就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,Oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。
2、Alter Sequence
你需要有sequence的owner,或者拥有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create .
Alter sequence示例:
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE -- 到10000后从头开始
NOCACHE ;
可以影响Sequence的初始化参数:
SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。
简单的Drop Sequence
DROP SEQUENCE order_seq;
分享到:
相关推荐
ELASTICSEARCH7.6.2 动态同义词/近义词动态加载同义词/近义词 DYNAMIC_SYNONYM
elasticsearch-analysis-dynamic-synonym7.5.1版本 Elasticsearch 使用同义词插件
elasticsearch-analysis-dynamic-synonym-6.2.4 想重新定义的话可到仓库留言 https://gitee.com/lumou/elasticsearch-analysis-dynamic-synonym 原...
主要是Oracle数据库的同义词和数据库连接的一些应用,在不同实例之间进行连接!
同义词(synonym)、1.2w同义词
在做自然语言处理是可以用于同义词的字典的构建
NULL 博文链接:https://sunruing.iteye.com/blog/1611276
官方的还是5.1.1版本,这里就根据官方的版本修改了一下,elasticsearch-analysis-dynamic-synonym-5.2.1,希望对需要的朋友有用 文章地址 http://write.blog.csdn.net/mdeditor#!postId=56845892
插件地址 https://github.com/bells/elasticsearch-analysis-dynamic-synonym
elasticsearch同义词插件,基于数据库的热加载,可以实现从数据库实时查询分词,支持mysql和oracle两种数据库,只需要将插件解压到ES安装目录下的插件目录下即可,解压之后删除安装包
资源分类:Python库 所属语言:Python 资源全名:synonym_dict-0.1.2-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
作者自己编译的同义词插件版本为7.12.1,欢迎大家学校交流
同义词挖掘一般有三种思路,借助已有知识库,上下文相关性,文本相似度。该zip包实现了4种同义词挖掘的方法:百度百科同义词,word2vector,语义共现网络的节点相似度,Levenshtein距离。感兴趣的同学可以下载下来...
目前官方网站只有5.1.1的版本,该插件是通过修改5.1.1的版本适配6.x的,使用需要修改插件的配置文件内的ES版本号即可使用
最新中文近义词大全,seo等
关于 database links 和 synonym 的一点知识
修改了下代码,适配Elasticsearch版本6.6.2。本分词插件支持同义词表的热更新,提高检索能力。
Oracle Dblink and synonym(同义词) 授权 创建 以及使用
elasticsearch 同义词插件
elasticsearch7.8.1 编译的同义词插件,支持jdk11,openjdk14, ubuntu下编译。直接解压缩到对应es版本下