corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Conectando-se a um banco de dados Oracle a partir do NetBeans IDE

O NetBeans IDE inclui um suporte integrado para banco de dados Oracle. É possível estabelecer facilmente uma conexão de dentro do IDE e começar a trabalhar com o banco de dados. Este tutorial demonstra como usar uma instalação local do Oracle Database 10g Express Edition (Oracle Database XE), um banco de dados leve que é gratuito para desenvolvimento, implementação e distribuição.

Este documento mostra como configurar uma conexão para a instalação local do Oracle Database XE a partir do NetBeans IDE, usar o editor SQL integrado do IDE para manipular os dados de banco de dados e como ativar a extensão PHP OCI 8 para escrever o código PHP que conecta a um banco de dados Oracle.

Conteúdo

O conteúdo nesta página aplica-se ao NetBeans IDE 7.0 e 7.1

Para seguir este tutorial, você precisa dos seguintes recursos e softwares.

Software ou recurso Versão necessária
NetBeans IDE Conjunto 7.0, 7.1, Java EE
Java Development Kit (JDK) Versão 6
Oracle Database XE 10 g Express Edition
Driver Oracle JDBC ojdbc6.jar

Antes de começar

Antes de começar a percorrer este tutorial, considere o seguinte:

  • Esse tutorial demonstra como se conectar a uma instância do Oracle Database XE instalada no seu sistema local, mas as etapas também se aplicam a quando você está se conectando a uma instância remota. Se você estiver se conectando a uma instância local, você precisará baixar e instalar o Oracle Database XE. O processo de instalação é simples e intuitivo, mas caso haja dúvidas, consulte o guia de instalação do Oracle Database XE para a sua plataforma.
  • Existem duas categorias dos drivers Oracle JDBC: OCI e DJBC Thin.
    • O drive JDBC Thin da Oracle tem base em Java e é independente de plataforma. Esse driver independente não requer a presença de outras bibliotecas Oracle e permite uma conexão direta a um banco de dados Oracle. Este tutorial usa esse drive para mostrar como se conectar ao Oracle Database. Antes de percorrer o tutorial, você deve baixar o arquivo ojdbc6.jar e salvá-lo no sistema.

      Observação para usuários do Windows: O Windows pode alterar a extensão do arquivo baixado de .jar para .zip. Ainda assim ele permanece como um arquivo.jar. É possível renomear o arquivo para .jar.

    • O driver OCI da Oracle usa as bibliotecas nativas de cliente da Oracle para se comunicar com os bancos de dados. Essas bibliotecas são obtidas como parte do Oracle Instant Client. Mesmo que o driver Thin seja o suficiente na maioria dos casos, você pode desejar usar o driver OCI seguindo as seguintes etapas em Usando o driver OCI JDBC com o NetBeans IDE.
      Um bom exemplo uso do driver OCI é acessar um banco de dados Oracle remoto a partir de um aplicativo PHP usando as bibliotecas do Oracle Instant Client. Consulte a seção OCI 8 e o NetBeans IDE para PHP neste tutorial para obter informações de como ativar a extensão OCI8 para PHP.
  • Se você nunca usou o Oracle Database XE, acesse o tutorial de Introdução ao Oracle Database XE.

Aviso aos usuários do GlassFish: A página do Oracle Database XE, que é usada para administrar o banco de dados, usa a porta 8080 por padrão. O Oracle GlassFish Application Server também usa a porta 8080 por padrão. Se os dois programas forem executados ao mesmo tempo, o Oracle Database XE bloqueará os navegadores de acessarem o GlassFish em localhost:8080. Todos os aplicativos implementados no GlassFish retornarão 404 nesse caso. A solução simples é fechar o Oracle Database XE caso não precise dele ao executar o GlassFish. Caso precise executar ambos ao mesmo tempo, altere a porta padrão que o Oracle Database XE usa. O que é mais fácil do que alterar a porta padrão do GlassFish. Existem várias instruções na internet sobre como mudar a porta padrão do Oracle Database XE, inclusive nos fóruns da Oracle.

Estabelecendo uma conexão ao banco de dados Oracle

