oracle中怎么取序号,oracle 顺序号

oracle中如何获得某个表的正在或曾经使用过的sequence?

在oracle中sequence就是序号,每次取的时候它会自动增加。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 插入测试');

注:

第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。

CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使CURRVAL,否则会出错。

ORACLE 如何生成序号

采用sequence,这是oracle提供的序列对象,只要创建了sequence以后就可以通过select sequencename.nextval from dual 就可以得到唯一的序列值了

如何用java取得在oracle后台取得的sequence的序号的相关推荐

您好,很高兴为您解答。

public class SeqManager {

protected String dataSource = "java:/OracleDS";

public SeqManager() {

}

/**

* 从数据库连接中取的一连接

*

* @param String dataSource 为数据源JNDI

*

*

* 返回值为数据库连接

*

*/

protected Connection getConnection(String dataSource)

{

Connection con = null;

try

{

InitialContext ic = new InitialContext();

DataSource ds = (DataSource) ic.lookup(dataSource);

con = ds.getConnection();

System.out.println("connection is :" + con);

//         con.setAutoCommit(false);

} catch(NamingException e)

{

String err = "连接数据库时出错:找不到JNDI名称" + dataSource;

System.out.println(e);

e.printStackTrace();

} catch (SQLException ex)

{

String  err = "连接数据库时出错:创建不了数据库连接";

System.out.println(ex);

ex.printStackTrace();

}

return con;

}

/**

* 取Sequence的公共方法

*

* @param String sql 为传进的SQL语句

*

*

* 返回值为Sequence值

*

*/

protected Long getNextValOfSeq(String sql) throws SQLException

{

Connection con = getConnection(dataSource);

PreparedStatement pst = con.prepareStatement(sql);

ResultSet rs = pst.executeQuery();

try

{

if (rs.next()) {

return new Long(rs.getLong(1));

}

else {

return null;

}

}catch(SQLException e)

{

throw e;

}finally

{

rs.close();

pst.close();

con.close();

}

}

public Long getNextValOfStudEntrScore() throws SQLException

{

String sql = " Select SeqStudEntrScore.NextVal From Dual ";

try

{

return getNextValOfSeq(sql);

}catch (SQLException e)

{

String errorMessage = "取***Sequence时出错.";

e.printStackTrace();

throw new SQLException(errorMessage);

}

}

}

在jsp里调用这个javaBean

jsp就是一个servlet

操作数据库没什么区别

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

oracle表中怎么建序列

oracle表中创建序列语法:

CREATE SEQUENCE name

[INCREMENT BY n]

[START WITH n]           

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

示例:

increment by n:表明值每次增长n(步长)。

start with n: 从n开始。

{MAXVALUE n | NOMAXVALUE}: 设置最大值。

{MINVALUE n | NOMINVALUE}: 设置最小值,start with不能小于最小值。

CYCLE | NOCYCLE          : 是否循环,建议不使用

CACHE n | NOCACHE    : 是否启用缓存。

2、插入数据到表中

示例:

INSERT INTO emp VALUES

(emp_sequence .nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);

Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

扩展资料:

sql server数据库里建序列:

alter table cust_info add sequence int

insert into cust_info (sequence)

select row_number() over(order by cust_id) as cust_id_seq from cust_info

ORACLE怎么取行序列号,从视图中

select 序列名.nextval from 视图名 where 相关条件.

序列只要是库中的都能用序列名.nextval 取出包含过程、函数、包、表、视图。


标题名称:oracle中怎么取序号,oracle 顺序号
文章路径:http://hbruida.cn/article/hsscos.html