63
DANILO AUGUSTO FURLAN BANCO DE DADOS: Criação de Ambiente Linux, Migração de Dados e Desenvolvimento PL/SQL Assis 2015

BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

  • Upload
    lyque

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

DANILO AUGUSTO FURLAN

BANCO DE DADOS: Criação de Ambiente Linux, Migração de

Dados e Desenvolvimento PL/SQL

Assis

2015

Page 2: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

DANILO AUGUSTO FURLAN

BANCO DE DADOS: Criação de Ambiente Linux, Migração de

Dados e Desenvolvimento PL/SQL

Trabalho de Conclusão de Curso apresentado

ao Instituto de Ensino Superior de Assis, Como

requisito do Curso de Graduação.

Orientador: Prof. Dr. Alex Sandro Romeo de

Souza Poletto.

Assis

2015

Page 3: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

FICHA CATALOGRÁFICA

FURLAN, Danilo Augusto.

BANCO DE DADOS: Criação de Ambiente Linux, Migração de Dados e

Desenvolvimento PL/SQL / Danilo Augusto Furlan. Fundação Educacional do Município de

Assis – FEMA – Assis, 2015.

63 p.

Orientador: Dr. Alex Sandro Romeo de Souza Poletto.

Analisador: Esp. Guilherme de Cleva Farto

Trabalho de Conclusão de Curso – Instituto Municipal de Ensino Superior de Assis –

IMESA.

1.Banco de Dados. 2.Ferramentas. 3.PL/SQL. 4.Ambiente. 5.Migração.

CDD: 001.6

Biblioteca da FEMA

Page 4: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

DEDICATÓRIA

Dedico primeiramente a Deus pelos dons

que me tornou capaz de concluir esta etapa,

e a todos que de alguma forma contribuíram

para isto.

Page 5: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

5

AGRADECIMENTOS

Primeiramente а DEUS qυе permitiu qυе tudo isso acontecesse, ао longo dе minha

tragetória de vida, е nãо somente neste ano de conclusão, mаs que еm todos оs

momentos esta presente.

A esta universidade, ao corpo docente, direção е administração qυе me

oportunizaram a concluir este curso.

Ao mеυ orientador pelo empenho dedicado à elaboração deste trabalho, а todos оs

professores pоr mе proporcionarem о conhecimento necessário ao longo dos anos.

A minha família e noiva pelo amor, incentivo е apoio incondicional.

A todos qυе direta оυ indiretamente fizeram parte dа minha formação, о mеυ muito

obrigado.

Page 6: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

6

RESUMO

Este trabalho descreve conceitos e possui registros de algumas ferramentas

específicas para criação, gerenciamento e manipulação de um banco de dados.

Contem descrições personalizadas para elaboração de um ambiente de

desenvolvimento com passo-a-passo de instalação das ferramentas, exemplificação

do uso da Linguagem PL/SQL para migração de um banco de dados com

detalhamento das funções utilizadas.

Palavras-chave: Banco de Dados; Ferramentas; PL/SQL; Ambiente; Migração.

Page 7: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

7

ABSTRACT

This research aimed at describing concepts and registers of some specific tools to

create, manage and manipulate a database. There are descriptions to elaborate a

development environment with a tutorial showing how to install such tools and

exemplification of the use of PL/SQL language for a database migration with

functions detailed,

Keywords: Database; Tools; PL/SQL; Environment; Migration.

Page 8: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

8

LISTA DE ILUSTRAÇÕES

Figura 1 – Área de Trabalho Linux Ubuntu................................................................ 17 Figura 2 – Tela Inicial pgAdmin3................................................................................ 18 Figura 3 – Janela Principal Oracle SQL Developer................................................... 20 Figura 4 – Janela Principal Oracle XE....................................................................... 21 Figura 5 – Apresentação da Proposta de Trabalho................................................... 22

Figura 6 – Edição de Partição.................................................................................... 24 Figura 7 – Identificação de Acesso............................................................................ 24 Figura 8 – Licença do código binário......................................................................... 26 Figura 9 – Contrato de licença do JDK.......................................................................... 26

Figura 10 – Instalação WebLogic............................................................................... 34

Figura 11 – Página de Configuração............................................................................ 35

Figura 12 – Porta de Acesso WebLogic................................................................................... 35

Figura 13 – Tela Inicial Postgres ............................................................................................... 37

Figura 14 – Criação do Banco Postgres ................................................................................. 38

Figura 15 – Criação da Tabela em Banco Postgres ........................................................... 40

Figura 16 – Banco de Dados com Inserção .......................................................................... 40

Figura 17 – Start do WebLogic .................................................................................................. 41

Figura 18 – Página de Login do WebLogic................................................................ 41 Figura 19 – Codificação do caminho WSDL............................................................... 42

Figura 20 – Teste de Serviço em SoapUI................................................................... 43

Figura 21 – Conexão do SQLDeveloper com Oracle XE............................................ 43

Figura 22 – Criação da Tabela no Banco Oracle XE.................................................. 44

Page 9: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

9

LISTA DE ABREVIATURAS E SIGLAS

PL/SQL Procedural Language / Structured Query Language

GPL General Public License

SQL Structure Query Language

XML Extensible Markup Language

HTML Hypertext Markup Language

BPEL Business Process Execution Language

UI User Interface

Page 10: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

10

SUMÁRIO

1. INTRODUÇÃO....................................................................................12

1.1 OBJETIVO.................................................................................................12

1.2 JUSTIFICATIVA.........................................................................................13

1.3 MOTIVAÇÃO.............................................................................................13

1.4 METODOLOGIA DE PESQUISA...............................................................13

1.5 RECURSOS NECESSÁRIOS....................................................................14

1.6 ESTRUTURA DO TRABALHO..................................................................15

2. CONCEITOS DAS FERRAMENTAS .................................................16

2.1 LINUX UBUNTU………………………….....................…............................16

2.2 POSTGRES………………………………....................................................18

2.3 WEBLOGIC………………………………………..........................................19

2.4 SQLDEVELOPER……………………………..............................................19

2.5 ORACLE XE…………….....................................…....................................20

3. ESTUDO DE CASO........................................................................... 22

3.1 PROPOSTA DO TRABALHO....................................................................22

3.2 PREPARAÇÃO DO AMBIENTE……………..............................................23

3.2.1 Instalação Linux Ubuntu - Version 14.10………...........................………......23

3.2.2 Instalação Postgres - Version 9.0.3........……......................................……... 25

3.2.3 Instalação Oracle XE - Version 11GR2 Express Edition............................. 25

3.2.4 Instalando WebLogic - 12C........................................................................... 34

3.2.5 Instalando SQLDeveloper - Version 4.0.3.16................................................ 36

3.3 CONFIGURAÇÕES DE SOFTWARES NECESSÁRIAS…...................... 37

3.3.1 Postgres……………………………………….…………………………….…… 37

3.3.2 WebLogic………………………………………………………….………………. 41

3.3.3 Oracle XE………………………………………………………….……………… 43

3.4 APRESENTAÇÃO DO WEBSERVICE.................................................... 45

3.5 DESENVOLVIMENTO PL/SQL................................................................ 46

4. CONCLUSÃO.....................................................................................53

REFERÊNCIAS..................................................................................... 54

Page 11: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

11

APÊNDICE A – CÓDIGO ACL..............................................................56

APÊNDICE B – LEITURA_CAD_CLIENTE_PKG.................................57

APÊNDICE C – LEITURA_CAD_CLIENTE_PKG Body...................... 58

APÊNDICE D – CHAMADA DE FUNÇÃO (BLOCO ANÔNIMO)..........63

Page 12: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

12

1. INTRODUÇÃO

Segundo INFOJOBS BRASIL (2014):

Um analista de banco de dados é responsável por atuar com administração

de banco de dados, desenvolver melhorias, identificar e solucionar

problemas, é também responsável por um dos maiores bens da empresa, a

Informação.

Está sob a responsabilidade de um Analista de Banco de Dados, manter a

