日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle怎么算开始一个会话,oracle – 随机获取ORA-08177只有一个活动会话

發布時間:2024/9/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle怎么算开始一个会话,oracle – 随机获取ORA-08177只有一个活动会话 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在運行一個創建一個表然后插入一些數據的程序。

這是訪問數據庫的唯一程序。

我隨機得到ORA-08177。

實際代碼有點復雜,但是我已經編寫了一個簡單的程序來重現這種行為。

using System;

using System.Data;

using Oracle.DataAccess.Client;

namespace orabug

{

class Program

{

private const string ConnectionString = ""; // Valid connection string here

// Recreates the table

private static void Recreate()

{

using (var connection = new OracleConnection(ConnectionString)) {

connection.Open();

using (var command = connection.CreateCommand()) {

command.CommandText = @"

declare

table_count binary_integer;

begin

select count(*) into table_count from sys.user_tables where table_name = 'TESTTABLE';

if table_count > 0 then

execute immediate 'drop table TestTable purge';

end if;

execute immediate 'create table TestTable(id nvarchar2(32) primary key)';

end;";

command.ExecuteNonQuery();

}

connection.Close();

}

}

// Opens session sessionCount times,inserts insertCount rows in each session.

private static void Insert(int sessionCount,int insertCount)

{

for (int sessionNumber = 0; sessionNumber < sessionCount; sessionNumber++)

using (var connection = new OracleConnection(ConnectionString)) {

connection.Open();

using (var transaction = connection.BeginTransaction(IsolationLevel.Serializable)) {

for (int insertNumber = 0; insertNumber < insertCount; insertNumber++)

using (var command = connection.CreateCommand()) {

command.BindByName = true;

command.CommandText = "insert into TestTable (id) values(:id)";

var id = Guid.NewGuid().ToString("N");

var parameter = new OracleParameter("id",OracleDbType.NVarchar2) {Value = id};

command.Parameters.Add(parameter);

command.Transaction = transaction;

command.ExecuteNonQuery();

}

transaction.Commit();

}

connection.Close();

}

}

static void Main(string[] args)

{

int iteration = 0;

while (true) {

Console.WriteLine("Running iteration: {0}",iteration);

try {

Recreate();

Insert(10,100);

Console.WriteLine("No error");

}

catch (Exception exception) {

Console.WriteLine(exception.Message);

}

iteration++;

}

}

}

}

該代碼運行無限循環。

在每次迭代時,它執行以下操作10次:

>打開會話

>使用隨機數據插入100行

>關閉會話

>顯示一條消息,表示沒有發生錯誤

如果發生錯誤,則會捕獲異常并打印其消息

那么執行下一個迭代。

這里是示例輸出。正如你所看到的那樣,ORA-08177隨機地與成功的交互進行交織。

Running iteration: 1

No error

Running iteration: 2

ORA-08177: can't serialize access for this transaction

Running iteration: 3

ORA-08177: can't serialize access for this transaction

Running iteration: 4

ORA-08177: can't serialize access for this transaction

Running iteration: 5

ORA-08177: can't serialize access for this transaction

Running iteration: 6

ORA-08177: can't serialize access for this transaction

Running iteration: 7

No error

Running iteration: 8

No error

Running iteration: 9

ORA-08177: can't serialize access for this transaction

Running iteration: 10

ORA-08177: can't serialize access for this transaction

Running iteration: 11

ORA-08177: can't serialize access for this transaction

Running iteration: 12

ORA-08177: can't serialize access for this transaction

Running iteration: 13

ORA-08177: can't serialize access for this transaction

Running iteration: 14

ORA-08177: can't serialize access for this transaction

Running iteration: 15

ORA-08177: can't serialize access for this transaction

Running iteration: 16

ORA-08177: can't serialize access for this transaction

Running iteration: 17

No error

Running iteration: 18

No error

Running iteration: 19

ORA-08177: can't serialize access for this transaction

Running iteration: 20

