4

私はバックエンドとしてオラクルを使用しており、挿入クエリを次のように記述していますが、正しい方法ではないかどうかはわかりませんが、

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

ここのクエリでは、ストアドプロシージャを使用して給与を計算し、outパラメータの給与として取得しているので、それを挿入クエリに渡して、どのように記述できるかを確認する必要があります。図のように書くと、以下のエラーが発生します

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

親切に私を助けてください。

4

3 に答える 3

13

Microsoftは Oracle プロバイダー (System.Data.OracleClient) を廃止したため、 Oracle の Data Provider for .NETなどのサード パーティ プロバイダーを使用します。以下のコード例は、メソッドの利便性を除けば、本質的にFSX の answerと同じです。AddWithValue

command.Parameters.Add(new OracleParameter("SL_NO", 1));
command.Parameters.Add(new OracleParameter("empane", "sree"));
于 2014-09-04T14:31:33.057 に答える
10

給与額が20000であると仮定すると、次のコードを試すことができます。

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();
}
于 2012-10-10T05:50:58.637 に答える