segurança dos dados, conforme políticas de segurança da empresa. Atuar

com análises, administrar o banco de dados, acompanhar o

desenvolvimento de projetos e implementações, juntamente com

desenvolvimento de novos métodos ligados ao banco de dados, fazer a

manutenção das estruturas em conjunto com modeladores de dados e

analistas de sistemas, implementar novos processos de softwares, métodos

de acesso a dados e dimensionamento de hardware.

Com o acelerado progresso tecnológico dos últimos anos, nota-se que foram

ocasionados vários benefícios para milhões de indivíduos e empresas ao redor do

mundo. É impossível não perceber as vantagens de utilizá-lo a favor da eficiência

dos negócios. Os técnicos e especialistas da área de Sistemas de Banco de Dados

são os responsáveis por garantir que numerosos serviços funcionem e se

aprimorem. Como a tecnologia está presente em praticamente todos os setores, há

grande demanda por colaboradores qualificados em Banco de Dados (BD) e, em

consequência, constante aumento do patamar salarial. Neste cenário, essa é uma

das carreiras profissionais mais promissoras da atualidade. (VILELLA. 2012)

1.1 OBJETIVOS

O objetivo deste trabalho é a aquisição e registro dos conhecimentos adquiridos

para a criação de um ambiente de desenvolvimento voltado para o trabalho de um

Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo

de migração de um banco para outro, com a captura através de um WebService, a

interpretação do código utilizando-se a linguagem PL/SQL e a inclusão desses

Page 13: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

13

dados em um novo banco. A migração de dados ocorrerá através da captura da

chamada de um serviço previamente carregado no Weblogic, fazendo assim a busca

de dados no banco de dados Postgres, este serviço retornará uma linha formatada

com o conteúdo recuperado do banco Postgres, qual será decodificado através da

linguagem PL/SQL utilizando-se a ferramenta SQLDeveloper, após o mapeamento

destes dados ocorrerá a inclusão em um novo banco de dados Oracle XE,

completando assim o ciclo de migração proposto.

1.2 JUSTIFICATIVAS

O desenvolvimento deste trabalho se torna interessante pela oportunidade de ter em

um único documento, informações agrupadas para favorecer os interessados em

ingressar neste segmento profissional, dando-lhes base para iniciarem seus estudos

para suas respectivas carreiras.

1.3 MOTIVAÇÃO

A motivação para o estudo e elaboração deste material é a contribuição literária

sobre este assunto aos interessados e também ao grande conhecimento que será

adquirido pessoalmente por meio do estudo realizado para a conclusão do mesmo.

Levando também em consideração o fato de estar apresentando um pouco mais

afundo este campo de atuação para o profissional de TI.

1.4 METODOLOGIA DE PESQUISA

A metodologia utilizada para este projeto de pesquisa primeiramente será o estudo

de caso e em seguida o desenvolvimento de uma solução para o mesmo.

Para a realização desta pesquisa e para o desenvolvimento do estudo de caso,

serão necessárias pesquisas bibliográficas sobre os assuntos, pesquisas na internet

Page 14: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

14

tanto em fóruns como em sites oficiais dos fabricantes da plataforma e dos sistemas

utilizados, e também levantamento de informações com profissionais da área.

1.5 RECURSOS NECESSÁRIOS

Para a realização das pesquisas bem como o desenvolvimento do trabalho, serão

necessários recursos literários e midiáticos, como livros, artigos, material de mídias

escrita, bem como recursos de:

Hardware:

Descrição Quantidade

Microcomputador ou Notebook 01

Software:

Descrição Quantidade

Conexão de internet banda larga 01

Pacote Office 2010 01

Navegador Internet 01

Sistema Operacional Windows 7 01

Ubuntu 14.0.1 01

Postgres 9.0.3 01

WebLogic 12c 01

SQLDeveloper 4.0.3.16 01

OracleXE 11g R2 01

Page 15: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

15

1.6 ESTRUTURA DO TRABALHO

Capítulo 1 - Introdução: onde estão expostas as idéias principais do projeto,

os objetivos, justificativas, motivação e os métodos utilizados para as pesquisas e

estruturação do trabalho;

Capítulo 2 - Conceitos: capítulo que contém a definição das ferramentas

utilizadas para o desenvolvimento;

Capítulo 3 – Proposta de Trabalho: capítulo que conterá a apresentação da

proposta de trabalho.

Capítulo 4 – Estudo de Caso: o estudo de caso será realizado em 5 etapas,

sendo:

Preparação do Ambiente: criação do ambiente de desenvolvimento em uma

plataforma Linux Ubuntu, com instalação das ferramentas Postgres, Oracle XE,

WebLogic, SQLDeveloper,

Configurações necessárias: preparação deste ambiente para execução do

código central;

Apresentação do WebService: apresentação do código do WebService que

retorne os valores com informações para tratamento;

Desenvolvimento PL/SQL: desenvolvimento utilizando a plataforma

SQLDeveloper com funções estruturadas da linguagem PL/SQL migrando

informações do banco de dados Postgres para o banco de dados Oracle XE;

Capítulo 5 - Conclusão: tratará dos resultados e as conclusões sobre o tema

que nortearam o trabalho;

Referências: parte que relaciona todas as referências consultadas durante a

elaboração do projeto.

Apêndices: parte que contêm os códigos fontes desenvolvidos.

Page 16: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

16

2. CONCEITOS DAS FERRAMENTAS

2.1 LINUX UBUNTU

O Linux é um sistema operacional de código aberto. Criado em 1991 e distribuído

livremente pela Internet até os dias atuais, o sistema é coberto pela licença GPL,

que dá plenos direitos de acesso, alteração e compartilhamento de modificações a

qualquer pessoa ou empresa. (TECHTUDO, 2013)

O que inicialmente era apenas um kernel - um programa que cria uma camada de

abstração entre o hardware e a interface com o usuário, evoluiu para algo mais

complexo ao se juntar a milhares de outros programas de código aberto, formando o

que é hoje conhecido como Linux. Desde então, o nome é usado para tratar tanto do

núcleo do sistema, quanto para qualquer conjunto de programa que venha

acompanhado e seja instalado/executado em conjunto com o kernel Linux. (SILVA,

2014)

O sistema baseia-se no padrão “UNIX”, criado por Ken Thompson nos laboratórios

Bell AT&T em Murray Hill na Nova Jersey, nos Estados Unidos, em 1965. Ele pode

ser usado em computadores com um ou múltiplos processadores e executar

simultaneamente vários programas por um ou vários usuários. Ele é composto de

um ou vários interpretadores de comandos (shell), bem como um grande número de

comandos e de numerosos utilitários (mecânico, compiladores para numerosas

linguagens, tratamentos de texto, serviço de mensagens eletrônico, etc).

O Linux é multiplataforma, ou seja, é possível instalá-lo em diferentes arquiteturas

de hardware. O sistema pode ser encontrado em uma grande quantidade de

equipamentos, ele está presente em computadores, tablets, smartphones, TV´s,

relógios, pda´s, supercomputadores e outros. Atualmente, o programa é

disponibilizado em diferentes conjuntos de software e empacotamentos: cada uma

deles é chamada de distribuição Linux. Ubuntu, Debian, Red Hat, Mandriva,

OpenSuse são exemplos de distribuições. Boa parte delas é focada em

computadores desktop e servidores. No desktop, o sistema evolui continuamente e

já oferece variados ambientes gráficos, que fornecem uma área de trabalho com

Page 17: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

17

estilo variado. Já na arena dos servidores, o sistema está presente nos principais

que formam a infraestrutura da Internet, em potentes servidores governamentais em

empresas. Além de todas essas características, Linux ganha cada dia mais espaço

entre dispositivos móveis como o sistema Android: a versão mobile do Linux do

Google. A adoção de empresas e a chegada de mais aplicações têm alavancado o

sistema, como um dos mais promissores sistemas operacionais da atualidade.

