oracle 中如何获得一段SQL的进程ID执行下列命令语句
sqlplus / as sysdba EOF
create tablespace testdatafile '/data/test01.dbf' size 10240M;
quit;
EOF
通过ps -ef|grep sqlplus命令得到上面所执行的命令的进程id为:12345
(1)关于v$process
执行下面的SQL是查不到相关的信息:
select * from v$process where spid='12345';
因为这个spid字段对应的并不是oracle怎么获得id我们用ps命令从系统中查询到的进程idoracle怎么获得id,而是这个进程执行的当前SQL的进程idoracle怎么获得id,
也就是上面命令中的“create tablespace testdatafile '/data/test01.dbf' size 10240M;”所对应的进程idoracle怎么获得id,如果想
通过用ps命令从系统中查询到的进程id查看对应的信息oracle怎么获得id,那么必须使用下面语句:
select spid,sid,process,sql_address from v$session where process='12345'
上面sql中的process就是通过ps查看的进程id,而spid就是里面的sql语句所对应的进程id 。
还可以通过上面的sql_address 查看正在执行的SQL语句内容:
select sql_text from v$sqlarea s,v$session ses where s.address=ses.sql_address and ses.process='12345';
如何取得Oracle当前会话的ID取得Oracle当前会话的ID(Session ID)有3种方法:
1. 下面这个应当是大家常用的.
SQL SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;
SID
----------
140
2. 下面一个更简单, 但只能在Oracle 10g及以上版本中使用.
SQL SELECT USERENV('SID') FROM DUAL;
USERENV('SID')
--------------
140
3. 下面这个方法我有时也用, 因为不想用最上面的SQL去写一个子查询, 发现在Oracle 9i上很正常, 但在Oracle 10g上常常返回两行, 因此不能再使用它了.
SQL SELECT SID FROM V$SESSION WHERE AUDSID=USERENV('SESSIONID');
SID
----------
140
142
如何在java中获取Oracle里获取自增ID 在线等public class SeqManager {
protected String dataSource = "java:/OracleDS";
public SeqManager() {
}
/**
* 从数据库连接中取oracle怎么获得id的一连接
*
* @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)
{
Stringerr = "连接数据库时出错:创建不oracle怎么获得id了数据库连接";
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里调用这个javaBeanjsp就是一个servlet操作数据库没什么区别
oracle怎么在生成id时获取id 一、主键id自增
oracle 中不能设置自动增加oracle怎么获得id,这个和其他数据库不一样oracle怎么获得id,但是有 序列,这个是Oracle自己特有oracle怎么获得id的东西,
1、首先创建序列oracle怎么获得id:create sequence seq;
语法oracle怎么获得id:
CREATE SEQUENCE 序列名
[INCREMENT BY n]--每次加几
[START WITH n]--序列从几开始
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --小值、大值限制
比CREATE SEQUENCE seq start with 1 increment by 1;--建立了额从1开始每次加1序列
访问序列时用序列名称.nextval语法
这就创建好了,然后 seq.nextval 就会返回一个值,不会重复的值,
insert into tablename values(seq.nextval,'test');
insert into tablename values(seq.nextval,'test');
insert into tablename values(seq.nextval,'test');
这样前3个id 分别是1,2,3
Oracle怎么得到刚刚新插入数据库那条记录的id如果是plsql代码块oracle怎么获得id,使用returning into 结果集oracle怎么获得id,获取id;
如果是单独sql语句,若id是序列可用序列名.currval获取id值,但是出现并发情况可能获取有误;若非序列,需根据业务情况编写sql获取 。
以上 。
如何获取session中的idsession即会话,是oracle中的概念,可用如下几个方法:
方法一:
1、登录oracle客户端,如plsql(登录用户需要有dba权限) 。
2、运行如下语句,显示的就是当前的session id 。
1
SELECT USERENV('SID') FROM DUAL;
方法二:
1、登录oracle客户端,如plsql(登录用户需要有dba权限) 。
2、运行如下语句,显示的就是当前的session id 。
1
SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;
【oracle怎么获得id oracle获得uuid】关于oracle怎么获得id和oracle获得uuid的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 赛车游戏模拟器飞跃,飞行赛车模拟游戏
- 安卓照片视频制作工具,安卓照片制作视频软件
- 搭建asp虚拟主机网站,搭建asp虚拟主机网站怎么设置
- 体育游戏软件,体育游戏有哪些手游
- linux中ls换行命令 linux换行指令
- chatgpt翻译插件,翻译 插件
- 淘宝即时游戏在哪里,淘宝连连看游戏在哪里
- 直播微信怎么录视频教程,直播微信怎么录视频教程图片
- python语法与函数 python中语句和函数区别