Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

.NET से पैरामीटर के साथ Oracle संग्रहीत कार्यविधि को कॉल करने के लिए उचित odbc कमांड क्या है?

मैं .NET 3.5 और Oracle 10gR2 चला रहा हूं। मैंने आपकी टिप्पणी के जवाब में एक आउटपुट पैरामीटर जोड़ा है।

Server , Uid , और Pwd निर्दोषों की रक्षा के लिए बदल दिया गया है। उन्हें उपयुक्त मानों पर सेट करें।

मेरी संग्रहित प्रक्रिया:

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

मेरा परीक्षण कोड:

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
        }
    }
}

OUT का उपयोग करते समय या IN OUT पैरामीटर, Size OdbcParameter . की संपत्ति पर्याप्त मान पर सेट किया जाना चाहिए।

अपवाद हैंडलिंग के संबंध में आपकी टिप्पणी के जवाब में, मेरे पास डेटा एक्सेस विधि हैंडल अपवादों का कॉलर होगा। using . के साथ निर्माण, Dispose विधि स्वचालित रूप से कमांड और कनेक्शन ऑब्जेक्ट पर कॉल की जाएगी चाहे कोई अपवाद हो या नहीं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle sql या pl/sql:पिछली पंक्ति मानों और दिनांक कॉलम के आधार पर गणना करें

  2. Oracle के साथ चुनिंदा परिणामों को स्थानांतरित करें

  3. Oracle JDBC पतला ड्राइवर SSL

  4. Oracle क्लस्टर में sysdate हमेशा एक सुसंगत उत्तर देगा?

  5. Php के लिए linux में oci8 एक्सटेंशन इंस्टॉल करना?