(CHISTOPHER, 2014, p. 56)

Ubuntu é um sistema operacional baseado em Linux, e é feito para laptops,

desktops e servidores. Seja para uso em casa, escola ou no trabalho, o Ubuntu

contém todas as ferramentas necessárias, desde processador de texto e leitor de e-

mails á servidores web e ferramentas de programação. O Ubuntu é gratuito, livre de

qualquer encargo de licença, é atualizado com uma nova versão para desktops e

servidores a cada seis meses.

Figura 1: Área de Trabalho Linux Ubuntu

Page 18: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

18

2.2 POSTGRES

O PostgreSQL é um sistema de gerenciamento de banco de dados objeto-relacional

(SGBDOR) baseado no POSTGRES Versão 4.2 desenvolvido pelo Departamento de

Ciência da Computação da Universidade da Califórnia em Berkeley. O POSTGRES

foi pioneiro em vários conceitos, que somente se tornaram disponíveis outros

sistemas de banco de dados comerciais, muito tempo depois. O PostgreSQL é um

descendente de código fonte aberto deste código original de Berkeley, que suporta

grande parte do padrão SQL e oferece muitas funcionalidades modernas, como:

comandos complexos, chaves estrangeiras, gatilhos, visões, integridade

transacional, controle de simultaneidade multiversão e outros.

Além disso, o PostgreSQL pode ser ampliado pelo usuário de muitas maneiras

como, por exemplo, adicionando novos: tipos de dados, funções, operadores,

funções de agregação, métodos de índice, linguagens procedurais e outros. Devido

à sua licença liberal, o PostgreSQL pode ser utilizado, modificado e distribuído por

qualquer pessoa para qualquer finalidade, seja particular, comercial ou acadêmica,

livre de encargos.

PgAdmin III é um gerenciador de banco de dados PostgreSQL inteiramente gratuito.

Ele permite escrever as demandas SQL simples ou complexas e de desenvolver os

bancos de dados com a ajuda das funções PostgreSQL. O software é entregue com

a instalação e não necessita de nenhum drive complementar para comunicar com o

servidor do banco de dados. (FORGE, 2014)

Figura 2: Tela Inicial pgAdmin3

Page 19: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

19

2.3 WEBLOGIC

O Oracle WebLogic Server 12c um servidor de aplicações em ambientes

convencionais e na nuvem.

Um Servidor de Aplicações (em Inglês Applications Server) é um servidor que

disponibiliza um ambiente para a instalação e execução de certas aplicações,

centralizando e dispensando a instalação nos computadores clientes. Os servidores

de aplicação também são conhecidos por middleware.

O objetivo do servidor de aplicações é disponibilizar uma plataforma que separe do

desenvolvedor de software algumas das complexidades de um sistema

computacional. No desenvolvimento de aplicações comerciais, por exemplo, o foco

dos desenvolvedores deve ser a resolução de problemas relacionados ao negócio

da empresa, e não de questões de infraestrutura da aplicação. O servidor de

aplicações responde a algumas questões comuns a todas as aplicações, como

segurança, garantia de disponibilidade, balanceamento de carga e tratamento de

exceções. (César, 2014)

2.4 SQLDEVELOPER

SQL Developer é um ambiente de desenvolvimento integrado (IDE) que foi

especialmente destinado ao desenvolvimento de programas armazenados em

bancos de dados Oracle. SQL Developer tem como principal objetivo à facilidade de

uso, qualidade de código e produtividade. (Sun Software, 2015)

Algumas das capacidades do Oracle SQL Developer:

01 - Criar conexões com bancos de dados

02 - Navegar entre os objetos

03 - Criar objetos

04 - Modificar Objetos

05 - Consultar e manipular dados dos objetos (DML)

Page 20: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

20

06 - Exportar e importar dados / Gerar DDL dos objetos

07 - Efetuar cópia e comparações entre schemas e objetos

08 - Processar comandos

09 - Editar código PL/SQL

10 - Executar e debugar códigos PL/SQL

11 - Executar e criar relatórios personalizados

12 - Facilitar a migração interbancos (Migration Workbench integrado)

13 - Permitir integração com sistemas de controle de versão (CVS, Subversion)

Figura 3: Janela Principal Oracle SQL Developer

2.5 ORACLE XE

Oracle Database 11g Express Edition (Oracle Database XE) é uma versão gratuita

de um banco de dados relacional. Oracle Database XE é de fácil instalação, fácil

gerenciamento e desenvolvimento. O Oracle Database XE usa uma interface

baseada em navegador intuitivo para administrar o banco de dados, criar tabelas,

exibições e outros objetos de banco de dados, importação, exportação e

visualização dos dados da tabela, executar consultas e scripts SQL e gerar

relatórios. (Oracle Database Training, 2014)

Page 21: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

21

Figura 4: Janela Principal Oracle XE

Page 22: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

22

3. ESTUDO DE CASO

Neste capítulo será apresentada a proposta de trabalho, a criação do ambiente para

desenvolvimento com os passos para instalações das ferramentas, e as

configurações iniciais a serem feitas para o início do estudo. Contem também a

apresentação do Webservice com o código utilizado na estrutura do PL/SQL e o

detalhamento do código criado em PL/SQL para a conclusão da proposta.

3.1 PROPOSTA DE TRABALHO

A proposta de trabalho é a instalação de ferramentas na plataforma Linux Ubuntu

para a integração de 2(dois) bancos de dados distintos, trabalhando na configuração

das ferramentas e conexão entre elas com desenvolvimento da linguagem

estruturada PL/SQL que fará mapeamento da informação captada do Postgres por

um WebService, decodificará, e fará inserção no banco de dados Oracle XE.

Figura 5: Apresentação da Proposta de Trabalho

PREPARAÇÃO DO AMBIENTE –

Instalação das Ferramentas

CONFIGURAÇÕES DE

SOFTWARES NECESSÁRIAS

APRESENTAÇÃO DO

WEBSERVICE

DESENVOLVIMENTO PL/SQL

Page 23: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

23

3.2 PREPARAÇÃO DO AMBIENTE

A preparação do ambiente consiste na apresentação da forma de instalação das

ferramentas necessárias: Linux Ubuntu, Postgres, Oracle XE, WebLogic e

SQLDeveloper.

3.2.1 Instalação Linux Ubuntu – Version 14.10

Ubuntu é uma das distribuições GNU/Linux mais populares devido à sua grande

facilidade de uso. O Ubuntu 14.10 foi disponibilizado em 17/04/2014 pela Canonical.

Esta será uma versão LTS (Long Term Support ), que terá suporte durante 5 anos.

Para iniciar a Instalação, crie uma partição no formato ext4 de 30~50 GB para a

partição raiz (/) e uma partição SWAP (2-4 GB).

Execute o pendrive, pode-se usar a opção Testar sem instalar como neste caso, na

área de trabalho, click em Install Ubuntu-14.04-LTS.

Com a execução do pendrive, serão necessários alguns passos para completar a

instalação, passos esses que serão apresentados por meio de telas:

- Seleção de idioma;

- Verificação de requisitos;

- Opção avançada (Tipo de instalação);

- Escolha da Partição para instalação;

Page 24: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

24

Em “editar partição”, selecione usar como sistema de arquivos ext4, formatar partição e ponto de montagem: “/”, como mostra a imagem:

Figura 6: Edição de Partição

Feito isso, resta apenas selecionar a localização, para que seja feito a ajustagem de

data e hora, layout do teclado e a criação do usuário e senha, como na imagem a

seguir:

Figura 7: Identificação de Acesso

Page 25: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

25

A instalação do sistema operacional Linux Ubuntu será concluída.

3.2.2 Instalação Postgres – Version 9.0.3

PostgreSQL ou Postgres é um sistema de gerenciamento de banco de dados

relacional, que fornece uma implementação da linguagem SQL. O Postgres é uma

das escolhas mais populares para pequenos, médios e grandes projetos e tem a

grande vantagem de ser multiplataforma.

