Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apa perintah odbc yang tepat untuk memanggil prosedur tersimpan Oracle dengan parameter dari .Net?

Saya menjalankan .NET 3.5 dan Oracle 10gR2. Saya telah menambahkan parameter keluaran sebagai tanggapan atas komentar Anda.

Server , Uid , dan Pwd telah diubah untuk melindungi yang tidak bersalah. Setel ke nilai yang sesuai.

Prosedur tersimpan saya:

create or replace
procedure test_proc(p1 in number, p2 in out varchar2) is
begin
  p2 := to_char(p1 + to_number(p2));
end;

Kode pengujian saya:

using System;
using System.Data;
using System.Data.Odbc;

class OdbcTest
{
    const string connectionString =
        @"Driver={Microsoft ODBC for Oracle};" +
        @"Server=MyTnsName;" +
        @"Uid=MySchema;" +
        @"Pwd=MyPassword;";

    public static string TryMe()
    {
        using (var odbcConn = new OdbcConnection(connectionString))
        using (var odbcCommand = odbcConn.CreateCommand())
        {
            odbcCommand.CommandText = "{ CALL test_proc(?, ?) }";
            odbcCommand.CommandType = CommandType.StoredProcedure;

            odbcCommand.Parameters.Add("p1", OdbcType.Decimal).Value = 42;
            var p2 = odbcCommand.Parameters.Add("p2", OdbcType.VarChar, 30);
            p2.Direction = ParameterDirection.InputOutput;
            p2.Value = "25";

            odbcConn.Open();
            odbcCommand.ExecuteNonQuery();

            return p2.Value as string; // returns 67
        }
    }
}

Saat menggunakan OUT atau IN OUT parameter, Size properti dari OdbcParameter harus disetel ke nilai yang memadai.

Menanggapi komentar Anda tentang penanganan pengecualian, saya akan meminta pemanggil metode akses data menangani pengecualian. Dengan using konstruksi, Dispose metode akan dipanggil secara otomatis pada perintah dan objek koneksi apakah ada pengecualian atau tidak.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. InstallAllOracleASPNETProviders tidak bekerja dengan benar

  2. Setara dengan fungsi R cbind() di Oracle?

  3. Cari tahu Karyawan yang absen selama 3 hari berturut-turut

  4. Kolom pemotongan Oracle

  5. Beberapa Kumpulan Hasil dengan Oracle