Tag: 存储过程

从C#将表类型对象作为输入参数传递给Oracle中的存储过程

我有接受表类型作为输入参数的存储过程。 如何从c#代码传递对象? create or replace TYPE CUSTOM_TYPE AS OBJECT ( attribute1 VARCHAR(10), attribute2 VARCHAR(10) ); create or replace TYPE CUSTOM_TYPE_ARRAY AS TABLE OF CUSTOM_TYPE; PROCEDURE SP_TEST ( P_TABLE_IN IN CUSTOM_TYPE_ARRAY, P_RESULT_OUT OUT SYS_REFCURSOR ) AS BEGIN OPEN P_RESULT_OUT FOR SELECT ti.attribute1, ti.attribute2, ti.attribute3 FROM TABLE(P_TABLE_IN) ea inner join MYTABLE ti on ea.attribute1 = ti.attribute1 and […]

从c#传递数组到Oracle过程

我正在尝试将数组传递给oracle过程。 我搜索了它,首先我创建了一个名为’dizi’的类型(在这里输入链接描述 )。 所以它适用于oracle开发人员。 问题是; 我不能将我的c#数组作为参数传递给procedure。 那么如何将我的数组传递给我的程序呢? 这是我的代码(当我执行时,oracle错误说:并非所有变量都绑定) public void InsertQuestion(List area_list) { quest_areas = area_list.ToArray(); command.Connection = connect; connect.Open(); var arry = command.Parameters.Add(“Areas”, OracleDbType.Varchar2); arry.Direction = ParameterDirection.Input; arry.CollectionType = OracleCollectionType.PLSQLAssociativeArray; arry.Value = quest_areas; command.CommandText =”TESTPROCEDURE(:Areas)”; command.CommandType = CommandType.StoredProcedure; command.ExecuteNonQuery(); connect.Close(); }

在c#中检索SQL Server输出变量

我有一个存储过程: ALTER PROCEDURE [dbo].[pr_Tbl_Test_Insert] @guidid uniqueidentifier output, @sname nvarchar(50) AS — INSERT a new row in the table. INSERT [dbo].[Tbl_Test] ( [id], [name] ) VALUES ( ISNULl(@guidid, (newid())), @sname ) 我需要C#中的id并将其output到c#中: cmd.Parameters.AddWithValue(“@guidid”,_id);//_id is SqlGuid cmd.Parameters.AddWithValue(“@sname”, “mehdi”); cmd.ExecuteNonQuery(); MessageBox.Show(_id.ToString()); 但是消息框显示空值! 我怎样才能归还id? 我改成了: ALTER PROCEDURE [dbo].[pr_Tbl_Test_Insert] @guidid uniqueidentifier output, @sname nvarchar(50) AS DECLARE @NewID UNIQUEIDENTIFIER SET @NewID […]

从SQL CLR调用Web服务?

我有一个返回表的SQL Server 2012存储过程。 我必须修改该SP以向返回的表添加其他值。 不幸的是,这种附加值来自对Web服务的调用。 从我的研究中,我收集的主要方法是在SQL中使用OLE自动化程序(sp_OA …),或者使用SQLCLR存储过程。 给定sp_OA …过程运行的安全上下文,单个返回值是VARCHAR(10)注册密钥,并且对服务的调用很少(每小时10到20个),我猜测SQLCLR方法是要走的路。 此外,Web服务托管在我们的Intranet上,外部世界无法访问。 有没有更好的方法来完成我需要的东西? 更好的意思是更高性能,更好的安全性,更容易编码和维护

如何使用DataContext.ExecuteCommand并获取执行的存储过程返回值?

在ac #project中,我调用存储过程如下: System.Data.Linq.DataContext dataContext = MembershipContext.GetContext(connectionString); int returnValue = dataContext.ExecuteCommand(“EXEC usp_SomeProcedure {0}, {1}, {2}”, param1, param2, param3); 但是,ExecuteCommand返回受影响的行数,而不是我的存储过程返回值。 获得这个价值的最简单方法是什么? 我需要这个,因为SP在成功时返回0,如果发生错误则返回正的int值。 现在,存储过程使用RETURN输出其返回值。 但是,我可以为SELECT更改此选项,或者如果需要,我也可以使用输出参数。

在.NET中捕获存储过程打印输出(不同型号!)

基本上, 这个问题有所不同…… 是否可以使用entity framework从.NET中的TSQL存储过程捕获打印输出? 另一个问题的解决方案对我不起作用。 它适用于System.Data.SqlClient中的连接类型,但我使用System.Data.EntityClient中没有InfoMessage事件的连接类型。 (当然,我可以根据实体连接设置创建一个SQL连接,但更喜欢直接这样做。)

使用XML数据类型调用存储过程

我只是尝试使用C#调用存储过程(SQL Server 2008)并将XMLDocument传递给采用SqlDbType.Xml数据类型的存储过程参数。 我收到错误:无法将参数值从XmlDocument转换为String。 下面是代码示例。 如何将XML文档传递给期望XML数据类型的存储过程? 谢谢。 XmlDocument doc = new XmlDocument(); //Load the the document with the last book node. XmlTextReader reader = new XmlTextReader(@”C:\temp\” + uploadFileName); reader.Read(); // load reader doc.Load(reader); connection.Open(); SqlCommand cmd = new SqlCommand(“UploadXMLDoc”, connection); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(“@Year”, SqlDbType.Int); cmd.Parameters[“@Year”].Value = iYear; cmd.Parameters.Add(“@Quarter”, SqlDbType.Int); cmd.Parameters[“@Quarter”].Value = iQuarter; cmd.Parameters.Add(“@CompanyID”, SqlDbType.Int); […]

什么是SQL Server CLR集成生命周期?

如何在SQL Server中管理CLR(.NET)对象? SQL Server中任何CLR代码的入口点都是静态方法。 通常,您只会创建该方法范围内的对象。 但是,您可以设想在静态成员中存储对象的引用,让它们转义方法调用范围。 如果SQL Server在多个存储过程/函数调用中将这些对象保留在内存中,那么它们对于缓存应用程序可能很有用 – 尽管它们也更危险。 SQL Server如何处理这个问题? 它甚至允许(非方法)静态成员吗​​? 如果是这样,它在记忆中保留了多长时间? 在每次CLR呼叫之后垃圾收集所有内容吗? 它如何处理并发?

如何调试Azure Cosmos DB存储过程?

我正在使用Azure Cosmos DB,我正在使用C#(Web服务)编写客户端,我正在使用java脚本编写一些服务器端存储过程。 如何调试存储过程的代码? 谢谢, MAK

Entity Framework数据库中的存储过程第一种方法

我正在使用Entity Framework数据库第一种方法进行从Webforms到MVC应用程序的项目转换,并准备好数据库以及所有存储过程。 我成功创建了一个.edmx文件,并且能够使用我的存储过程,并且在执行任何插入或更新操作时它工作得很好。 但是当我在我的一个存储过程中使用select查询时出现了真正的问题。 例如,有一个Employee表,其中包含以下列: EmpId, FirstName, LastName, Age, Salary 我有一个存储过程GetAllEmpDetails有以下选择查询。 Select EmpId, (FirstName + ‘ ‘ + LastName) as FullName, Salary from Employee 现在,当我尝试将此存储过程的结果与根据表结构具有5个属性的Employee类绑定时,我得到一个错误,即Age属性的值是预期的,但它在结果集中不可用。 我知道也没有FullName属性,所以我的问题是如何用生成的模型类解决这个问题(在本例中是Employee ),以便它可以解决这些动态问题?