No error

我正在運行Oracle 11.1.0.6.0并使用ODP.NET 2.111.6.20。

將隔離級別更改為ReadCommited修復了問題,但我真的想在Serializable級別運行此級別。

看起來像I’m not alone

有了這個問題,但答案沒有給出,所以我再問一次。

我做錯了什么,我該怎么解決這個問題?

由APC編輯

為了防止任何人咆哮錯誤的樹,發布的代碼示例只是ORA-8177錯誤的生成器。顯然實際代碼是不同的;具體來說,丟棄和重建桌子是一個紅色的鯡魚。

總結

以上是生活随笔為你收集整理的Oracle怎么算开始一个会话,oracle – 随机获取ORA-08177只有一个活动会话的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰97久久 | 成人免费毛片xxx | 中文字幕第12页 | 天天精品综合 | 91禁在线动漫 | 午夜精品久久久久久久第一页按摩 | 欧美变态口味重另类 | 中日韩黄色片 | 国产91丝袜在线播放0 | 少妇毛片一区二区三区粉嫩av | 亚洲欧美日韩一区 | 91亚洲精品国偷拍 | 最近中文字幕在线免费观看 | 久久久久国产一区二区三区 | 欧美激情aaa | 在线成人小视频 | 亚洲h在线观看 | 在线观看免费日韩av | 国产人妻精品一区二区三区不卡 | 波多野结衣在线 | 久久久久无码国产精品一区李宗瑞 | 久久久无码一区二区三区 | 日韩欧美一级 | 国产视频一区二区视频 | 性xxxx欧美老肥妇牲乱 | 999av视频| 欧美成人国产va精品日本一级 | 欧美一级黄色片在线观看 | 亚洲成色www久久网站 | 天天噜日日噜 | 国产成人精品免费网站 | 日韩第二页| 在线免费观看你懂的 | 波多野结衣中文字幕在线播放 | 四虎在线免费观看视频 | 成人小网站| 日本美女逼 | 亚洲一二三四在线 | 毛片基地在线播放 | 亚洲香蕉在线观看 | 欧美色插 | 国产欧美专区 | 一区日韩 | 一本色道久久综合亚洲精品小说 | 天天天天躁天天爱天天碰2018 | 久久久久精 | 欧美精品一区二区三 | 日韩中文字幕视频在线 | 福利亚洲 | 好吊妞这里只有精品 | 日韩av中文字幕在线 | 青青青免费在线 | 视频二区中文字幕 | av午夜天堂 | 蜜臀一区二区三区精品免费视频 | 美女隐私免费观看 | 国产精品欧美一区二区 | 亚洲一区二区在线 | 春色网站| 国产精品入口麻豆九色 | 国产精品高潮呻吟久久久久久 | 三级网站 | 日本一本久久 | 亚洲欧美乱综合图片区小说区 | 欧美日韩综合一区二区三区 | 亚洲精品成人a | 激情小说在线观看 | 免费看黄色片视频 | 亚洲精品国产精品乱码不99热 | 久操久热| 国产人妻精品午夜福利免费 | 欧美成年人在线观看 | 欧美性受xxx黑人xyx性爽 | 2019自拍偷拍 | 最近中文字幕在线视频 | 欧美另类z0z变态 | 亚洲精品高清视频在线观看 | 人妻一区二区三区 | 国产91小视频 | 一级影片在线观看 | 欧美一级淫片免费 | 精品久久久久久久久久久久久 | 欧美mv日韩mv国产网站app | 少妇精品偷拍高潮白浆 | 国产精品天干天干 | 色老头一区二区三区 | 蜜桃精品在线 | 国产精品一二三级 | 精品国产二区三区 | 热久久久久 | 热久久国产 | av中文在线播放 | 97人人草| 密臀久久| 欧美成人精品一区二区三区 | 久久青青操 | 欧美日韩麻豆 | 日日摸日日操 | 第一章婶婶的性事 |