Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write parameterized oracle insert query?

Tags:

c#

oracle

I am using oracle as my back end and i write insert query as follows, i don't know is it correct way are not,

insert into Emp_table (SL_NO,empane,empid,salaray) values(1,'sree',1002 ,:salary);

here in query i am calculating salary with stored procedure and getting as my out parameter salary so i has to pass that to my insert query so how can i write. if i write like as shown i am getting below errors

ORA-06550: line 1, column 175:
PL/SQL: ORA-00933: SQL command not properly ended
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored

kindly help me.

like image 432
Sreedhar goud Avatar asked Nov 29 '22 02:11

Sreedhar goud


2 Answers

Microsoft deprecated their Oracle provider (System.Data.OracleClient) so use a third party provider such as Oracle's Data Provider for .NET. The code example below is essentially the same as FSX's answer, just without the convenience of the AddWithValue method.

command.Parameters.Add(new OracleParameter("SL_NO", 1));
command.Parameters.Add(new OracleParameter("empane", "sree"));
like image 171
James Lawruk Avatar answered Dec 05 '22 01:12

James Lawruk


Assuming salary amount is 20000, You can try this code:

var commandText = "insert into Emp_table (SL_NO,empane,empid,salaray) values(:SL_NO,:empane,:empid,:salary)";

using (OracleConnection connection = new OracleConnection(connectionString))
using (OracleCommand command = new OracleCommand(commandText, connection))
{
    command.Parameters.AddWithValue("SL_NO", 1);
    command.Parameters.AddWithValue("empane", "sree");
    command.Parameters.AddWithValue("empid", 1002);
    command.Parameters.AddWithValue("salaray", 20000);
    command.Connection.Open();
    command.ExecuteNonQuery();
    command.Connection.Close();
}
like image 40
Furqan Safdar Avatar answered Dec 05 '22 02:12

Furqan Safdar