Neste exercício, você testará e criará uma nova conexão ao banco de dados.

  1. Inicie o banco de dados Oracle:
  2. Abra a janela Serviços (Janela > Serviços ou Ctrl-5;⌘-5 no Mac). Na janela Serviços, clique com o botão direito do mouse no nó Bancos de dados e escolha Nova conexão.
    Item Nova conexão no menu pop-up do nó Bancos de dados
  3. No assistente de Nova conexão, selecione Oracle Thin na lista suspensa Driver.
  4. Clique em Adicionar e encontre o arquivo ojdbc6.jar que foi baixado anteriormente. Clique em Próximo.
  5. No painel Personalizar conexão do assistente, insira os seguintes valores e clique em Próximo.
    Nome Valor
    Nome do driver Oracle Thin (com ID de serviço - SID)
    Máquina localhost ou 127.0.0.1.
    Observação: No caso de uma conexão remota, forneça um endereço IP ou nome de host resolvível da máquina onde o banco de dados está instalado.
    Porta 1521 (padrão)
    ID do serviço (SID) XE (SID padrão para Oracle Database XE).
    Observação: Se você estiver se conectando a um banco de dados remoto, peça ao administrador do banco de dados que forneça o SID do banco de dados.
    Nome do usuário

    Indique o nome do usuário.
    Para os fins do nosso tutorial, insira system (a conta padrão de administrador de banco de dados) e a senha que foi usada durante a instalação do banco de dados.

    Password Insira a senha para o nome de usuário selecionado.
  6. Clique em Testar conexão para confirmar que o IDE pode se conectar ao banco de dados. Clique em Próximo.

    Se a tentativa obtiver êxito, a mensagem “Connection succeeded” será exibida no assistente.

    Conexão estabelecida
  7. Selecione HR na lista suspensa Selecionar esquema. Clique em Terminar.

    Observação: É necessário desbloquear o esquema HR antes de poder acessá-lo no NetBeans. O desbloqueio do banco de dados HR é descrito no tutorial Introdução do Oracle Database XE.

Uma nova conexão aparecerá no nó Bancos de dados na janela Serviços. É possível expandi-la e começar a navegar a estrutura do objeto do banco de dados.
Altere o nome de exibição do nó de conexão: selecione Propriedades no menu pop-up do nó e clique no botão de reticências para acessar a propriedade Nome de exibição. Digite Oracle DB como o Nome de exibição e clique em OK.

Conexão estabelecida

Observação: Mesmo que as etapas acima demonstrem o caso de conexão a uma instância de banco de dados local, as etapas para a conexão a um banco de dados remoto são as mesmas. A única diferença é que em vez de especificar o localhost como um nome de host, é necessário inserir o endereço IP ou nome de host da máquina remota onde o banco de dados Oracle está instalado.

Manipulando os dados no banco de dados Oracle

Uma forma comum de interagir com bancos de dados é através da execução de comandos em um editor SQL ou do uso de interfaces de gerenciamento de banco de dados. Por exemplo, o Oracle Database XE tem uma interface com base em navegador pela é possível administrar o banco de dados, gerenciar objetos de banco de dados e manipular dados.

Mesmo que você possa executar a maioria das tarefas relacionadas com o banco de dados através da interface de gerenciamento de banco de dados Oracle, neste tutorial, nós demonstramos como o Editor SQL no NetBeans IDE pode ser usado para executar algumas dessas tarefas. Os seguintes exercícios demonstram como criar um novo usuário, recriar uma tabela rapidamente e copiar os dados da tabela.

Criando um usuário

Vamos criar uma nova conta de usuário de banco de dados para manipular tabelas e dados no banco de dados. Para criar um novo usuário, você precisa estar conectado em uma conta de administrador de banco de dados, no nosso caso, a conta padrão system criada durante a instalação do banco de dados.

  1. Na janela Serviços, clique com o botão direito no nó de conexão OracleDB e selecione Executar comando. O que abre o editor de SQL do NetBeans IDE, no qual é possível inserir comandos SQL que serão enviados ao banco de dados.
    Item de menu Executar comando na janela Serviços
  2. Para criar um novo usuário, insira o seguinte comando na janela Editor SQL e clique no botão Executar SQL na barra de ferramentas.
    Comando de criação de usuário
    create user jim
    identified by mypassword
    default tablespace users
    temporary tablespace temp
    quota unlimited on users;

    Esse comando cria um novo usuário jim com a senha mypassword. O espaço de tabela padrão é users e o espaço alocado é ilimitado.

  3. A próxima etapa é conceder privilégios à conta de usuário jim para executar ações no banco de dados. Precisamos permitir que o usuário se conecte ao banco de dados, crie e modifique tabelas no espaço de tabela padrão do usuário e acesse a tabela Employees no exemplo de banco de dados hr.

    Em um contexto real, um administrador de banco de dados cria funções personalizadas e privilégios de ajuste para cada função. No entanto, para o propósito do nosso tutorial, podemos usar uma função predefinida, como CONNECT. Para obter mais informações sobre funções e privilégios, consulte o Guia de segurança de banco de dados Oracle.

    grant connect to jim;
    grant create table to jim;
    grant select on hr.departments to jim;

