Compartilhar via


Como a: Adapt de exemplos para conectar-se a Oracle e outros bancos de dados

O Business Data Catalog pode conectar a e fornecem dados empresa a partir de seguinte bancos de dados:

  • Microsoft SQL Server

  • Oracle

  • OLE DB

  • ODBC

O exemplo AdventureWorks2000 explica a forma básica de trabalho com o Business Data Catalog para dados empresa apresentação de um banco de dados do SQL Server. Quando você trabalho com os outros bancos de dados, como Oracle, OLE DB e ODBC você siga exatamente as mesmas etapas e recomendamos que você iniciar com o AdventureWorks 2000 exemplo metadados e adaptá-lo para esses sistemas. No entanto, quando você adaptar os metadados AdventureWorks ou gravar novos metadados para esses sistemas, você deve lembrar o seguinte itens:

  • O caractere curinga pode diferir nesses sistemas. SQL Server usa o asterisco (*). No Oracle e outros sistemas, o caractere curinga é geralmente a assinar de porcentagem (%). Determine the wildcard character used by your system and change it in the WildcardCharacter property of the <LobSystem> tag.

  • O sintaxe SQL Oracle requer que você especificar parâmetros na sua consulta por prefixando-los com um dois-pontos (:) rather than de sinal de arroba (@). Certifique-se de definir esses corretamente nas instruções SQL no seu metadados.

  • Oracle requer id de usuário explícito e parâmetros senha no seqüência de conexão, o que significa que:

    • Você precisa configurar uma definição corporação no SSO com as credenciais Oracle.

    • Use AuthenticationMode de RdbCredentials.

    • Certifique-se de que o serviço Microsoft SSO é iniciado em todos os servidores farm. e definido para inicialização automática.

    • Você não pode usar as propriedades "RdbConnection User ID" e "Senha RdbConnection", como esses valores são fornecidos pelo SSO. Se você especificá-los, eles são simplesmente ignorados. Você deve usar o SSO para fornecer a Oracle credenciais.

    • O SSO requer conectividade RPC entre servidores. Certifique-se de que as portas necessárias (135, etc.) estiver aberto. Você pode usar 167260 KB como um guia sobre como a conectividade RPC verificar usando os utilitários Rpings.exe e rpingc.exe que estão no kit de recurso Microsoft Windows 2003 Server.

Exemplo

Este exemplo mostra como definir o LobSystemInstance LobSystemInstance propriedades para um banco de dados Oracle que está se conectando usando sign-on única (SSO). FEEDSTORE deve corresponder a TNS rede nome serviço. OracleDb deve corresponder ao nome de definição de aplicativo a corporação configurada no SSO.

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<LobSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Type="Database" Version="2.1.1.5" name="Oracle" xmlns="https://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">
<Properties>
  <Property name="WildcardCharacter" Type="System.String">%</Property> 
  </Properties>
<LobSystemInstances>
<LobSystemInstance name="Oracle Sys Instance">
<Properties>
  <Property name="AuthenticationMode" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode">RdbCredentials</Property> 
  <Property name="DatabaseAccessProvider" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider">Oracle</Property> 
  <Property name="RdbConnection Data Source" Type="System.String">FEEDSTORE</Property> 
  <Property name="RdbConnection Pooling" Type="System.String">false</Property> 
  <Property name="SsoApplicationId" Type="System.String">OracleDb</Property> 
  <Property name="WildcardCharacter" Type="System.String">%</Property> 
  </Properties>
  </LobSystemInstance>
  </LobSystemInstances>
<Entities>
<Entity EstimatedInstanceCount="10000" name="Employee">
<Properties>
  <Property name="Title" Type="System.String">EName</Property> 
  </Properties>
<Identifiers>
  <Identifier Typename="System.String" name="EmployeeName" /> 
  </Identifiers>
<Methods>
<Method name="EmployeeFinder">
<Properties>
  <Property name="RdbCommandText" Type="System.String">SELECT * FROM EMP WHERE ENAME LIKE :Name ORDER BY EMPNO</Property> 
  <Property name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property> 
  </Properties>
<FilterDescriptors>
  <FilterDescriptor Type="Wildcard" name="EmployeeName" /> 
  </FilterDescriptors>
<Parameters>
<Parameter Direction="In" name=":Name">
<TypeDescriptor Typename="System.String" Identifiername="EmployeeName" AssociatedFilter="EmployeeName" name="EmployeeName">
<DefaultValues>
  <DefaultValue MethodInstancename="IdEnumeratorInstance" Type="System.String">%</DefaultValue> 
  </DefaultValues>
  </TypeDescriptor>
  </Parameter>
<Parameter Direction="Return" name="Employees">
<TypeDescriptor Typename="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" name="Employees">
<TypeDescriptors>
<TypeDescriptor Typename="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Employee">
<TypeDescriptors>
  <TypeDescriptor Typename="System.Decimal" name="EmpNO" /> 
  <TypeDescriptor Typename="System.String" Identifiername="EmployeeName" name="EName" /> 
  <TypeDescriptor Typename="System.String" name="JOB" /> 
  <TypeDescriptor Typename="System.String" name="MGR" /> 
  <TypeDescriptor Typename="System.String" name="Job" /> 
  <TypeDescriptor Typename="System.DateTime" name="HireDate" /> 
  <TypeDescriptor Typename="System.Decimal" name="SAL" /> 
  <TypeDescriptor Typename="System.Decimal" name="COMM" /> 
  <TypeDescriptor Typename="System.Decimal" name="DEPTNo" /> 
  </TypeDescriptors>
  </TypeDescriptor>
  </TypeDescriptors>
  </TypeDescriptor>
  </Parameter>
  </Parameters>
<MethodInstances>
  <MethodInstance Type="Finder" ReturnParametername="Employees" ReturnTypeDescriptorname="Employees" ReturnTypeDescriptorLevel="0" name="EmployeeFinderInstance" /> 
  <MethodInstance Type="SpecificFinder" ReturnParametername="Employees" ReturnTypeDescriptorname="Employees" ReturnTypeDescriptorLevel="0" name="EmployeeSpecificFinderInstance" /> 
  <MethodInstance Type="IdEnumerator" ReturnParametername="Employees" ReturnTypeDescriptorname="Employees" ReturnTypeDescriptorLevel="0" name="IdEnumeratorInstance" /> 
  </MethodInstances>
  </Method>
  </Methods>
  </Entity>
  </Entities>
</LobSystem>