Anda tidak akan dapat melakukannya dengan mudah dengan System.Data.OracleClient yang tidak digunakan lagi tetapi Anda dapat menggunakan ODP Oracle dengan menggunakan UDT. Jika itu bukan pilihan, saya tidak yakin bagaimana Anda dapat melakukannya melalui parameter di C# dengan System.Data.
ODP memang datang dengan banyak contoh dan ada contoh di tautan di atas.
Saya akan menambahkan beberapa tautan lagi yang semoga membantu:
- indeks visual studio ODP
- ini menunjukkan kepada Anda dengan tepat bagaimana menggunakan ODT untuk membuat Anda pembungkus kelas khusus dan memanggilnya (perhatikan bahwa ini sedang berjalan, mereka berjalan menggunakan alat untuk membuat jenis kustom di atasnya dalam contoh -- panduan ini cukup menyeluruh dan akan membawa Anda langsung ke tempat yang Anda inginkan)
- Unduh :sekarang orang ini juga menginstal file sampel, ini adalah contoh hebat lain dari apa yang perlu Anda lakukan:setelah diinstalgoto [path direktori yang Anda instal]..\product\11.2.0\client_1\odp.net\samples\4\UDT\object1.cs
Membayar untuk mengizinkan alat ODT untuk Visual studio membuat kelas Anda untuk UDT Anda untuk Anda (mis. IOracleCustomType dan semacamnya). Anda kemudian dapat masuk ke dalamnya dan mengubahnya sesuai dengan kebutuhan Anda. kemudian setelah semua dikatakan dan dilakukan (cuplikan dari object1.cs):
Person p1 = new Person();
p1.Name = "John";
p1.Address = "Address1";
p1.Age = 20;
// Establish a connection to Oracle
OracleConnection con = new OracleConnection(constr);
con.Open();
// Update Person object and insert it into a database table
OracleCommand cmd = new OracleCommand(sql1, con);
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter param1 = new OracleParameter();
param1.OracleDbType = OracleDbType.Object;
param1.Direction = ParameterDirection.InputOutput;
// Note: The UdtTypeName is case-senstive
param1.UdtTypeName = "SCOTT.ODP_OBJ1_SAMPLE_PERSON_TYPE";
param1.Value = p1;
cmd.Parameters.Add(param1);
perhatikan juga bahwa kelas Person harus mengimplementasikan IOracleCustomType (yang dapat dibuat dengan mengikuti tautan di #2)
/* Person Class
An instance of a Person class represents an ODP_OBJ1_SAMPLE_PERSON_TYPE object
A custom type must implement INullable and IOracleCustomType interfaces
*/
public class Person : INullable, IOracleCustomType
Di atas adalah untuk tipe kustom penuh, tetapi Anda mencari pengikatan ODP array asosiatif:
http://weblogs.asp .net/ricardoperes/archive/2009/05/14/odp-net-associative-arrays.aspx
Anda ingin menggunakan
param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
dan semuanya harus sesuai