Criando uma tabela

Existem diversas maneiras de criar uma tabela no banco de dados através do NetBeans IDE. Por exemplo, é possível executar um arquivo SQL (clique com o botão direito do mouse no arquivo e selecione Executar arquivo), executar um Comando SQL (clique com o botão direito do mouse no nó de conexão e selecione Executar comando) ou usar a caixa de diálogo Criar tabela (clique com o botão direito do mouse no nó Tabelas e selecione Criar tabela). Neste exercício, você recriará uma tabela usando a estrutura de outra tabela.

Neste exemplo, se você deseja que o usuário jim crie uma cópia da tabela Departments em seu esquema ao recriar a tabela a partir do banco de dados hr. Antes de criar a tabela você precisa se desconectar do servidor e conectar-se como o usuário jim.

  1. Clique com o botão direito do mouse no modo de conexão OracleDB na janela Serviços e selecione Desconectar.
  2. Clique com o botão direito do mouse no modo de conexão OracleDB e selecione Conectar e conecte-se como jim.
  3. Expanda o nó Tabelas no esquema HR e confirme que somente a tabela Departments está acessível ao usuário jim.

    Quando o usuário jim foi criado, o privilégio Selecionar foi limitado à tabela Departments.

    Obter a estrutura da tabela
  4. Clique com o botão direito do mouse no nó da tabela Departments e selecione Obter estrutura. Salve o arquivo .grab no disco.
  5. Expanda o esquema JIM, clique com o botão direito do mouse no nó Tabelas e escolha Recriar tabela.
    Aponte para o arquivo .grab que você criou.
    Recriando a tabela no esquema de outro usuário
  6. Revise o documento SQL que será usado para criar a tabela. Clique em OK.
    Recriando a tabela no esquema de outro usuário
    Ao clicar em OK, a nova tabela DEPARTMENTS é criada e aparece sob o nó do esquema JIM. Se clicar com o botão direito do mouse no nó da tabela e selecionar Visualizar dados, você verá que a tabela está vazia.

Se você deseja copiar os dados da tabela Departments original para a nova tabela, é possível inserir os dados manualmente no editor de tabela ou executar um script SQL na nova tabela pra preencher a tabela.

Para inserir os dados manualmente, execute as seguintes etapas.

  1. Clique com o botão direito do mouse na tabela DEPARTMENTS no esquema JIM e selecione Visualizar dados.
  2. Clique no ícone Inserir registros na barra de ferramentas Visualizar dados e abra a janela Inserir registro.
    Ícone Inserir registros
  3. Digite nos campos para inserir os dados. Clique em OK.

    Por exemplo, é possível inserir os seguintes valores retirados da tabela DEPARTMENTS original.

    Coluna Valor
    DEPARTMENT_ID 10
    DEPARTMENT_NAME Administration
    MANAGER_ID 200
    LOCATION_ID 1700

Para preencher a tabela usando um script SQL, execute as seguintes etapas.

  1. Clique com o botão direito do mouse na tabela DEPARTMENTS no esquema JIM e selecione Executar comando.
  2. Insira o script na guia Comando SQL. Clique no botão Executar na barra de ferramentas.

    O seguinte script preencherá a primeira linha da nova tabela com os dados da tabela original.

    INSERT INTO JIM.DEPARTMENTS (DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID, LOCATION_ID) VALUES (10, 'Administration', 200, 1700);

É possível recuperar o script SQL para preencher a tabela a partir da tabela original executando as etapas a seguir.

  1. Clique com o botão direito do mouse na tabela DEPARTMENTS no esquema HR e selecione Visualizar dados.
  2. Selecione todas as linhas na janela Visualizar dados e clique com o botão direito do mouse na tabela e selecione Exibir script SQL para INSERT no menu pop-up para abrir a caixa de diálogo Exibir SQL que contém o script.

    É possível então copiar o script e modificá-lo conforme necessário para inserir os dados na sua tabela.

Consulte Dicas para obter mais informações sobre trabalhar no Editor SQL.

Trabalhando com os dados da tabela

Para trabalhar com dados da tabela, você pode usar o Editor SQL no NetBeans IDE. Ao executar consultas SQL, é possível adicionar, modificar e excluir dados mantidos em estruturas de bancos de dados.

