WCF 채널 모델을 사용하여 Oracle Database에서 함수 호출
이 섹션에서는 Oracle 데이터베이스를 사용하여 채널 만들기에서 만든 채널을 사용하여 Oracle 데이터베이스에서 함수를 실행하는 방법을 보여 줍니다.
채널을 사용하여 함수 실행
Oracle 데이터베이스용 Microsoft BizTalk 어댑터에 XML 메시지를 전달하여 Oracle 데이터베이스에서 함수를 실행할 수 있습니다. 입력 XML은 다음과 유사합니다.
<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>
다음 코드 발췌에서는 채널을 사용하여 Oracle 데이터베이스에서 함수를 실행하는 방법을 보여 줍니다.
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();
}
}
}
참고 항목
WCF 채널 모델을 사용하여 Oracle 데이터베이스 애플리케이션 개발
WCF 채널 모델을 사용하여 Oracle 데이터베이스에서 삽입 작업 실행
WCF 채널 모델을 사용하여 SQLEXECUTE 작업 실행