Codigos Fonte, Artigos e Dicas
ASP.NET + Oracle – Parte 1
Deixo claro que não irei a fundo sobre a Administração e a Instalação do Oracle Database , neste artigo estou usando a versão 10g dentro de uma máquina virtual com CentOS 5.3, mas iremos abordar nesta primeira parte sobre a instalação do ODAC (Oracle Data Access Components) e alguns dos principais conceitos sobre o Oracle Database.
Cenário Atual
- Oracle Database 10.2g
- Enterprise Edition
- Oracle 11g ODAC 11.1.0.7.20 with Oracle Developer Tools for Visual Studio
- Oracle Developer Tools for Visual Studio 11.1.0.7.20
- Oracle Data Provider for .NET 2.0 11.1.0.7.20
- Oracle Providers for ASP.NET 11.1.0.7.20
- Oracle Database Extensions for .NET 2.0 11.1.0.7.20 — Somente para upgrade
- Oracle Provider for OLE DB 11.1.0.7.20
- Oracle Objects for OLE 11.1.0.7.20
- Oracle Services for Microsoft Transaction Server 11.1.0.7.20
- Oracle ODBC Driver 11.1.0.7.0
- Oracle SQL*Plus 11.1.0.7.0
- Oracle Instant Client 11.1.0.7.0
- Visual Studio 2008
- .NET Framework 3.5 SP1
Instalando o ODAC
Passo 1 -> Vamos fazer o download do ODAC no link http://www.oracle.com/technology/software/tech/windows/odpnet/index.html – A última versão até o lançamento deste post era a 11.1.0.7.20, eu recomendo fazer o download da versão completa como descrita acima.
Passo 2 -> Descompacte o arquivo e instale-o com o OUI (Oracle Universal Installer).
Nota: Não é recomendada a instalação em diretórios onde contenham espaços no nome da pasta como “Program Files” então eu recomendo colocar em “C:/Oracle”
Passo 3 -> Após instalado não está tudo pronto, é necessário fazer algumas configurações básicas:
- 1 – Variáveis:
- 1.1 - %ORACLE_HOME% é recomendável configurá-la (Ex. C:\Oracle\product\11.1.0\client_2)
- 1.2 - %PATH% se eu não estou muito enganado assim que você termina a instalação já é definida nessa variável um caminho similar a esse:
C:\Oracle\product\11.1.0\client_2\
mas eu adicionei o caminho
C:\Oracle\product\11.1.0\client_2\bin
é bom para quem gosta de usar o SQL-Plus
- 2 – SQL*NET Setup
- 2.1 - EZCONNECT – O EZCONNECT ou TNSNAME pode ser usado para conectar ao Oracle para execução dos scripts de confiuração do Oracle Providers ASP.NET bem como para utilizar os Providers após instalados conectando eles com o Oracle Database. Para conectar ao database usando qualquer abordagem, o arquivo %ORACLE_HOME%\Network\Admin\sqlnet.ora deve ser criado contendo:
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
Para habilitar a autenticação usando o usuário do seu Sistema Operacional, é necessário incluir a seguinte linha:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
Depois de configurado, você pode usar o EZCONNECT.
No “data source” deve ser especificada no seguinte formato (Nenhum outro arquivo de configuração é necessário):
[//]host[:port][/service_name][/server][/instance_name]
- 2.2 -TNSNAME – É um arquivo de configuração que contém o net service name mapeado para o descritor do conector. Resumindo, é utilizado para criar um alias para a conexão com o database. Para utilizar o TNSNAME é necessário criar o arquivo:%ORACLE_HOME%\Network\Admin\tnsnames.ora – Segue abaixo um exemplo de configuração de um alias:
orcl = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.113)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.rio.com) ) )
O protocolo, host, port e service name no exemplo a cima deve ser modificado apropriadamente. Nesse caso foi criado um alias chamado “orcl” que deve ser especificado no “data source” do string de conexão.
Na segunda parte deste artigo nós usaremos esse TNSNAME durante os exemplos.
- 2.1 - EZCONNECT – O EZCONNECT ou TNSNAME pode ser usado para conectar ao Oracle para execução dos scripts de confiuração do Oracle Providers ASP.NET bem como para utilizar os Providers após instalados conectando eles com o Oracle Database. Para conectar ao database usando qualquer abordagem, o arquivo %ORACLE_HOME%\Network\Admin\sqlnet.ora deve ser criado contendo:
- 3 – Executando o Script SQL
- 3.1 - Essa parte é importante se você for utilizar Providers no seu projeto. Antes de você executar qualquer Oracle Provider para ASP.NET é necessário executar os scripts SQL de configuração.
- 3.2 - É importante informá-los que o script vai criar tabelas, stored procedures, views e roles. Eles vão pertencer ao usuário que estiver executando os scritps. Antes de mais nada, verifique se seu usuário tem os seguintes privilégios:
- CHANGE NOTIFICATION
- CREATE JOB
- CREATE PROCEDURE
- CREATE PUBLIC SYNONYM
- CREATE ROLE
- CREATE SESSION
- CREATE TABLE
- CREATE VIEW
- DROP PUBLIC SYNONYM
- 3.3 - Você pode executar os scripts com o SQL*Plus ou usar o Oracle Developer Tools (ODT) para Visual Studio 2008. se você for usar o SQL*Plus, segue uma boa dica nesse post: “Prompt do DOS Rápido“, neste exemplo vamos usar o ODT.
- 3.3.1 - Abra o Visual Studio 2008, vá em “tools” em seguida em “Run SQL*Plus Script“
- 3.3.2 - Na janela do “Run SQL*Plus Script” clique no botão ”New Connection“.
- 3.3.3 - Na janela “Connection Proprierties” selecione ”Oracle Database Server (Oracle ODP.NET)” para Data Source e “Oracle Data Provider for .NET” para Data Provider. Selecione o alias TNS no Data Source. Se nenhum alias estiver no drop-down digite o seu alias TNS conforme configurado no item 2.2. Digite o usuário e senha, ou selecione “Use Windows integrated authentication“. Clique no botão “Test Connection” para testar a conexão. Se retornar uma mensagem de sucesso! Clique no botão OK.
- 3.3.4 - De volta para a janela do ‘Run SQL*Plus Script‘, procure e selecione o script SQL a ser executado. Geralmente a localização desses scripts ficam em
“%ORACLE_HOME%\ASP.NET\SQL“ - 3.3.5 - O script “InstallOracleASPNETCommon.sql” deve ser executado primeiro, antes de executar qualquer outro script para ”Oracle Providers for ASP.NET“, depois disso não é mais necessário executar esse script novamente. Não é necessário executar todos os scripts. Por exemplo, se sua aplicação utilizar somente o “Oracle’s Membership provider“, execute somente o “InstallOracleASPNETCommon.sql” e o “InstallOracleMembership.sql“, nesta ordem.
- 3.3.6 - Caso você deseje instalar todos os Providers execute unicamente o “InstallAllOracleASPNETProviders.sql” , para usuários do Oracle Database 9 é necessário realizar algumas modificações dentro deste arquivo (abra e modifique).
- 3.3.6 - Para a desinstalar os Providers o processo é exatamente o mesmo, os scripts “Uninstall” correspondem aos “Install”.
Observações e Notas:
- 4 – machine.config
Após a instalação do “Oracle Providers for ASP.NET”, o arquivo “%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config” é modificado para atenderem aos requisitos dos novos ASP.NET providers. Um alias “connection string” é criado com o nome
“OraAspNetConString“, do qual é referenciado por cada “Oracle
Providers for ASP.NET“. A baixo segue o exemplo de uma típica configuração feita no arquivo “machine.config“:<configuration> ... <connectionStrings> ... <add name="OraAspNetConString" providerName="Oracle.DataAccess.Client" connectionString=" " /> </connectionStrings> ... <system.web> ... <membership> <providers> <add name="OracleMembershipProvider" type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=2.111.7.20, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" /> ... </providers> </membership> ... </system.web> ... </configuration>
O exemplo a cima mostra somente a entrada do “Oracle Membership Provider“. Os outros Providers vão ter uma sintax semelhante a esta.
Se o alias “OraAspNetConString” no machine.config vai ser usado pelo seu aplicativo, você deve atribuir uma “connection string” válida no “machine.config” ou sobrescrever essas configurações no “web.config”.
- 5 – Web.config Você pode usar o arquivo de configuração “web.config” para sobrescrever as configurações atuais do arquivo “machine.config” como mencionado anteriormente. Alguns exemplos são apresentados no “Oracle Providers for ASP.NET Developer’s Guide” (pdf).
Links
Posts Relacionados
| Imprimir artigo | Este artigo foi escrito por Alexandre Santos em 22 22UTC dezembro 22UTC 2009 às 18:00, e está arquivado em ASP.NET. Siga quaisquer respostas a este artigo através do RSS 2.0. Você pode deixar uma resposta ou fazer um trackback do seu próprio site. |