1º - Primeiramente é necessário efetuar o login como "root" no terminal e atualizar os

repositórios, para isso abra o terminal e digite:

apt-get update

2º - Iniciar instalação do PostgreSQL:

apt-get install postgresql

3º - Após concluir a instalação, o próximo passo é alterar a senha do usuário

"postgres":

su postgres -c psql postgres

ALTER USER postgres WITH PASSWORD 'senha'

\q

4º - Com o PostgreSQL instalado, agora se faz necessário a instalação do pgAdmin3: apt-get install pgadmin3

3.2.3 Instalação Oracle XE – Version 11gR2 Express Edition

INSTALANDO JAVA

Page 26: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

26

Começamos com a instalação de Java na máquina. A seguir os passos para

instalação do Oracle Java JDK. A instalação deste JDK e feita executando os

seguintes comandos no terminal.

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java7-installer

A tela na Figura 8 aparece no terminal, aperte enter para prosseguir. Após isto, a

tela na Figura 9 será mostrada. Navegue até <Sim> usando a seta para a esquerda

no teclado e aperte enter. A Oracle JDK 7 será instalado.

Figure 8: Licença do código binário

Figure 9: Contrato de licença do JDK

Page 27: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

27

Para validar a instalação Java, execute o seguinte comando :

java -version

Isso deve resultar no seguinte (ou algo similar):

java version “1.7.0_51”

Java(TM) SE Runtime Environment (build 1.7.0_51-b13)

Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed

mode)

A etapa seguinte é definir a variável de ambiente JAVA_HOME . Para fazer isso ,

abra o arquivo /etc/bash.bashrc executando a seguinte declaração .

sudo gedit /etc/bash.bashrc

Adicione as seguintes linhas .

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

export PATH=$JAVA_HOME/bin:$PATH

Salve o arquivo e feche o editor. Para carregar as alterações, execute a seguinte

instrução.

source /etc/bash.bashrc

Para validar as mudanças, execute a seguinte declaração.

echo $JAVA_HOME

O resultado dessa declaração deve ser o seguinte.

/usr/lib/jvm/java-7-oracle

INSTALANDO ORACLE 11G R2 EXPRESS EDITION

Para a instalação do Oracle 11g R2 Express Edition ( XE ) , um par de pacotes Linux

adicionais são necessárias . Estes pacotes podem ser instalados executando o

seguinte comando:

Page 28: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

28

sudo apt-get install alien libaio1 unixodbc

O próximo passo é fazer o download do Oracle 11g R2 Express Edition do site da

Oracle. Certifique-se de selecionar a versão Linux x64 no endereço

http://www.oracle.com/technetwork/products/express-edition/downloads/index.html.

Depois de concluída a transferência, abra o terminal e navegue até o diretório de

download. Na abordagem deste trabalho, isso pode ser feito através da execução do

seguinte declaração:

cd Downloads

O passo seguinte é descompactar o arquivo baixado. Para fazer isso, execute o

seguinte comando.

unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip

Um novo diretório ( Disk1 ) é adicionado ao diretório Download. Navegue para este

diretório:

cd Disk1

Agora é preciso converter o pacote Red Hat (rpm) para um pacote Debian. Isso pode

ser feito usando o comando “alien”. O parâmetro -d é usado para informar a “alien”

que um pacote Debian deve ser gerado. Quando o parâmetro-scripts é alternado, o

programa vai tentar converter os scripts que se destinam a serem executados

quando o pacote é instalado e removido.

sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm

Esta etapa pode demorar um pouco, enquanto esta instrução está em execução,

pode fazer as seguintes etapas. Abra uma nova janela de terminal para essas

etapas.

Page 29: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

29

O pacote Red Hat, depende do arquivo /sbin/chkconfig, que não é usado no Ubuntu.

Para instalar com êxito o Oracle XE usa-se um truque simples. Começa por criar um

arquivo personalizado /sbin/chkconfig, executando o seguinte comando.

sudo gedit /sbin/chkconfig

Deve-se escrever o seguinte neste editor:

#!/bin/bash

# Oracle 11gR2 XE installer chkconfig hack for Ubuntu

file=/etc/init.d/oracle-xe

if [[ ! `tail -n1 $file | grep INIT` ]]; then

echo >> $file

echo '### BEGIN INIT INFO' >> $file

echo '# Provides: OracleXE' >> $file

echo '# Required-Start: $remote_fs $syslog' >> $file

echo '# Required-Stop: $remote_fs $syslog' >> $file

echo '# Default-Start: 2 3 4 5' >> $file

echo '# Default-Stop: 0 1 6' >> $file

echo '# Short-Description: Oracle 11g Express Edition' >> $file

echo '### END INIT INFO' >> $file

Fi

update-rc.d oracle-xe defaults 80 01

#EOF

Salve o arquivo e feche o editor. Agora, é necessário fornecer o arquivo com os

privilégios de execução adequados.

sudo chmod 755 /sbin/chkconfig

Page 30: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

30

Depois disso, temos que criar o /etc/sysctl.d/60-oracle.conf arquivo para definir os

parâmetros de kernel adicionais. Abra o arquivo, executando o seguinte

comunicado.

sudo gedit /etc/sysctl.d/60-oracle.conf

Insira as linhas a seguir no arquivo:

# Oracle 11g XE kernel parameters

fs.file-max=6815744

net.ipv4.ip_local_port_range=9000 65000

kernel.sem=250 32000 100 128

kernel.shmmax=536870912

Salve o arquivo. As mudanças neste arquivo podem ser verificadas por meio de

execução:

sudo cat /etc/sysctl.d/60-oracle.conf

Para carregar os parâmetros do kernel:

sudo service procps start

As alterações podem ser verificada novamente executando :

sudo sysctl -q fs.file-max

Este comando deve retornar o seguinte:

fs.file-max = 6815744

Após isso, execute as seguintes instruções para fazer algumas mudanças mais

necessárias:

Page 31: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

31

sudo ln -s /usr/bin/awk /bin/awk

mkdir /var/lock/subsys

touch /var/lock/subsys/listener

Feche a segunda janela do terminal e volte para a primeira janela do terminal. O

pacote rpm deve ser convertido e um novo arquivo chamado oracle -xe - 11.2.0-

2_amd64.deb foram gerados. Para executar esse arquivo, execute o seguinte

comando:

sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb

Execute o seguinte para evitar um erro “ORA- 00845: erro MEMORY_TARGET”.

sudo rm -rf /dev/shm

sudo mkdir /dev/shm

sudo mount -t tmpfs shmfs -o size=4096m /dev/shm

Crie o arquivo /etc/rc2.d/S01shm_load.

sudo gedit /etc/rc2.d/S01shm_load

Adicione as seguintes linhas no arquivo:

#!/bin/sh

case "$1" in

start) mkdir /var/lock/subsys 2>/dev/null

touch /var/lock/subsys/listener

rm /dev/shm 2>/dev/null

mkdir /dev/shm 2>/dev/null

Page 32: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

32

mount -t tmpfs shmfs -o size=4096m /dev/shm ;;

*) echo error

exit 1 ;;

esac

Salve o arquivo, feche o editor e fornecer os privilégios de execução adequadas.

sudo chmod 755 /etc/rc2.d/S01shm_load

CONFIGURANDO ORACLE 11G R2 EXPRESS EDITION

Após a instalação do servidor Oracle 11g R2 Express Edition, precisa-se configurar o

servidor. Para iniciar a configuração do servidor , execute o seguinte comando e siga

o "assistente" no terminal. Os valores padrão são mostrados entre parênteses para

cada pergunta.

sudo /etc/init.d/oracle-xe configure

É preciso configurar algumas variáveis ambientais. Abra o arquivo /etc/bash.bashrc

executando a seguinte declaração:

sudo gedit /etc/bash.bashrc

Vá até o final do arquivo e adicione as seguintes linhas:

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe

export ORACLE_SID=XE