Inicialmente, crie uma segunda tabela chamada Locations no esquema jim (mantenha-se conectado com a conta de usuário do jim). Desta vez, simplesmente executaremos o arquivo SQL pronto no IDE:

  1. Faça o download e salve o arquivo locations.sql no diretório USER_HOME do seu computador.
  2. Abra a janela Favoritos do IDE e localize o arquivo locations.sql.

    Para abrir a janela Favoritos, clique em Janela > Favoritos no menu principal (pressione Ctrl-3). O diretório USER_HOME está listado na janela Favoritos por padrão.

  3. Clique com o botão direito do mouse no arquivo locations.sql e selecione Executar arquivo.
    Ícone Inserir registros

    Observação: Se mais de uma conexão de banco de dados for registrada no IDE, o IDE pode solicitar a seleção da conexão correta.

  4. Na janela Serviços, clique com o botão direito no nó Tabelas e selecione Atualizar no menu pop-up.

    É possível ver que a tabela Locations com os dados foi adicionada ao esquema JIM.

    Segunda tabela adicionada ao esquema jim
  5. Clique com o botão direito do mouse no nó da tabela Locations e selecione Visualizar dados para ver os conteúdos da tabela. Você verá os conteúdos da tabela Locations.
    É possível inserir novos registros e modificar os dados existentes diretamente nessa janela.
    Visualizando todos os dados na tabela Locations
  6. Em seguida, executamos uma consulta para exibir informações de duas tabelas: Departments e Locations.

    No nosso caso, usaremos uma “união natural” simples, pois ambas tabelas têm a mesma coluna “location_id” que guarda valores do mesmo tipo de dados. Essa união seleciona somente as linhas que possuem valores iguais na coluna location_id correspondente.

    Abara a janela Comando SQL (clique com o botão direito do mouse no nó Tabelas no esquema JIM e selecione Executar comando), insira a seguinte Declaração SQL e clique no ícone Executar SQL.

    SELECT DEPARTMENT_NAME, MANAGER_ID, LOCATION_ID, STREET_ADDRESS, POSTAL_CODE, CITY, STATE_PROVINCE 
    FROM departments NATURAL JOIN locations
    ORDER by DEPARTMENT_NAME;

    Essa consulta SQL retorna as linhas da tabela Departments da qual os valores de location_id são iguais aos valores na coluna correspondente da tabela Locations, com os resultados sendo perdidos pelo nome do departamento. Observe que não é possível inserir novos registros diretamente nos resultados dessa consulta, como poderia ser feito na representação de uma tabela única.

    Unindo dados de várias localizações

    É possível salvar a consulta de união SQL como uma Visualização (clique com o botão direito do mouse no nó Visualização e selecione Criar visualização) e execute a visualização quando desejar. Para isso, o usuário do banco de dados deve ter o privilégio concedido de Criar visualização, o que nosso usuário do exemplo não tem. É possível conectar-se na conta do sistema, conceder ao jim o privilégio de Criar visualização (com a declaração SQL: “grant create view to jim;”) e tentar criar sua própria visualização.


OCI 8 e o NetBeans IDE para PHP

É possível usar a extensão PHP OCI 8 e o NetBeans IDE para PHP para escrever o código PHP que se comunica com um banco de dados Oracle. Para usar o NetBeans IDE para PHP e um banco de dados Oracle:

  1. Configure o ambiente PHP como descrito na seção Configurando seu ambiente para desenvolvimento em PHP da Trilha de aprendizado do PHP. Observe que o NetBeans IDE suporta somente PHP 5.2 ou 5.3.
  2. Abra seu arquivo php.ini em um editor. Certifique-se de que a propriedade extension_dir está definida para o diretório de extensões PHP. Normalmente, esse diretório é PHP_HOME/ext. Por exemplo, com o PHP 5.2.9 instalado no diretório raiz do C:, a configuração extension_dir deveria ser extension_dir="C:\php-5.2.9\ext".
  3. Localize e remova o comentário da linha extension=php_oci8_11g.dll (para Oracle 11g) ou extension=php_oci8.dll (para Oracle 10.2 ou XE). Somente uma dessas extensões pode ser ativada por vez.

    Importante: Se não houver tal linha no php.ini, procure na pasta de extensões pelo arquivo de extensão OCI 8. Se não houver o arquivo de extensão OCI 8 na pasta de extensões, consulte Instalando PHP e o Oracle Instant Client para Linux e Windows para obter mais informações sobre o download e a instalação do OCI 8.

  4. Reinicie o Apache. (Usuários do Windows devem reiniciar seus computadores.)
  5. Executar phpinfo(). Se você ativou a extensão OCI 8 com êxito, uma seção da OCI 8 aparecerá na saída de phpinfo().

