真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle如何獲取id,oracle如何獲取表自增后的id

如何取得Oracle當(dāng)前會(huì)話的ID

查看當(dāng)前會(huì)話的session ID 有如下三種方法:

創(chuàng)新互聯(lián)長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為云縣企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),云縣網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

1. v$mystat視圖

SQL select sid from v$mystat where rownum=1;

SID

----------

1152

2. 使用userenv(‘sid’) 直接獲取

這種方法只能在oracle 10g以后可以使用。

SQL select userenv('sid') from dual;

USERENV('SID')

--------------

1152

3. 結(jié)合 userenv('sessionid') 與 v$session 視圖

userenv('sessionid') 返回的是session audit id.其對(duì)應(yīng)v$session 的audsid字段。

在session 連接到數(shù)據(jù)庫的時(shí)候,會(huì)從SYS.AUDSES$序列中獲取一個(gè)audid 分配給session。

SQL select sid from v$session where audsid=userenv('sessionid');

SID

----------

773

1152

--這里返回了2個(gè)值,直接查看userenv('sessionid') 值:

SQL select userenv('sessionid') from dual;

USERENV('SESSIONID')

--------------------

4294967295

對(duì)于internal用戶(’/as sysoper’ 和 ‘/as sysdba’)和后臺(tái)進(jìn)程,其對(duì)應(yīng)的AUDID 為0.

在Oracle 10g中,如果AUDID的值為0,表明是internal 用戶,如果AUDID 值是4294967295,那么就表明是用SYS 用戶直接連接的。

這里返回三個(gè)結(jié)果是把所有SYS 用戶的session都返回了,所以這種方法有時(shí)的準(zhǔn)確性并不高。

如何在java中獲取Oracle里獲取自增ID 在線等

public class SeqManager {

protected String dataSource = "java:/OracleDS";

public SeqManager() {

}

/**

* 從數(shù)據(jù)庫連接中取的一連接

*

* @param String dataSource 為數(shù)據(jù)源JNDI

*

*

* 返回值為數(shù)據(jù)庫連接

*

*/

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 = "連接數(shù)據(jù)庫時(shí)出錯(cuò):找不到JNDI名稱" + dataSource;

System.out.println(e);

e.printStackTrace();

} catch (SQLException ex)

{

String err = "連接數(shù)據(jù)庫時(shí)出錯(cuò):創(chuàng)建不了數(shù)據(jù)庫連接";

System.out.println(ex);

ex.printStackTrace();

}

return con;

}

/**

* 取Sequence的公共方法

*

* @param String sql 為傳進(jìn)的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時(shí)出錯(cuò).";

e.printStackTrace();

throw new SQLException(errorMessage);

}

}

}

在jsp里調(diào)用這個(gè)javaBeanjsp就是一個(gè)servlet操作數(shù)據(jù)庫沒什么區(qū)別

Oracle怎么得到剛剛新插入數(shù)據(jù)庫那條記錄的id

如果是plsql代碼塊,使用returning into 結(jié)果集,獲取id;

如果是單獨(dú)sql語句,若id是序列可用序列名.currval獲取id值,但是出現(xiàn)并發(fā)情況可能獲取有誤;若非序列,需根據(jù)業(yè)務(wù)情況編寫sql獲取。

以上。

oracle 中如何獲得一段SQL的進(jìn)程ID

執(zhí)行下列命令語句

sqlplus / as sysdba EOF

create tablespace test datafile '/data/test01.dbf' size 10240M;

quit;

EOF

通過ps -ef|grep sqlplus命令得到上面所執(zhí)行的命令的進(jìn)程id為:12345

(1)關(guān)于v$process

執(zhí)行下面的SQL是查不到相關(guān)的信息:

select * from v$process where spid='12345';

因?yàn)檫@個(gè)spid字段對(duì)應(yīng)的并不是我們用ps命令從系統(tǒng)中查詢到的進(jìn)程id,而是這個(gè)進(jìn)程執(zhí)行的當(dāng)前SQL的進(jìn)程id,

也就是上面命令中的“create tablespace test datafile '/data/test01.dbf' size 10240M;”所對(duì)應(yīng)的進(jìn)程id,如果想

通過用ps命令從系統(tǒng)中查詢到的進(jìn)程id查看對(duì)應(yīng)的信息,那么必須使用下面語句:

select spid,sid,process,sql_address from v$session where process='12345'

上面sql中的process就是通過ps查看的進(jìn)程id,而spid就是里面的sql語句所對(duì)應(yīng)的進(jìn)程id。

還可以通過上面的sql_address 查看正在執(zhí)行的SQL語句內(nèi)容:

select sql_text from v$sqlarea s,v$session ses where s.address=ses.sql_address and ses.process='12345';

如何獲取session中的id

session即會(huì)話,是oracle中的概念,可用如下幾個(gè)方法:

方法一:

1、登錄oracle客戶端,如plsql(登錄用戶需要有dba權(quán)限)。

2、運(yùn)行如下語句,顯示的就是當(dāng)前的session id。

1

SELECT USERENV('SID') FROM DUAL;

方法二:

1、登錄oracle客戶端,如plsql(登錄用戶需要有dba權(quán)限)。

2、運(yùn)行如下語句,顯示的就是當(dāng)前的session id。

1

SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;

oracle怎么在生成id時(shí)獲取id

 一、主鍵id自增

oracle 中不能設(shè)置自動(dòng)增加,這個(gè)和其他數(shù)據(jù)庫不一樣,但是有 序列,這個(gè)是Oracle自己特有的東西,

1、首先創(chuàng)建序列:create sequence seq;

語法:

CREATE SEQUENCE 序列名

[INCREMENT BY n] --每次加幾

[START WITH n] --序列從幾開始

[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --小值、大值限制

比CREATE SEQUENCE seq start with 1 increment by 1; --建立了額從1開始每次加1序列

訪問序列時(shí)用 序列名稱.nextval語法

這就創(chuàng)建好了,然后 seq.nextval 就會(huì)返回一個(gè)值,不會(huì)重復(fù)的值,

insert into tablename values(seq.nextval,'test');

insert into tablename values(seq.nextval,'test');

insert into tablename values(seq.nextval,'test');

這樣前3個(gè)id 分別是 1,2,3


本文題目:oracle如何獲取id,oracle如何獲取表自增后的id
新聞來源:http://weahome.cn/article/hddido.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部