内容简介:有人知道如何使用PL / SSQL和ODP.NET从C#实现Oracle Advance Queue?我在C#或VB.NET中找不到具有具体示例的单个示例或资源.理想情况下,我想了解一些关于如何使用简单类型(XMl / string)排队和出列消息的示例.
有人知道如何使用PL / SSQL和ODP.NET从C#实现Oracle Advance Queue?
我在C#或VB.NET中找不到具有具体示例的单个示例或资源.
理想情况下,我想了解一些关于如何使用简单类型(XMl / string)排队和出列消息的示例.
我无法帮助您掌握最佳实践,但我可以帮助您使用UDT队列.在处理队列之前,需要从数据库生成自定义类型到C#项目中.假设您安装了Visual Studio和ODP.NET,您只需通过Server Explorer连接到数据库,找到您的UDT,右键单击并选择“Generate Custom Class …”这些类直接映射到您的UDT并使用存储出列信息.
以下是用于排队邮件的代码示例:
private void main(string[] args) { string _connstring = "Data Source=host/DB;User Id=USER;Password=PASSWORD1;"; OracleConnection _connObj = new OracleConnection(_connstring); // Create a new queue object OracleAQQueue _queueObj = new OracleAQQueue("UDT_NAME", _connObj); _connObj.Open(); OracleTransaction _txn = _connObj.BeginTransaction(); // Set the payload type to your UDT _queueObj.MessageType = OracleAQMessageType.Udt; _queueObj.UdtTypeName = "UDT_NAME"; // Create a new message object OracleAQMessage _msg = new OracleAQMessage(); // Create an instance of JobClass and pass it in as the payload for the // message UDT_CUSTOM_CLASS _custClass = new UDT_CUSTOM_CLASS(); // Load up all of the properties of custClass custClass.CustString = "Custom String"; custClass.CustInt = 5; _msg.Payload = custClass; // Enqueue the message _queueObj.EnqueueOptions.Visibility = OracleAQVisibilityMode.OnCommit; _queueObj.Enqueue(_msg); _txn.Commit(); _queueObj.Dispose(); _connObj.Close(); _connObj.Dispose(); _connObj = null; }
这是一个类似的出列过程:
private void main(string[] args) { string _connstring = "Data Source=host/DB;User Id=USER;Password=PASSWORD1;"; OracleConnection _connObj = new OracleConnection(_connstring); // Create a new queue object OracleAQQueue _queueObj = new OracleAQQueue("UDT_NAME", _connObj); // Set the payload type to your UDT _queueObj.MessageType = OracleAQMessageType.Udt; _queueObj.UdtTypeName = "UDT_NAME"; _connObj.Open(); OracleTransaction _txn = _connObj.BeginTransaction(); // Dequeue the message. _queueObj.DequeueOptions.Visibility = OracleAQVisibilityMode.OnCommit; _queueObj.DequeueOptions.Wait = 10; OracleAQMessage _deqMsg = _queueObj.Dequeue(); UDT_CUSTOM_CLASS data = (UDT_CUSTOM_CLASS)_deqMsg.Payload; // At this point, you have the data and can do whatever you need to do with it _txn.Commit(); _queueObj.Dispose(); _connObj.Close(); _connObj.Dispose(); _connObj = null; }
这是一个“简单”的例子.我从Ed Zehoo的Pro ODP.NET for Oracle Database 11g中删除了大部分内容.这是一本很好的书,我强烈建议它帮助你更好地理解OPD.NET所有东西的来龙去脉.您可以在这里购买电子书: http://apress.com/book/view/9781430228202 .如果您输入优惠券代码MACWORLDOC,您可以以21.00美元的价格购买电子书.该优惠仅适用于受密码保护的PDF格式的电子书.我希望这有帮助!
翻译自:https://stackoverflow.com/questions/1265750/oracle-advanced-queueing-with-net
以上所述就是小编给大家介绍的《使用.Net进行Oracle高级排队》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 看程序员怎么解决食堂排队问题
- 排队三小时,看病三分钟,AI 能帮忙吗?
- 流程篇 | 避免 evalString 进行回调,使用 JSB 进行手动绑定
- 【Cocos Creator】拒绝 evalString 进行回调,使用 JSB 进行手动绑定(流程篇)
- 【技术分享】通过短信进行XSS攻击:在Verizon Message应用中利用文本消息进行攻击
- 用Apache Spark进行大数据处理 - 第六部分: 用Spark GraphX进行图数据分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
编写可读代码的艺术
Boswell, D.、Foucher, T. / 尹哲、郑秀雯 / 机械工业出版社 / 2012-7-10 / 59.00元
细节决定成败,思路清晰、言简意赅的代码让程序员一目了然;而格式凌乱、拖沓冗长的代码让程序员一头雾水。除了可以正确运行以外,优秀的代码必须具备良好的可读性,编写的代码要使其他人能在最短的时间内理解才行。本书旨在强调代码对人的友好性和可读性。 本书关注编码的细节,总结了很多提高代码可读性的小技巧,看似都微不足道,但是对于整个软件系统的开发而言,它们与宏观的架构决策、设计思想、指导原则同样重要。编......一起来看看 《编写可读代码的艺术》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
HEX HSV 转换工具
HEX HSV 互换工具