Para obter mais informações sobre como ativar a OCI 8, e especialmente para usá-la com um servidor Oracle DB, consulte Instalando PHP e o Oracle Instant Client para Linux e Windows.

Quando a OCI 8 está ativada, o NetBeans IDE para PHP acessa essa extensão para preenchimento automático de código e depuração de erros.

Janela Editor com as opções de preenchimento automático de código da OCI 8

Usando o Driver OCI JDBC com o NetBeans IDE

Os pacotes do driver OCI estão disponíveis no mesmo arquivo JAR que o do driver JDBC Thin (ojdbc6.jar). A seleção e qual driver usar depende da interface: oracle.jdbc.OracleDriver para o driver Thin e oracle.jdbc.driver.OracleDriver para o driver OCI. Para usar o driver OCI, você deve instalar o Oracle Database Instant Client, pois ele contém todas as bibliotecas exigidas pelo driver OCI para se comunicar com o banco de dados.

Para conectar-se ao banco de dados Oracle a partir do NetBeans IDE usando o driver OCI da Oracle:

  1. Baixe o pacote “Basic” do Oracle Database Instant Client para a sua plataforma. Siga as instruções de instalação nesta página.
  2. Na janela Serviços do IDE, clique com o botão direito do mouse no nó Bancos de dados e selecione Nova conexão.
  3. Na etapa Localizar drive, selecione Oracle OCI, clique em Adiciona e especifique o arquivo ojdbc6.jar.
  4. Na caixa de diálogo Personalizar conexão, forneça os detalhes da conexão: endereço IP, porta, SID, nome de usuário e senha.
    Observe a diferença na URL da JDBC para os drivers OCI e Thin.
    Janela Editor com as opções de preenchimento automático de código da OCI 8

Solução de problemas

As dicas de soluções de problemas abaixo descrevem somente algumas exceções que foram encontradas. Se a sua pergunta não foi respondida aqui, faça sua própria pesquisa ou use o link Envie-nos seu comentário para enviar um comentário construtivo.

  • Você verá o erro similar ao seguinte:
    Shutting down v3 due to startup exception : No free port within range:
    >> 8080=com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectorHandler@7dedad
    Isso acontece devido ao servidor de aplicativo GlassFish e o Oracle Database usarem a porta 8080. Então, caso deseje usar ambos aplicativos ao mesmo tempo, será necessário trocar essa porta padrão de um deles. Para redefinir a porta padrão do Oracle Database, use o seguinte comando:
    CONNECT SYSTEM/password
    EXEC DBMS_XDB.SETHTTPPORT(<novo número de porta>);
  • Você recebe o seguinte erro:
    Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor.
    Isso ocorre quando o ID do serviço (SID) da instância do banco de dados fornecida pelo descritor de conexão é conhecido como ouvinte. Existem algumas causas para essa exceção. Por exemplo, ela pode ocorrer se o Oracle Database não tiver sido iniciado (caso mais simples). Ou o SID está incorreto ou não é conhecido pelo ouvinte. Se você usa um SID padrão (por exemplo, para o Oracle Database Express Edition, o SID padrão é XE), esse problema é improvável de aparecer. O SID está incluído nas partes de CONNECT DATA no arquivo tnsnames.ora (em uma máquina Windows, o arquivo está em %ORACLE_HOME%\network\admin\tnsnames.ora).
  • Você recebe o seguinte erro:
    ORA-12705: Cannot access NLS data files or invalid environment specified.

De forma geral, isso significa que a variável de ambiente NLS_LANG contém um valor inválido para idioma, território ou conjunto de caracteres. Se esse for o caso, a configuração inválida de NLS_LANG deveria ser desativada no nível do seu sistema operacional. Para Windows, renomeie a subchave de NLS_LANG no registro do Windows em \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE. Para Linux/Unix, execute o comando “unset NLS_LANG”.


Consulte também

Para obter mais informações sobre como administrar e trabalhar com o Oracle Database, consulte a documentação correspondente da Oracle. Abaixo, fornecemos uma breve lista das documentações comumente usadas.

Para obter mais informações sobre como trabalhar com outros bancos de dados no NetBeans IDE, consulte