Invocación de una función en la base de datos de Oracle mediante el modelo de canal WCF
En esta sección se muestra cómo ejecutar una función en una base de datos de Oracle mediante el canal creado en Creación de un canal mediante oracle Database.
Ejecución de una función mediante el canal
Puede ejecutar una función en una base de datos de Oracle pasando un mensaje XML al adaptador de Microsoft BizTalk para oracle Database. El XML de entrada es similar al siguiente:
<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>
En el fragmento de código siguiente se muestra cómo ejecutar una función en una base de datos de Oracle mediante un canal.
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();
}
}
}
Consulte también
Desarrollo de aplicaciones de base de datos de Oracle mediante el modelo de canal WCF
Ejecución de una operación de inserción en la base de datos de Oracle mediante el modelo de canal WCF
Ejecución de una operación SQLEXECUTE mediante el modelo de canal WCF