export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`

Page 33: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

33

export ORACLE_BASE=/u01/app/oracle

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

export PATH=$ORACLE_HOME/bin:$PATH

Salve o arquivo e feche o editor. Para carregar as alterações, execute a seguinte

instrução:

source /etc/bash.bashrc

Para validar as mudanças, pode-se executar o seguinte comando.

echo $ORACLE_HOME

Esta declaração deve resultar na seguinte saída.

/u01/app/oracle/product/11.2.0/xe

Após este passo, recomenda-se reiniciar a máquina. Após a reinicialização for

concluída, para iniciar o servidor Oracle use o seguinte comando:

sudo service oracle-xe start

Um arquivo chamado oraclexe - gettingstarted.desktop é colocado no seu desktop.

Para tornar este arquivo executável, vá até o diretório do desktop.

cd ~/Desktop

Para tornar o arquivo executável, execute a seguinte instrução.

sudo chmod a+x oraclexe-gettingstarted.desktop

Page 34: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

34

3.2.4 Instalando WebLogic 12C

Para instalação do WebLocig, primeiramente precisa-se do arquivo

fmw_12.1.3.0.0_wls.jar, disponível em

http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-

097127.html.

Abra o terminal, dentro da pasta onde se encontra o arquivo execute:

# java – jar fmw_12.1.3.0.0_wls.jar

A instalação irá começar.

Figura 10: Instalação WebLogic

Os próximos passos são:

- Escolher local de instalação;

- Escolher o tipo de instalação;

- Adicionar contato para receber informações sobre atualizações;

- Itens a serem instalados;

Feita a instalação, abrirá a pagina para configuração do WebService.

Page 35: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

35

Figura 11: Página de Configuração

Em seguida será a configuração do usuário e senha, após terá o tipo de domínio e a

localização do pacote JDK, por último a tela de conferência que se mostra a porta que

dará acesso ao WebLogic, no caso :7001.

Figura 12: Porta de Acesso WebLogic

Page 36: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

36

3.2.5 Instalando SQLDeveloper Version 4.0.3.16

Para instalação do SQLDeveloper, precisa-se antes do arquivo de instalação

disponível em (http://www.oracle.com/technetwork/developer-tools/sql-

developer/downloads/index.html).

Deve-se baixar o arquivo no formato RPM e utilizar uma conversão simples de tipos

de pacotes, para um que o Ubuntu possa instalar (Deb).

Utilizarei o programa “Alien” cuja instalação ocorre com o seguinte comando no

terminal:

$ sudo apt-get install alien

Próximo passo para instalação é converter o arquivo .rpm em .deb, para isso darei o

seguinte comando no diretório do arquivo:

$ alien nomeDoPacote.rpm

O arquivo “.deb” será gerado, para execução de o comando:

$ sudo dpkg -i nomeDoPacote.deb

O programa estará disponível via terminal, com o comando:

$ sqldeveloper

Para criar um ícone de acesso ao SQLDeveloper deve-se dar a seguinte instrução:

$ sudo touch /opt/sqldeveloper

Logo após a permissão para acesso:

$ sudo chmod 755 /opt/sqldeveloper

Edite o próximo arquivo:

$ gksu gedit /usr/bin/sqldeveloper

Page 37: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

37

Incluindo no arquivo que se abre as linhas:

#!/bin/sh

export SQLDEVELOPER_HOME="/opt/sqldeveloper"

Para incluir o SQLDeveloper no menu do Ubuntu, é necessário mover o lançador

para a pasta applicattions, com o seguinte comando:

$ sudo mv /opt/sqldeveloper/sqldeveloper.desktop

/usr/share/applications

3.3 CONFIGURAÇÕES NECESSÁRIAS

Serão necessárias configurações nas ferramentas anteriormente instaladas,

trataremos aqui o banco Postgres, o webservice WebLogic, e o banco de dados

Oracle XE.

3.3.1 Postgres

No banco de dados Postgres, será necessário a criação de um banco, a criação e

alimentação de uma tabela. Para isso abrirei o pgAdmin3 anteriormente instalado.

Abrirá a seguinte tela:

Figura 13: Tela Inicial Postgres

Page 38: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

38

Abrindo o caminho “postgres(localhost:5432)”, clica-se com botão direito em

“Databases” e em seguida “New Database”, e cria-se um novo banco com nome

“projetoTCC” como na imagem a seguir.

Figura 14: Criação do Banco Postgres

Feito isso, é necessário a criação da tabela com o seguinte código PL/SQL:

CREATE TABLE tb_cliente (

cod char(10) NOT NULL,

nome character varying(100) NOT NULL,

endereco character varying(200) NOT NULL,

cidade character varying (40) NOT NULL,

estado character varying (2) NOT NULL,

email character varying(100) NOT NULL,

telefone character varying(100) NOT NULL,

cpf char (11),

rg char (9),

CONSTRAINT tb_cliente_pkey PRIMARY KEY (cod)

);

E inclusão das informações para uso no trabalho:

Page 39: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

39

INSERT INTO tb_cliente (cod, nome, endereco, cidade, estado,

email, telefone, cpf, rg)

VALUES (002, 'ODAIR AZEVEDO','RUA CRUZ E SOUZA,

24','ASSIS','SP','[email protected]','18994567821','2452

5145126','145824569');

VALUES (003, 'CLAUDIA SANTOS', 'RUA PADRE DAVID,

685','ASSIS','SP','[email protected]','18994587124','25456

458745','254785423');

VALUES (004, 'BENEDITO SOUZA', 'RUA JOSE SEVERINO DOS SANTOS,

290','ASSIS','SP','[email protected]','18996325874','321456

58745','254698756');

VALUES (005, 'LUCIANE GODOI', 'RUA RUI BARBOSA,

278','ASSIS','SP','[email protected]','18994587125','34

566654789','424542587');

VALUES (006, 'JEFFERSON ABREU', 'RUA AMAZONAS,

345','ASSIS','SP','[email protected]','18994568792','35412

454789','456985825');

VALUES (007, 'MARCELO SILVA', 'RUA PIRATININGA,

31','ASSIS','SP','[email protected]','18996587589','36

856985475','425457845');

VALUES (008, 'APARECIDA ROSA', 'RUA LONDRINA,

333','ASSIS','SP','[email protected]','18994567952'

,'3659874587','435698569');

VALUES (009, 'LUCAS OLIVEIRA', 'RUA OSCAR MAIA,

857','ASSIS','SP','[email protected]','18997889654','2874569

8521','485858596');

Page 40: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

40

Utilizando o SQLEditor:

Figura 15: Criação da Tabela em Banco Postgres

Após esses passos a tabela será criada e estará com as informações necessárias.

Figura 16: Banco de Dados com Inserção

Page 41: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

41

3.3.2 Weblogic

A preparação do ambiente do WebLogic consiste em gerar o caminho que conterá o

código utilizado para captura dos dados na tabela TB_CLIENTE do Postgres para

sua manipulação no SQLDeveloper e inserção em uma nova tabela no banco de

dados ORACLE XE.

Precisaremos iniciar o serviço pelo terminal, executando o arquivo

“startWebLogic.sh”, que se encontra na pasta “/base_domains”:

Figura 17: Start do WebLogic

Feito isso, no navegador digite o endereço “http://localhost:7001/console”, a seguinte

página dará acesso ao WebLogic através do Username e Pasword informado na

instalação:

Figura 18: Página de Login do WebLogic

Page 42: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

42

Após o acesso, é necessário que instale o arquivo “TesteWebserviceFurlan.war”

criado em Java exclusivamente para captura do dos dados do banco Postgres,

sendo utilizado apenas como ponte para geração do caminho WSDL que utilizarei

na elaboração deste trabalho.

Figura 19: Codificação do caminho WSDL

Através do programa chamado SoapUI, é possível testar este serviço carregando o

caminho

“192.168.0.100:7001/TesteWebServiceFurlan/TesteRetornoService?WSDL”. Este

programa esta disponível em http://www.soapui.org/.

Page 43: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

43

Figura 20: Teste de Serviço no SoapUi

3.3.3 Oracle XE

No banco de dados Oracle XE, é necessário a criação da tabela que receberá os

valores oriundos da captação feita através do código PL/SQL na tabela criada no

Postgre, para isso, primeiro passo é a conexão do SQLDeveloper com o banco de

dados Oracle XE. Abrindo o programa de desenvolvimento do PL/SQL, será criada a

nova conexão:

Figura 21: Conexão do SQLDeveloper com Oracle XE

Page 44: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

44

O seguinte código deve ser rodado na aba XE criada após a conexão, com isso a

tabela estará criada:

CREATE TABLE tb_cliente (

cod char(10) NOT NULL,

nome character varying(100) NOT NULL,

endereco character varying(200) NOT NULL,

cidade character varying (40) NOT NULL,

estado character varying (2) NOT NULL,

email character varying(100) NOT NULL,

telefone character varying(100) NOT NULL,

cpf char (11),

rg char (9),

CONSTRAINT tb_cliente_pkey PRIMARY KEY (cod)

);

Figura 22: Criação da Tabela no Banco Oracle XE

Page 45: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

45

3.4 APRESENTAÇÃO DO WEBSERVICE

O código PL/SQL responsável pelo consumo do serviço prestado através do

WebService se define em etapas, a declaração da variável “req_envelope” com a

chamada do serviço e a alimentação da variável res_envelope com o retorno da

solicitação feita ao WebService.

1. Declaração da variável de requisição onde é passado o parâmetro através da

variável “p_id_cliente”.

req_envelop VARCHAR2 (4000) := '<?xml version="1.0"

encoding="UTF-8"?><soap:Envelope xmlns:soap="http://

schemas.xmlsoap.org/soap/envelope/">

<soap:Header/>

<soap:Body>

<ns1:buscaCliente xmlns:ns1="http://br.com.furlan.main/">

<codigo>'|| p_id_cliente||'</codigo>

</ns1:buscaCliente>

</soap:Body>

</soap:Envelope>';

2. Código de execução da chamada do serviço passando os parâmetros e

alimentando a variável “res_envelope” com o conteúdo a ser trabalhado.

req := UTL_HTTP.begin_request ( 'http://192.168.0.103:7001

/TesteWebserviceFurlan/TesteRetornoService?WSDL','POST'

, 'HTTP/1.1');

UTL_HTTP.set_header (req, 'Content-Type', 'text/xml');

UTL_HTTP.set_header (req, 'Content-Length', LENGTH

(req_envelop));

UTL_HTTP.write_text (req, req_envelop);

resp := UTL_HTTP.get_response (req);

Page 46: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

46

UTL_HTTP.read_text (resp, res_envelop);

UTL_HTTP.end_response (resp);

3.5 DESENVOLVIMENTO PL/SQL

No desenvolvimento do trabalho, será necessário a criação do pacote

“LEITURA_CADCLIENTE_PKG”, procedimento para leitura do WebService

“leitura_xml_p( p_id_cliente IN NUMBER) que irá recuperar o valor da string para

decodificação e o procedimento “decodificacao_p(p_texto in out VARCHAR2,

p_valor out VARCHAR2)” para preparar a inserção dos dados no banco.

Este é o pacote contendo as declarações dos procedimentos, neste caso é criado o

pacote LEITURA_CADCLIENTE_PKG, que contêm os procedimetos listados,

“leitura_xml” e “decodificação_p”. São esses procedimentos que realizarão a captura

dos dados do banco Postgres pelo WebService, interpretará e retornará com a

inserção dos dados no banco de dados Oracle XE;

CREATE OR REPLACE PACKAGE LEITURA_CADCLIENTE_PKG IS

PROCEDURE leitura_xml_p( p_id_cliente IN NUMBER);

PROCEDURE decodificacao_p( p_texto in out VARCHAR2

, p_valor out VARCHAR2

);

END LEITURA_CADCLIENTE_PKG;

/

No corpo do pacote, encontram-se as instruções dos procedimentos, começando

pela declaração das variáveis necessárias para implementação. Onde:

req_envelop: fará a requisição e armazenará a string retornada pelo WebService.

astrxmlaux1 e astxmlaux2: são variáveis auxiliares para manuseio do código

retornado da chamada do serviço.

Page 47: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

47

v_variaveis: será utilizada para armazenar a informação com o formato correto para

inserção no banco Oracle.

v_dml: conterá o script enviado para o banco de dados efetuar a inserção.

l_cod, l_nome, l_endereco, l_cidade, l_estado, l_email, l_telefone, l_cpf e l_rg: são

varíaveis que conterão as colunas referentes a cada uma delas na tabela linha

recuperada pelo WebService.

req: variável que terá a função “.req” do pacote UTL_HTTP, necessária para

requisição do WebService.

Resp: variável que conterá a função UTL_HTTP.resp, necessária para captação do

retorno do WebService.

req_envelop (Declaração disponível na p.55, item 1.)

astrxmlaux1 VARCHAR2(10000);

astrxmlaux2 VARCHAR2(10000);

v_variaveis VARCHAR2(10000);

v_dml VARCHAR2(10000);

l_cod VARCHAR2(100);

l_nome VARCHAR2(100);

l_endereco VARCHAR2(100);

l_cidade VARCHAR2(100);

l_estado VARCHAR2(100);

l_email VARCHAR2(100);

l_telefone VARCHAR2(100);

l_cpf VARCHAR2(100);

l_rg VARCHAR2(100);

req UTL_HTTP.req;

resp UTL_HTTP.resp;

res_envelop VARCHAR2 (32767);

Iniciando a implementação se faz necessário efetuar a limpeza das variáveis que

serão utilizadas, dando a elas o valor de “NULL”

astrxmlaux1 := NULL;

Page 48: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

48

astrxmlaux2 := NULL;

v_variaveis := NULL;

v_dml := NULL;

l_cod := NULL;

l_nome := NULL;

l_endereco := NULL;

l_cidade := NULL;

l_estado := NULL;

l_email := NULL;

l_telefone := NULL;

l_cpf := NULL;

l_rg := NULL

Após a “limpeza” das variáveis, é dada continuidade a requisição do da resposta ao

WebService, iniciando o código através do envio dos parâmetros necessários.

(Código disponível na p. 55, item 2.)

A variável “astrxmlaux1” receberá o valor da variável “res_envelop” que nesse

momento se encontra com o valor como o seguinte modelo:

res_envelope := „<?xml version='1.0' encoding='UTF-8'?><S:Envelope

xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns0:buscaCliente

Response xmlns:ns0="http://br.com.furlan.main/"><return>#5 #LUCIANE

GODOI#RUA RUI BARBOSA,

278#ASSIS#SP#[email protected]#18994587125#34566654789#42454258

7#</return></ns0:buscaClienteResponse></S:Body></S:Envelope>‟

astrxmlaux1 := res_envelop;

Antes que este conteúdo vá para o procedimento de decodificação, é preciso que ele passe

por um tratamento para que seja retirado toda informação que antecede a primeira

ocorrência do caractere “#”. Para isso é preciso efetuar o seguinte tratamento:

Page 49: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

49

intposicaocar := INSTR (astrxmlaux1, '#');

astrxmlaux2 := SUBSTR (astrxmlaux1, 0, intposicaocar-1);

astrxmlaux1 := REPLACE (astrxmlaux1, astrxmlaux2, NULL);

Deste modo a variável “res_envelope” estará pronta para sua decodificação.

res_envelope := res_envelope := „#5 #LUCIANE GODOI#RUA RUI BARBOSA,

278#ASSIS#SP#[email protected]#18994587125#34566654789#42454258

7#</return></ns0:buscaClienteResponse></S:Body></S:Envelope>‟

Logo após chamo o procedimento “decodificacao_p” passando a string retornada do

WebService e também a variável que receberá o valor subtraído da mesma.

(Procedimento “decodificação_p” disponível na p. 60.)

decodificacao_p(astrxmlaux1, L_COD);

decodificacao_p(astrxmlaux1, L_NOME);

decodificacao_p(astrxmlaux1, L_ENDERECO);

decodificacao_p(astrxmlaux1, L_CIDADE);

decodificacao_p(astrxmlaux1, L_ESTADO);

decodificacao_p(astrxmlaux1, L_EMAIL);

decodificacao_p(astrxmlaux1, L_TELEFONE);

decodificacao_p(astrxmlaux1, L_CPF);

decodificacao_p(astrxmlaux1, L_RG);

Feito isso, a variável “v_variaveis” será alimentada com os dados recebidos pelas

variáveis, anteriormente carregadas com seus respectivos dados para inserção no

banco Oracle XE, recebendo as pontuações necessárias para que a inserção ocorra.

v_variaveis := L_COD || ', ' || '''' ||

L_NOME || '''' || ', ' || '''' ||

L_ENDERECO || '''' || ', ' || '''' ||

L_CIDADE || '''' || ', ' || '''' ||

Page 50: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

50

L_ESTADO || '''' || ', ' || '''' ||

L_EMAIL || '''' || ', ' || '''' ||

L_TELEFONE || '''' || ', ' ||

L_CPF || ', ' ||

L_RG;

A instrução para inserção no banco de dados Oracle XE, ocorre através do comando

EXECUTE IMMEDIATE da variável v_dml, passando os parâmetros necessários

para inserção no banco de dados juntamente com os valores carregados na variável

“V_VARIAVEIS”.

v_dml := 'INSERT INTO TB_CLIENTE ( COD, NOME, ENDERECO,

CIDADE, ESTADO, EMAIL, TELEFONE, CPF, RG) VALUES ('

|| V_VARIAVEIS || ')';

EXECUTE IMMEDIATE v_dml;

COMMIT;

END leitura_xml_p;

A seguir está o código utilizado para interpretação do retorno do WebService, os

parâmetros que são passados são: o texto (p_texto) a ser descriptografado e a

variável que receberá o conteúdo recortado (p_valor).

PROCEDURE decodificacao_p( p_texto in out VARCHAR2

, p_valor out VARCHAR2

) IS

As variáveis utilizadas serão:

intposicaocar: receberá a posição do carácter, para que seja feito os cortes

necessários, no caso ela mapeará a posição do carácter “#”.

astrxmlaux1: será aqui também utilizada, pois receberá a string retornada do

WebService e depois retornará para ser novamente decodificada sem a informação

que foi recortada.

Page 51: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

51

intposicaocar NUMBER;

astrxmlaux1 VARCHAR2(10000);

Inicialização das variáveis, recebendo valores “0”, “NULL” e a variável “astrxmlaux1”

recebe o valor transmitido pelo no procedimento, o valor da variável “p_texto”, que

neste caso está com o valor de exemplo: #5 #LUCIANE GODOI#...”.

intposicaocar := 0;

astrxmlaux1 := NULL;

astrxmlaux1 := p_texto;

Com a função “INSTR(a,b)”, a variável recebe a posição em número do primeiro

caractere encontrado, neste caso do caractere “#” que o valor é “1”.

intposicaocar := INSTR(astrxmlaux1, '#');

Com a função LTRIM, é excluído todo conteúdo a esquerda do valor passado,

incluindo o caractere do próprio valor, no caso é excluído o “#”, ficando a variável

“astrxmlaux1” com a string “5 #LUCIANE GODOI#...”.

astrxmlaux1 := LTRIM(astrxmlaux1, '#');

Agora “intposicaocar” receberá a posição do próximo caractere da variável

astrxmlaux1 que contêm “#”, no caso será o número “4”.

intposicaocar := INSTR(astrxmlaux1, '#');

A função SUBTR, retornará para a variável p_valor o valor subtraído da string

“astrxmlaux1”, levando por parâmetro a posição inicial e final que será subtraída, no

caso da posição “0” até a posição que é apontada do na variável “intposicaocar -1”,

este “-1” é para que não seja salvo o caractere “#” e assim o código possa retornar

da forma correta para próxima decodificação. No caso p_valor receberá “002”.

Page 52: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

52

p_valor := SUBSTR(ASTRXMLAUX1, 0, INTPOSICAOCAR – 1);

A função REPLACE, substitui na variável “astrxmlaux1”, o valor passado em

“p_valor” por “NULL”, e assim é excluído este conteúdo da string.

astrxmlaux1 := REPLACE(astrxmlaux1, p_valor, NULL);

Ao fim, a variável de retorno “p_texto” recebe a string que foi recortada, seguindo o

exemplo ela retornará com o valor “#LUCIANE GODOI#...”.

p_texto := astrxmlaux1;

END decodificacao_p;

END LEITURA_CADCLIENTE_pkg;

/

A variável “L_COD” é alimentada com a informação “5” e novamente é chamado o

procedimento decodificacao_p, só que agora transmitindo a variável “L_NOME” para

ser alimentada com a próxima informação captada, assim sucessivamente até que

todas as variáveis sejam carregadas para posteriormente ocorrer a inserção dos

dados no banco Oracle. (Instrução para inserção disponível na p. 60).

Page 53: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

53

4. CONCLUSÃO

Realizou-se um estudo para elaboração e disponibilização do material contido neste

trabalho, ao decorrer do desenvolvimento foram descobertas e desenvolvidas

soluções dos mais diversos tipos até que se tenha conseguido o resultado

apresentado. As técnicas de instalações das ferramentas foram transmitidas com

uma linguagem clara e acessível ao entendimento da maioria dos interessados

desta área, disponibilizando assim o “caminho das pedras” aos entusiastas do

desenvolvimento voltado a Banco de Dados com a plataforma operacional Linux

Ubuntu.

Os exemplos e código criado com a linguagem PL/SQL foram de extrema

importância, enriquecendo assim o material disponível neste trabalho e também

acrescentando muito em relação a utilização das funções presentes nesta

linguagem, juntamente com o caminho lógico criado para atuar na decodificação e

solução de problemas.

Page 54: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

54

REFERÊNCIAS [1] INFOJOBS BRASIL. Analista de Banco de Dados. Disponível em:

<http://www.infojobs.com.br/artigos>. Acesso em 04 de novembro de 2014;

[2] Oracle Database Training. Disponível em: http://education.oracle.com. Acesso em

05 de Novembro de 2014.

[3] HEUSER, CARLOS A, Projeto de Banco de Dados, 2001. Editora Sagra.

[4] PRICE, JASON. Oracle Database 11G – SQL Domine SQL e PL/SQL no

Banco de Dados Oracle, 2008. Editora Artmed®Editora S.A.

[5] PITANGA, MARCOS. Construindo Supercomputadores com Linux, 2008.

Editora Brasport.

[6] TECHTUDO. Tudo sobre Linux. Disponível em <http://www.techtudo.com.br>.

Acesso em 22 de Fevereiro de 2015.

[7] Comunidade Ubuntu Brasil. Disponível em: <http://ubuntu-br.org/ubuntu>. Acesso

em 25 de Fevereiro de 2015.

[8] Trabalhando com JDeveloper. Dispoível em: <http://www.devmedia.com.br/>.

Acesso em 25 de Fevereiro de 2015.

[9] Oracle SQL Developer . Disponível em: <http://eduardolegatti.blogspot.com/>.

Acesso em 26 de Fevereiro de 2015.

[10] Oracle Database 11g Express Edition. Disponível em: <http://docs.oracle.com/>.

Acesso em 27 de Fevereiro de 2015.

[11] FREEZE, WAYNER S. SQL – Guia de referência do programador, 1998. Rio de Janeiro: Editora Ciência Moderna Ltda.

[12] HEUSER, CARLOS ALBERTO. Projeto de banco de dados / Carlos Alberto Heuser – 6. Ed., 2009. Porto Alegre: Bookman.

[13] FERNANDE, LUCIA. Oracle 9i Para Desenvolvedores Curso Completo, 2002. Rio de Janeiro: Editora Axcel Books do Brasil Editora.

[14] NEGUS, CHISTOPHER. Linux – A Bíblia, 2014. Rio de Janeiro: Editora Alta Books.

Page 55: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

55

[15] MANTOVANI, RICARDO. Introdução Linux. Disponível em:

http://desenvolvimentoaberto.org –. Acesso em 17 de Junho de 2015.

[16] Servidor de Aplicação. Disponível em: <https://pt.wikipedia.org/> Acesso em 18

de Junho de 2015.

[17] VILELLA, MATTA. O crescimento da carreira na área de TI. São Paulo.

Disponível em: <http://www.sbcoaching.com.br>. Acesso em 25 de Junho de 2015.

[18] SILVA, MOISES. Linux Sistema Operacional de Código Aberto. São Paulo.

Disponível em: < http://tecnicaelogica.blogspot.com.br>. Acesso em 22 de Junho de

2015.

[19] SOUGE FORGE. Documentação PostgreSQL. São Paulo. Disponível em :<

http://pgdocptbr.sourceforge.net>. Acesso em 01 de Agosto de 2015.

[20] Rayan, César. Servidores de Aplicação Web. Rio de Janeiro. Disponível em:

https://prezi.com/jyg0voeacblv/servidores-de-aplicacao-web/. Acesso em 01 de

Agosto de 2015.

[21] Sun Software. PL/SQL Developer. São Paulo. Disponível em:

www.sunsoftware.com.br/solucoes/ambiente.desenvolvimento/plsql. Acesso em 01

de Agosto de 2015.

Page 56: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

56

APÊNDICE A – CÓDIGO ACL

Este código é necessário para definir privilégio de acesso ao usuário “System” do

Oracle XE ao pacote UTL_HTTP.

BEGIN

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL( acl =>

'network_services.xml'

, description => 'FTP ACL'

, principal => 'SYSTEM'

, is_grant => true

, privilege => 'connect'

);

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE( acl =>

'network_services.xml'

, principal => 'SYSTEM'

, is_grant => true

, privilege => 'resolve'

);

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL( acl =>

'network_services.xml',

host => '*'

);

COMMIT;

END;

Page 57: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

57

APÊNDICE B – LEITURA_CAD_CLIENTE_PKG

create or replace PACKAGE BODY LEITURA_CADCLIENTE_PKG

IS

PROCEDURE leitura_xml_p( p_id_cliente IN NUMBER);

PROCEDURE decodificacao_p( p_texto in out VARCHAR2

, p_valor out VARCHAR2

);

END LEITURA_CADCLIENTE_PKG;

Page 58: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

58

APÊNDICE C – LEITURA_CAD_CLIENTE_PKG Body

create or replace PACKAGE BODY LEITURA_CADCLIENTE_PKG IS

PROCEDURE leitura_xml_p(p_id_cliente NUMBER)

IS

req_envelop VARCHAR2 (4000) := '<?xml version="1.0"

encoding="UTF-8"?><soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org

/soap/envelope/">

<soap:Header/>

<soap:Body>

<ns1:buscaCliente

xmlns:ns1="http://br.com.furlan.main/">

<codigo>'|| p_id_cliente||'</codigo>

</ns1:buscaCliente>

</soap:Body>

</soap:Envelope>';

req UTL_HTTP.req;

resp UTL_HTTP.resp;

res_envelop VARCHAR2 (32767);

astrxmlaux1 VARCHAR2(10000);

astrxmlaux2 VARCHAR2(10000);

v_variaveis VARCHAR2(10000);

v_dml VARCHAR2(10000);

l_cod VARCHAR2(100);

l_nome VARCHAR2(100);

l_endereco VARCHAR2(100);

l_cidade VARCHAR2(100);

l_estado VARCHAR2(100);

l_email VARCHAR2(100);

Page 59: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

59

l_telefone VARCHAR2(100);

l_cpf VARCHAR2(100);

l_rg VARCHAR2(100);

intposicaocar NUMBER;

BEGIN

astrxmlaux1 := NULL;

v_variaveis := NULL;

v_dml := NULL;

l_cod := NULL;

l_nome := NULL;

l_endereco := NULL;

l_cidade := NULL;

l_estado := NULL;

l_email := NULL;

l_telefone := NULL;

l_cpf := NULL;

l_rg := NULL;

req := UTL_HTTP.begin_request ( 'http://192.168.0.103:7001/

TesteWebserviceFurlan/

TesteRetornoService?WSDL'

, 'POST'

, 'HTTP/1.1'

);

UTL_HTTP.set_header (req, 'Content-Type', 'text/xml');

UTL_HTTP.set_header (req, 'Content-Length', LENGTH

(req_envelop));

UTL_HTTP.write_text (req, req_envelop);

Page 60: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

60

resp := UTL_HTTP.get_response (req);

UTL_HTTP.read_text (resp, res_envelop);

UTL_HTTP.end_response (resp);

astrxmlaux1 := res_envelop;

intposicaocar := INSTR (astrxmlaux1, '#');

astrxmlaux2 := SUBSTR (astrxmlaux1, 0, intposicaocar-1);

astrxmlaux1 := REPLACE (astrxmlaux1, astrxmlaux2, NULL);

decodificacao_p(astrxmlaux1, L_COD);

decodificacao_p(astrxmlaux1, L_NOME);

decodificacao_p(astrxmlaux1, L_ENDERECO);

decodificacao_p(astrxmlaux1, L_CIDADE);

decodificacao_p(astrxmlaux1, L_ESTADO);

decodificacao_p(astrxmlaux1, L_EMAIL);

decodificacao_p(astrxmlaux1, L_TELEFONE);

decodificacao_p(astrxmlaux1, L_CPF);

decodificacao_p(astrxmlaux1, L_RG);

v_variaveis := L_COD || ', ' || '''' ||

L_NOME || '''' || ', ' || '''' ||

L_ENDERECO || '''' || ', ' || '''' ||

L_CIDADE || '''' || ', ' || '''' ||

L_ESTADO || '''' || ', ' || '''' ||

L_EMAIL || '''' || ', ' || '''' ||

L_TELEFONE || '''' || ', ' ||

Page 61: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

61

L_CPF || ', ' ||

L_RG;

v_dml := 'INSERT INTO TB_CLIENTE ( COD, NOME, ENDERECO,

CIDADE, ESTADO, EMAIL,

TELEFONE, CPF, RG)

VALUES (' || V_VARIAVEIS || ')';

EXECUTE IMMEDIATE v_dml;

COMMIT;

PROCEDURE decodificacao_p( p_texto in out VARCHAR2

, p_valor out VARCHAR2

) IS

intposicaocar NUMBER;

astrxmlaux1 VARCHAR2(10000);

BEGIN

intposicaocar := 0;

astrxmlaux1 := NULL;

astrxmlaux1 := p_texto;

intposicaocar := INSTR(astrxmlaux1, '#');

astrxmlaux1 := LTRIM(astrxmlaux1, '#');

intposicaocar := INSTR(astrxmlaux1, '#');

p_valor := SUBSTR(ASTRXMLAUX1, 0, INTPOSICAOCAR - 1);

astrxmlaux1 := REPLACE(astrxmlaux1, p_valor, NULL);

p_texto := astrxmlaux1;

Page 62: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

62

END decodificacao_p;

END LEITURA_CADCLIENTE_pkg;

END leitura_xml_p;

Page 63: BANCO DE DADOS: Criação de Ambiente Linux, Migração de ... · Analista de Banco de Dados. Bem como, o estudo de caso envolvendo o processo de migração de um banco para outro,

63

APÊNDICE D – CHAMADA DE FUNÇÃO (BLOCO ANÔNIMO)

declare

l_cod_client number;

begin

delete tb_cliente;

for l_cod_client in 1..10

loop

leitura_cadcliente_pkg.leitura_xml_p(l_cod_client);

end loop;

commit;

end;