há 1 ano atrás
Brother, na boa… eu ODEIO ORACLE.. faz dois dias que tento conectar a esse lixo pelo asp.net e só dá pau. Conecto por TOAD numa boa, mas o asp.net não vai nem com reza…
Qualquer outro banco que já trabalhei era só baixar um driverzinho de alguns kbytes, adicionar a referencia, e tava conectado.. esse demonio já me faz baixar vários Gigas, mudar variaveis de ambiente, mecher em regedit.. e nadaaaaaa.
Nao sei como você aguenta esse lixo, vou desistir de pegar serviço em oracle..
[Reply]
Alexandre Santos Reply:
janeiro 2nd, 2011 at 22:30
haushauhsuashauhsa
calma parceiro… o bd é bom, é um pouco complexo mas é excelente, quando tiver que estudar sobre alguma coisa sobre o oracle entra no http://otn.oracle.com vá na documentação do produto Oracle desejado nesse caso o bd escolha a versão e veja se tem algo relevante, em geral a documentação é excelente, somente 1 vez encontrei um problema mas reportei e eles em alguns dias corrigiram, é uma boa empresa….
bem.. segue o link do “book” do “Oracle® Database 2 Day + .NET Developer’s Guide”:
http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10767/toc.htm
esse é da versão 11.2, você pode conferir para a versão que você deseja.
Abraços….
[Reply]
rrend Reply:
janeiro 28th, 2011 at 12:49
Obrigado pela ajuda. Vim descobrir que meu pc estava com um vírus safado que havia tirado minhas permissoes de administrador da máquina.
Aí quando ia conectar usando o Server do Visual studio (que usa o usuário logado no windows) ele dava esses erros que presenciei.. legal seria se tivesse uma mensagem avisando que tá sem permissão pra ver a pasta home, ao invés de “SqlHandlerEvent allguma coisa” que ele exibia pra mim…
(sacanagemmmm)..
Ainda bem que resolvi meu problema.
abraço.
abraço.
[Reply]
há 1 ano atrás
oracle é uma bosta prefiro jogar bolar do que ficar mexendo nessa pora
[Reply]
há 1 ano atrás
oracle é uma bosta prefiro jogar bolar do que ficar mexendo nessa pora
[Reply]
há 1 ano atrás
A todos que odeiam o oracle:
Oracle (na minha opinião) é o melhor banco de dados do mundo. Já usei o sql server, firebird, e o banqueta do access, for outros que tive a oportunidade de conhecer. Se estudar um pouco mais os recursos que o oracle lhe oferece, verá que não há nada mais seguro, robusto e suficiente para fazer qualquer coisa em termos de aplicação de banco de dados, sem falar que volume de dados no oracle é docinho de criança.
[Reply]