[英]accessing oracle stored procedures via dotnet through odbc
i have wrote procedures as 我已经写了程序
CREATE OR REPLACE PROCEDURE proc_ss(cName IN PayRoll.Name%VARCHAR2(50)
)
IS
BEGIN
insert into employees(Name) values(cName);
END;
it executed with some compilation errors through sql plus. 它通过sql plus执行时出现了一些编译错误。
and my c# code for accessing this procedure is 我用于访问此过程的C#代码是
OdbcCommand cmdupd = new OdbcCommand("{call proc_ss(?)}", con);
cmdupd.CommandType = CommandType.StoredProcedure;
cmdupd.Parameters.Add("Name", OdbcType.VarChar, 50).Value = Name;
cmdupd.ExecuteNonQuery();
cmdupd.Dispose();
while running the above query i am getting error as 在运行上述查询时,我收到错误提示
System.data.odbcexception as:
ERROR [NA000] [Microsoft][ODBC driver for Oracle][Oracle]ORA-20003:
ERROR [42000] [Microsoft][ODBC driver for Oracle]Syntax error or access violation
Stack Trace as:
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod)
at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader)
at System.Data.Odbc.OdbcCommand.ExecuteNonQuery()
at payroll.BusinessAccessLayer.updating(Int32 id, String Name, String Phone, String Email, String Designation, String LevelID, String Username, String Password) in e:\payrollmanagement-oracle\source\Payroll\App_Code\BusinessAccessLayer.cs:line 103
at employees.gridEmployees_RowUpdating(Object sender, GridViewUpdateEventArgs e) in e:\payrollmanagement-oracle\source\Payroll\employees.aspx.cs:line 118
at System.Web.UI.WebControls.GridView.OnRowUpdating(GridViewUpdateEventArgs e)
at System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation)
at System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup)
at System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e)
at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
at System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e)
at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
at System.Web.UI.WebControls.ImageButton.OnCommand(CommandEventArgs e)
at System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
i do not know where i got stuck in...! 我不知道我被困在哪里...!
waiting for your valuable responses and comments.. 等待您的宝贵回应和评论。
You adjust command Name
with proc_ss 您使用proc_ss调整command Name
OdbcCommand cmdupd = new OdbcCommand("{ CALL proc_ss(?) }", con);
And you adjust also your parameter 您也可以调整参数
cmdupd.Parameters.Add("@cName", OdbcType.VarChar, 50).Value = Name;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.