Aufrufen einer Funktion in Oracle-Datenbank mithilfe des WCF-Kanalmodells
In diesem Abschnitt wird veranschaulicht, wie Sie eine Funktion in einer Oracle-Datenbank mithilfe des kanals ausführen, der unter Erstellen eines Kanals mit Oracle Database erstellt wurde.
Ausführen einer Funktion mithilfe des Kanals
Sie können eine Funktion für eine Oracle-Datenbank ausführen, indem Sie eine XML-Nachricht an den Microsoft BizTalk-Adapter für Oracle-Datenbank übergeben. Die Eingabe-XML ähnelt folgendem:
<CREATE_ACCOUNT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG" xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">
<REC xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
<ns0:ID>1</ns0:ID>
<ns0:NAME>Scott</ns0:NAME>
<ns0:BANKNAME>CitiBank</ns0:BANKNAME>
<ns0:BRANCH>NY</ns0:BRANCH>
<ns0:ENABLED>Y</ns0:ENABLED>
</REC>
</CREATE_ACCOUNT>
Im folgenden Codeausschnitt wird veranschaulicht, wie eine Funktion in einer Oracle-Datenbank mithilfe eines Kanals ausgeführt wird.
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.ServiceModel;
using System.ServiceModel.Channels;
using Microsoft.ServiceModel.Adapters;
using Microsoft.Adapters.OracleDB;
namespace OraclePackageChannel
{
class Program
{
static void Main(string[] args)
{
// Create Endpoint
EndpointAddress address = new EndpointAddress("oracledb:// ADAPTER");
// Create Binding
OracleDBBinding binding = new OracleDBBinding();
// Create Channel Factory
ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, address);
factory.Credentials.UserName.UserName = "SCOTT";
factory.Credentials.UserName.Password = "TIGER";
factory.Open();
// Create Request Channel
IRequestChannel channel = factory.CreateChannel();
channel.Open();
// Send Request
System.Xml.XmlReader readerIn = System.Xml.XmlReader.Create("Create_Account.xml");
Message messageIn = Message.CreateMessage(MessageVersion.Default, "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT", readerIn);
Message messageOut = channel.Request(messageIn);
// Get Response XML
XmlReader readerOut = messageOut.GetReaderAtBodyContents();
// Get Employee ID
XmlDocument doc = new XmlDocument();
doc.Load(readerOut);
doc.Save("d:\\out.xml");
messageOut.Close();
channel.Close();
}
}
}
Weitere Informationen
Entwickeln von Oracle-Datenbankanwendungen mithilfe des WCF-Kanalmodells
Ausführen eines Einfügevorgangs in Oracle-Datenbank mithilfe des WCF-Kanalmodells
Ausführen eines SQLEXECUTE-Vorgangs mithilfe des WCF-Kanalmodells