Criando usuário no Oracle / Drop user

1-Criar um tablespace

CREATE TABLESPACE fabiano_data LOGGING DATAFILE ‘/u01/app/oracle/oradata/fabiano/fabiano_data.dbf’ SIZE 200m AUTOEXTEND ON NEXT 100m EXTENT MANAGEMENT LOCAL;

Apagar table space

drop tablespace fabiano_data;

2-Criar usuário

create user fabiano identified by senha default tablespace fabiano_data temporary tablespace temp;

3-Privilégios de DBA para o usuário

grant dba to fabiano;

4-Excluindo um usuário

drop user fabiano cascade;

Dica: Executar antes da exclusão
SQL> purge recyclebin;

SQL>alter session set optimizer_mode=choose;

Configurando conexão com PHP + Oracle usando CentOS 6.3 / Red Hat 6.3

Neste artigo vou descrever a maneira mais simples e rapida para configurar o PHP para suporte com Oracle.

Antes de iniciar é necessário ter alguns pacotes básicos instalados;

1
# yum install gcc gcc-c++ autoconf libaio

Instalar o servidor web Apache
O comando abaixo instala o servidor web apache.

1
# yum -y install httpd

Configure para iniciar junto co o boot
Agora configuramos o apache para iniciar junto com o boot.

1
# chkconfig httpd on

Instalar o PHP
Instalando o PHP

1
# yum -y install php php-devel php-pear

Para instalar todas as bibliotecas do PHP – esta etapa não é obrigatoria
O comando abaixo instala todas as extensões disponíveis para o PHP

1
# yum -y install php*

Configurar o SELINUX
Agora vamos desabilitar SELINUX para não interferir no servidor httpd

1
2
3
/etc/sysconfig/selinux
 
# SELINUX=disabled

Instalar o Oracle client
Agora precisamos baixar o client do oracle no site Oracle.com é necessário fazer um cadastro rápido e gratuito.
Lembrando que você deve baixar de acordo com a arquitetura i686 ou x64

O comando abaixo instala os pacotes RPM.
x86_64
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm

1
2
# rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
# rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm

i686/i386
oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm

1
2
# rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
# rpm -ivh oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm

Agora é necessário setar a variável D_LIBRARY_PATH para o caminho da instalação do oracle client, que será carregado durante a Instalação do OCI8

1
2
# export LD_LIBRARY_PATH=/usr/lib/oracle/
# export LD_LIBRARY_PATH=/usr/lib64/oracle/

PHP – Instalação das extensões PECL
http://php.net/manual/pt_BR/install.pecl.php

Instalar o OCI – http://pecl.php.net/package/oci8

1
# pecl install oci8

Quando for solicitado o caminho do oracle_home, pressione enter caso tenha usado o comando export LD_LIBRARY_PATH apontando para o caminho do oracle client ou informar o caminho da instalação
Lembrando que tem diferença entre as plataformas i686 e x64(de acordo com a versão de plataforma e client do oracle usados)
Para suporte
http://php.net/manual/pt_BR/install.pecl.php

Editar o arquivo php.ini

1
# /etc/php.ini

Acrescentar a linha

1
# extension=oci8.so

reiniciar o host

1
# reboot

após reiniciar crie um arquivo phpinfo.php

1
<!--?php phpinfo(); ?-->

Se tudo ocorreu bem deverá aparecer o modulo OCI conforme a imagem abaixo

Problemas comuns

1
2
3
4
5
6
7
8
9
10
When running the CLI version of PHP from the command line, you may receive errors like the following:
[root@myserver /root]$ php -v
PHP Warning: Module 'pcre' already loaded in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so' - /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so: Undefined symbol "pcre_exec" in Unknown on line 0
 PHP Warning: Module 'SimpleXML' already loaded in Unknown on line 0
PHP Warning: Module 'session' already loaded in Unknown on line 0
PHP Warning: Module 'exif' already loaded in Unknown on line 0
PHP 5.2.3 (cli) (built: Jun 14 2007 15:29:17)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

Como resolver?
-Verifique se desabilitou o SELINUX após a configuração é necessário reiniciar o host.

 

Atualizado em 28/04/2018

Para instalar o suporte para PHP 5.4 no Linux CentOS 7

pecl install oci8-2.0.12

Extra: Quando tiver problemas para conexão pelo SQL PLUS (sqlplus command not found on Linux)

(para usar o SQLPLUS)
# yum install glibc.i686

Você pode abrir o SQLPLUS para testar a conexão com o banco de dados

Digite no terminal o comando sqlplus

# sqlplus

Para descobrir o diretorio de instalação do Oracle

#find / -name sqlplus -print

Resultado será parecido com:

# /u01/app/oracle/product/database/bin/sqlplus

Execute o comando para indicador o local

ORACLE_HOME=/u01/app/oracle/product/database
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH

Instalando CentOS 6.2 x86_64

Neste artigo de hoje vou mostrar como instalar e fazer as configurarações iniciais do centOS 6.2 x86_64, neste servidor será instalado o Oracle 11g R2, para replicação do ambiente principal que esta no Red Hat 6.2 x86_64.

Estou usando um ambiente cloud, com as seguintes configurações;

Processador Intel Xeon E5620 2.40GHz
8 Core’s
12 GB ram
1 Placa de rede (Gigabyte)
300 GB de espaço

Antes de iniciarmos precisamos fazer download do centos, acesse o link e baixe de onde preferir.

Baixe a versão x86_64
Links para donwloads
http://www.centos.org/
http://www.centos.org/modules/tinycontent/index.php?id=15

Mãos na massa!!!!

Nesta primeira tela do boot selecione a opçao install
Escolha o idioma de sua preferencia.

Selecione o seu tipo de teclado.

Tipo de armazenamento (estou usando disco local, caso esteja usando armazenamenro em storage selecione o outro tipo.)

Informe o nome para o host.

Fuso horário.

Informe uma senha para usuário root e confirme.

Marque a opção para criar personalizado e prosiga.

Recomendações do DBA para criação do swap

1024 MB até 2048 – Calcular espaço do Swap 1.5 X RAM
2049 MB até 16 GB – Calcular espaço do Swap 1 X RAM
maior que 16 GB – Espaço do Swap 16 GB

Vou criar a partição swap com o tamanho equivalente q quantidade de memória ram disponivel, no meu caso tenho 12 GB, então vou criar uma partiçao com 122888 MB (1024*12).

Agora crie uma outra partição, com o ponto de montagem / (barra) e marque para utilizar o espaço restante.

Aguarde o processo de formatação, levará alguns minutos até a próxima tela.

Nesta etapa o instalador copia os arquivos e faz as configurações Pós-Instalação automaticamente, é so aguardar….

A tela abaixo mostra que finalizamos a primeira etapa (instalação), agora vamos fazer as configurações iniciais.

Nesta será criado um outro usuário (informe um usuário e senha).

Informe a data e hora.

Kdump – Após configurar o kdump reinicie o host.

Quando reiniciar a primeira configuração a ser feita é liberar o acesso SSH ao servidor(essencial para configurar remotamente de outros computadores.).

para habilitar o SSH digite o comando no terminal.

#chkconfig sshd on

Agora inicie o serviço.

#service sshd start

Em seguida vamos configurar a placa de rede.

Logue como root, e no terminal digite #ifconfig, anote o endereço MAC.

#ifconfig

Agora acesse o diretório network-scripts

#cd /etc/sysconfig/network-scripts

crie um arquivo com o nome ifcfg-eth0

#vi ifcfgeth0

Dentro do arquivo deverá conter as informações como abaixo(altere conforme sua rede)

#ENDEREÇO MAC

HWADDR=00:00:00:00:00:00

TYPE=Ethernet

BOOTPROTO=none

#IP DO HOST

IPADDR=192.168.1.19

#MASCARA

PREFIX=24

#GATEWAY

GATEWAY=192.168.1.6

#SERVIDORES DNS DA SUA REDE

DNS1=192.168.1.2

DNS1=192.168.1.9

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

#NOME DA CONEXAO

NAME=eth0

#ATIVA PLACA DE REDE NO BOOT

ONBOOT=yes

Salve o arquivo e reinicie o servidor para aplicar as alterações.

no terminal digite o comando abaixo para atualizar os pacotes do servidor(esta etapa demora um pouco dependendo da sua velocidade com a internet).

#yum update -y

Vamos configurar o arquivo hosts

#vi /etc/hosts

Acrescente a linha no final do arquivo conforme o endereço IP que você informou durante a instalação e nome do host.

192.168.1.19 srv06.seudomnio.com srv06

Agora vamos desativar o SELINUX, edite o arquivo /etc/selinux/cofig

#vi etc/selinux/config

Altere de enforcing para disable

SELINUX=disabled

Agora vamos configurar os pré-requisitos para instalaçao do oracle 11g R2

Vamos editar o arquivo /etc/sysctl.conf e setar os parâmetros do kernel.

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

fs.aio-max-nr = 1048576

fs.suid_dumpable = 1

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

Em seguida vamos instalar os pacotes necessários para instalação do oracle.
Estes pacotes estão no diretório Packages da midia de instalação
Você poderá instalar pacote por pacote com o comando rpm -ivh nome-pacote ou pelo YUM

Veja abaixo a lista dos pacotes a serem instalados:

yum install -y gnome-icon-theme-2.28.0-2.el6.noarch

yum install -y sgml-common-0.6.3-32.el6.noarch

yum install -y dmz-cursor-themes-0.4-4.el6.noarch

yum install -y libstdc++-devel-4.4.4-13.el6.x86_64

yum install -y kernel-headers-2.6.32-71.el6.x86_64

yum install -y elfutils-libelf-devel-0.148-1.el6.x86_64

yum install -y libgcc-4.4.4-13.el6.i686

yum install -y nss-softokn-freebl-3.12.7-1.1.el6.i686

yum install -y glibc-2.12-1.7.el6.i686

yum install -y mpfr-2.4.1-6.el6.x86_64

yum install -y libXt-1.0.7-1.el6.x86_64

yum install -y libXmu-1.0.5-1.el6.x86_64

yum install -y libXxf86misc-1.0.2-1.el6.x86_64

yum install -y libXxf86vm-1.1.0-1.el6.x86_64

yum install -y libaio-0.3.107-10.el6.i686

yum install -y libstdc++-4.4.4-13.el6.i686

yum install -y ncurses-libs-5.7-3.20090208.el6.i686

yum install -y readline-6.0-3.el6.i686

yum install -y libICE-1.0.6-1.el6.i686

yum install -y xorg-x11-xauth-1.0.2-7.1.el6.x86_64

yum install -y cpp-4.4.4-13.el6.x86_64

yum install -y libtool-ltdl-2.2.6-15.5.el6.x86_64

yum install -y unixODBC-2.2.14-11.el6.x86_64

yum install -y ppl-0.10.2-11.el6.x86_64

yum install -y cloog-ppl-0.15.7-1.2.el6.x86_64

yum install -y libmcpp-2.7.2-4.1.el6.x86_64

yum install -y mcpp-2.7.2-4.1.el6.x86_64

yum install -y xorg-x11-server-utils-7.4-15.el6.x86_64

yum install -y compat-db42-4.2.52-15.el6.x86_64

yum install -y compat-db43-4.3.29-15.el6.x86_64

yum install -y libdmx-1.1.0-1.el6.x86_64

yum install -y libXxf86dga-1.1.1-1.el6.x86_64

yum install -y libXv-1.0.5-1.el6.x86_64

yum install -y libIDL-0.8.13-2.1.el6.x86_64

yum install -y ORBit2-2.14.17-3.1.el6.x86_64

yum install -y GConf2-2.28.0-6.el6.x86_64

yum install -y libbonobo-2.24.2-4.el6.x86_64

yum install -y gtk2-engines-2.18.4-5.el6.x86_64

yum install -y shared-mime-info-0.70-4.el6.x86_64

yum install -y libdaemon-0.14-1.el6.x86_64

yum install -y avahi-0.6.25-8.el6.x86_64

yum install -y avahi-glib-0.6.25-8.el6.x86_64

yum install -y gnome-vfs2-2.24.2-6.el6.x86_64

yum install -y libtool-ltdl-2.2.6-15.5.el6.i686

yum install -y unixODBC-2.2.14-11.el6.i686

yum install -y libuuid-2.17.2-6.el6.i686

yum install -y libSM-1.1.0-7.1.el6.i686

yum install -y libXau-1.0.5-1.el6.i686

yum install -y xorg-x11-utils-7.4-8.el6.x86_64

yum install -y compat-libstdc++-33-3.2.3-69.el6.x86_64

yum install -y celt051-0.5.1.3-0.el6.x86_64

yum install -y libXp-1.0.0-15.1.el6.x86_64

yum install -y libxcb-1.5-1.el6.i686

yum install -y libX11-1.3-2.el6.i686

yum install -y libXext-1.1-3.el6.i686

yum install -y ConsoleKit-x11-0.4.1-3.el6.x86_64

yum install -y libXi-1.3-3.el6.i686

yum install -y xorg-x11-xinit-1.0.9-13.el6.x86_64

yum install -y libXtst-1.0.99.2-3.el6.i686

yum install -y libXt-1.0.7-1.el6.i686

yum install -y compat-libstdc++-33-3.2.3-69.el6.i686

yum install -y glibc-headers-2.12-1.7.el6.x86_64

yum install -y glibc-devel-2.12-1.7.el6.x86_64

yum install -y gcc-4.4.4-13.el6.x86_64

yum install -y compat-gcc-34-3.4.6-19.el6.x86_64

yum install -y gnome-themes-2.28.1-6.el6.noarch

yum install -y system-icon-theme-6.0.0-2.el6.noarch

yum install -y system-gnome-theme-60.0.2-1.el6.noarch

yum install -y ncurses-devel-5.7-3.20090208.el6.x86_64

yum install -y libgnome-2.28.0-11.el6.x86_64

yum install -y gcc-c++-4.4.4-13.el6.x86_64

yum install -y readline-devel-6.0-3.el6.x86_64

yum install -y glibc-devel-2.12-1.7.el6.i686

yum install -y compat-db-4.6.21-15.el6.x86_64

yum install -y unixODBC-devel-2.2.14-11.el6.i686

yum install -y unixODBC-devel-2.2.14-11.el6.x86_64

yum install -y libaio-devel-0.3.107-10.el6.i686

yum install -y libaio-devel-0.3.107-10.el6.x86_64

yum install -y compat-gcc-34-c++-3.4.6-19.el6.x86_64.rpm

yum install -y compat-li*

yum install -y elfu*

yum install -y gcc-c++ pdksh*

yum install -y gcc

yum install -y compat*

yum install -y pdksh*

 

# yum install -y unixODBC.i686

# yum install -y unixODBC-devel.i686

# yum install -y unixODBC-devel

http://blog.fabianobento.com.br/downloads/pdksh-5.2.14-12.i386.rpm
http://blog.fabianobento.com.br/downloads/pdksh-5.2.14-21.x86_64.rpm

Agora seu servidor está pronto para receber a instalação do oracle.

Contate seu DBA para criar o diretório da instalação, configurar os usuários, permissões e parametros do Oracle.

Posts relacionados

 

Instalando e Configurando o VNC no Red Hat 6.2 / CentOS 6.2
http://blog.fabianobento.com.br/2012/05/instalando-configurando-vnc-red-hat-6-2/

Habilitando ambiente X na inicialização do Red Hat 6.2 / CentOS 6.2
http://blog.fabianobento.com.br/2012/05/habilitando-ambiente-na-inicializacao-red-hat-6-2/

Instalando o Oracle Database 11g Release 2 (11.2) no Red Hat 6.2 – Resolvendo dependencias
http://blog.fabianobento.com.br/2012/05/instalando-oracle-database-11g-release-2-11-2-red-hat-6-2/

 

[REVISÃO em 12-05-2012]
Aumentando a área de Swap sem ter que reinstalar o Red Hat – Instalação do oracle 11G R2

Completando uma sequencia de 7 artigos, mostrando configurações de serviços e de softwares no Red Hat, hoje vou publicar a solução que encontrei para aumentar a área de swap sem ter que reinstalar o OS.
Esta sequencia de artigos se deu ao fato da migraçao de ambiente que estou acompanhando aqui na empresa onde trabalho.

Um outro problema que você poderá ter na etapa 18 da instalaçao o oracle é a área Swap que deve ter no minimo 16 GB, ao contrário você terá um erro como a imagem abaixo.

Bom vamos ao que interessa, Como resolver ??

(Geralmente configuramos área de swap equivalente a metade de memória que temos no servidor)

No meu caso o servidor tem 32 GB e minha área de swap tinha 15.62 GB e era necessário 16 GB para instalação do oracle, então precisei especificar em 400 MB no shell para chegarmos nos 16GB.
1024*16 (16384 MB)

Vamos verificar o tamanho do swap

No terminal digite

1
# free

Depois verificamos quanto de espaço físico temos em disco para poder aumentar na memória swap.

1
# df -hT

Em seguida iremos criar um diretório no raíz com o nome de swap:

1
# mkdir /swap

Agora criaremos a swap propriamente dita:

1
# cd /swap

no meu caso ja tinha 15.62 GB de swap, então precisei adicionar 400 MB

1
# dd if=/dev/zero of=/swap/swapfile bs=1024 count=400000

Leva alguns minutos para concluir, espere aparecer a mensagem abaixo.

400000+0 records in
400000+0 records out

É recomendado mudar a permissão do arquivo

#chmod 600 /swap/swapfile

1
# mkswap /swap/swapfile

Setting up swapspace version 1, size = 509595904 bytes

1
# swapon /swap/swapfile

Pronto, agora veja o resultado.

1
# free


Vamos adicionar agora a nova entrada no FSTAB para montar no boot. Edite o arquivo /etc/fstab e adicionando a seguinte linha:

/swap/swapfile swap swap defaults 0 0

Salve e saia do FSTAB.

Pronto esta feito , você acabou de aumentar sua SWAP.

Se quizer voltar ao tamanho original , delete o arquivo que esta em /swap e tire a linha do /etc/fstab.

post original: http://jf.eti.br/howto-aumentando-a-area-de-swap-sem-ter-que-reinstalar/

Instalando o Oracle Database 11g Release 2 (11.2) no Red Hat 6.2

Resolvi criar este post devido algumas dificuldades que encontramos em migrar de versão do oracle 10g para 11g R2 e de Plataforma Windows 2003 Standard (32) para Red Hat 6.2 X86_64

O problema de fato foi na etapa 18 da instalação do banco de dados, pois o oracle exige alguns pacotes em versão inferior a que está disponivel no Red Hat 6.2 e com a compilação i386, sendo que estão disponiveis apenas na compilação i686 (resumindo ambos são versão 32b porem o nome da compilação mudou)

ora_dependencias

ora_dependencias

Dependencias

libaio-0.3.105
compat-libstdc++--33-3.2.3
libaio-devel-0.3.105
libgcc-3.4.6
libstdc++-3.4.6
unixODBC-2.2.11
unixODBC-devel-2.2.11
pdksh-5.2.14

Eu tentei desistalar alguns pacotes que estavam em versão mais atual para instalar na versão que o instalador pediu o resultado foi um fracasso, pois não é possivel desistalar todos os pacotes por causa de várias dependencias que eles possuem, além do fato de estarmos usando um sistema atualizado e fazendo ele trabalhar com pacotes desatualizados… leia abaixo o resultado da minha experiencia.

Desistalação de Pacotes com RPM (Red Hat Package Manager)

Importante – Nunca use o comando (rpm -e –nodeps)

Read More →

Antes de desligar seu servidor é necessário parar o serviço do oracle pois quando você religar o servidor o serviço não vai subir automaticamente.

mão na massa!

Na console do linux faça o seguinte

1
sqlplus / as sysdba
1
shutdown immediate

Depois disso de exit e digite

1
#lsnrctl stop

Agora é só desligar o servidor as duas formas mais comuns são:

1
2
3
4
5
#/sbin/shutdown -h now
e
#/sbin/shutdown -r now
 
a opção -h suspende a máquina, e a opção -r reinicializa.

Tendo a necessidade para um maior controle das ligações que são feitas e dividir os custos por setor da empresa, iremos integrar o LOG que o software remora cria a cada ligação que é feita.
O PABX intelbras permite controlar as ligações atráves de usuário e senha, os usuário vão de 00 a 99, o pabx está conectado no servidor atraves da porta serial.
O remora gera 2 tipos de LOG, sendo um por ramal onde originou as ligações e outro por codigo de usuário que fez as ligações. Este logs ficam dentro na pasta(INTEGRA) onde o remora foi instalado.

Esta integração será feita usando um script PHP que ficara como uma tarefa agendada(CRON), para ser executada 2 vezes por dia, as 12h e 24h.

arquivos de log
Por código sendo os 2 ultimos caracteres no nome do arquivo o codigo de usuário.
CODIGO00.TXT, CODIGO01.TXT, CODIGO02.TXT, CODIGO03.TXT, CODIGO04.TXT…

CONTEUDO DO ARQUIVO CODIGO00.TXT

1
2
3
4
Hora     T OP TR RRRRR NNNNNNNNNNNNNNNNNNNN HH:MM:SS HH:MM:SS DD/MM/AAAA CL 99999,99 CP DDDDDDDDDDDDDDDDDDDDDDDDD
15:55:43 S 12 32   304 99999999             15:36:35 00:00:18 20/10/2011  5     0,28 00 CELULAR DDD 016
15:55:45 S 12 04   304 99999999             15:37:24 00:00:14 20/10/2011  7     0,13 00 FRANCA
16:00:06 S 12 31   304 99999999             15:59:41 00:00:23 20/10/2011  5     0,00 00 Fabiano celular

CONTEUDO DO ARQUIVO RMO00300.TXT
Por ramal sendo os 5 ultimos caracteres no nome do arquivo o numero do ramal.
RMO00300.TXT

1
2
3
03   300 99999999         10:30:54 00:00:07 20110627         0,15 12
32   300 99999999         10:41:51 00:02:46 20110627         2,10 12
01   300 99999999         10:50:51 00:00:07 20110627         0,15 12

Obs.: não esqueça de configurar o PHP para conectar ao oracle

Caso seu servidor web esteja em um ambiente separado do servidor com o remora instalado, você poderá criar scripts em shell para transferir os arquivos ou compartilhar a pasta, enfim faça da maneira que irá te atender.

Vamos ao que interessa;
O codigo está comentado, por isso não vou explicar passo a passo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
set_time_limit(0); //definiar tempo para execução do script caso o arquivo tenha muitas linhas
ob_start();
 
require_once('conecta_oracle.php');
//configure conforme o seu ambiente.
// "\ip_servidorpasta_compartilhadaarquivos do LOG"
$diretorio_data = "C:\intranet\www\data_txt\";
 
//listar arquivos do diretorio.
$$dir = @opendir($diretorio_data);
$i=0;
while (false !== ($file = readdir($$dir))) {// while pastas
	if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != $dir) { // if pastas
		$i++;
		$indice[$i] = "$file";
		$nm_arquivo 	= $indice[$i] = "$file";
		$tipo		= substr($indice[$i], 0, 6);
		$codigo_ramal	= substr($indice[$i], 6, 2);
 
 
// recebe parametros
	if($tipo == 'CODIGO'){
		//imprimi o nome do arquivo
		echo $nm_arquivo;
		echo ' -- '.$i.'<br />';
 
		$arquivo = $diretorio_data.$nm_arquivo;
 
			if (file_exists($arquivo)) {
 
			$ponteiro = fopen ("$arquivo", "r");
 
			$num_linhas = 0;
			$caracteres = 0;
 
				while (!feof ($ponteiro)) {
					if ($linha = fgets($ponteiro, 4096)){
						$num_linhas++;
						$caracteres += strlen($linha);
 
						if ($num_linhas != "1"){ // ignorar a primeira linha do arquivo cabeçalho.
							$DATA_IMPORTACAO = date('d/m/Y');//;
							$DS_USUARIO = 'import';
							$CD_PABX = $codigo_ramal;
 
							$HR_LEITURA			= substr($linha, 0, 9);
							$DS_TIPO			= substr($linha, 9, 1);
							$DS_OP 				= substr($linha, 11, 2);
							$DS_TR 				= substr($linha, 14, 2);
							$NR_RAMAL 			= substr($linha, 17, 5);
							$NR_LIGACAO 		= substr($linha, 23, 20);
							$HR_LIGACAO			= substr($linha, 44, 8);
							$DS_DURACAO 		= substr($linha, 53, 8);
							$DT_LIGACAO			= substr($linha, 62, 10);
							$DS_CL 				= substr($linha, 73, 2);
							$VL_LIGACAO			= substr($linha, 76, 8);
							$DS_CP 				= substr($linha, 85, 2);
							$DS_DESTINO 		= substr($linha, 88, 25);
 
							$consulta = "INSERT INTO hak_pabx_registro_codigo_tb (
							NR_SEQUENCIA, DATA_IMPORTACAO, DS_USUARIO, CD_PABX, HR_LEITURA, DS_TIPO, DS_OP, DS_TR,
							NR_RAMAL, NR_LIGACAO, HR_LIGACAO, DS_DURACAO, DT_LIGACAO, DS_CL, VL_LIGACAO, DS_CP, DS_DESTINO
							)
							VALUES (
							HAK_TELEFONIA_SEQ.Nextval, '$DATA_IMPORTACAO', '$DS_USUARIO', '$CD_PABX', '$HR_LEITURA', '$DS_TIPO', '$DS_OP', '$DS_TR',
							'$NR_RAMAL', '$NR_LIGACAO',	'$HR_LIGACAO', '$DS_DURACAO', '$DT_LIGACAO', '$DS_CL', '$VL_LIGACAO', '$DS_CP', '$DS_DESTINO'
							)";
 
								$stid = oci_parse( $conexao, "".$consulta."" ) or die ( " erro " . oci_error() );
 
								oci_execute ( $stid );
									//$exec = oci_execute( $stid , OCI_DEFAULT);
								oci_commit( $conexao );  // commits all new values: 1, 2, 3, 4, 5
 
						}//if ignora primeira linha
					}//if
				}//while
				echo 'total de importações: ' . $num_linhas_total  = $num_linhas_total + $num_linhas;
				fclose ($ponteiro);//FECHA O PONTEIRO DO ARQUIVO
				// você poderá apagar o arquivo para não importar o mesmo arquivo 2 vezes, ou renomear
//unlink("$arquivo");
				//rename($arquivo, "importado".$arquivo."000");//
			}//exists
			else { // FILE EXISTS
				echo "O arquivo $arquivo não FOI FOI ENCONTRADO";
				}
	}//tipo
 
	}
} // fecha while
 
oci_free_statement($stid);
oci_close($conexao);//fecha a conexão atual

Read More →

Oracle/PLSQL: Criando Sequence (CREATE SEQUENCE)

Uma sequence é um gerador de numeros sequenciais, e pode ser parametrizada conforme sua necessidade.

Comando para criar a sequence
Sintaxe

create sequence TESTE_SEQ
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
nocache
cycle;

minvalue = Valor minimo
max value = valor máximo que poderá chegar
start with = valor inicial
increment by 1 = (incremento), se este valor for 2, a sequence será incrementada como; 1,3,5,7,…
CYCLE = Sequencia será recomeçada ao atingir o valor maximo
NO CYCLE = default
OWNED BY table.col = Associa a uma coluna
OWNED BY NONE = sem associação

para testar a sequence

Read More →

Continuação do artigo sobre conexão com Oracle usando PHP. Vou mostrar como fazer consultas em tabelas, criar variaveis, e usar OCI_NO_AUTO_COMMIT.

//conexão com o Oracle
$conexao = oci_connect('usuario', 'senha', '127.0.0.1/nome_servico');

if (!$conexao) {
$erro = oci_error();
trigger_error(htmlentities($erro['message'], ENT_QUOTES), E_USER_ERROR);
exit;
}

//bloco da consulta SQL
$consulta = "select * from cep_localidade";
$stid = oci_parse($conexao, $consulta) or die ("erro");

//Executa os comandos SQL
$exec= oci_execute($stid);

//defini váriaveis
oci_define_by_name($stid, 'COLUNA1', $VAR1);
oci_define_by_name($stid, 'COLUNA2', $VAR2);
oci_define_by_name($stid, 'COLUNA3', $VAR3);

//Abaixo conta a quantidade de linhas retornada da consulta.
echo $nrows = oci_fetch_all($stid, $results);

oci_free_statement($stid);
//fecha a conexão atual
oci_close($conexao);

Pessoal espero que ajude e tire as duvidas de quem vai começar a usar PHP+ORACLE, é um exemplo bem simples de como fazer uma consulta no banco de dados.

Para usar INSERT, UPDATE OU DELETE use a função OCI_NO_AUTO_COMMIT e valide em seguida.

$exec= oci_execute($stid, OCI_NO_AUTO_COMMIT);
//se encontrar algum erro da um rollback NÃO efetiva a query
if (!$exec) {
    $e = oci_error($stid);
    oci_rollback($conexao);  // rollback changes to both tables
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// COMITA a query
$exec = oci_commit($conexao);
if (!r) {
    $e = oci_error($conexao);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

Hoje vou mostrar como fazer conexão no oracle usando o PHP.

Atualizado em:09/01/2018

Caso não tenha configurado o PHP para suporte com a conexão veja o link abaixo antes de continuar;

Linux:

http://blog.fabianobento.com.br/2012/10/configurando-php-para-suporte-com-oracle-usando-centos-6-3-red-hat-6-3/

Windows:

Para permitir a biblioteca PHP conectar com o Oracle no windows, é necessário instalar o client do Oracle no computador e configurar o arquivo TNSNAMES.ora.

 

1° passo – O primeiro passo é configurar o PHP. As bibliotecas para conexão com o Oracle.

Localize o arquivo php.ini dentro do diretório de instalação do apache, e em seguida abra usando um editor de texto.

Encontre a linha ;extension=php_oci8.dll e remova o ponto e vírgula no inicio.
Encontre a linha ;extension=php_oracle.dll e remova o ponto e vírgula no inicio.

Caso não encontre as linhas insira no final do arquivo.

2° passo – Agora vamos criar a conexão com o Oracle.

Para conectar no oracle usava-se OCILogon que foi substituido por oci_connect a partir da versão 5.1.2 do PHP.
Vou mostrar como usar as 2 maneiras.

//metodo para se conectar usando versão 4 ou anterior do PHP
//depende da instalação do client do oracle e configuração do arquivo TNS
$conexao_antiga = OCILogon("usuario", "senha", "servico");

//metodo usado a partir do PHP 5.1.2
$conexao = oci_connect('usuario', 'senha', '127.0.0.1/nome_servico');

if (!$conexao) {
    $erro = oci_error();
    trigger_error(htmlentities($erro['message'], ENT_QUOTES), E_USER_ERROR);
exit;
}

Modelo de configuração do arquivo TNS.ORA
O arquivo TNSNAMES.ORA armazena as configurações do servidor e nome da instancia do oracle. Abaixo postei um arquivo com duas configurações base produção e base teste.
Lembrando que ao instalar o oracle client em seu computador é criado um arquivo vazio caso seu arquivo TNS esteja em algum endereço da rede é necessário alterar o caminho no registro do windows.
Diretório padrão do arquivo: C:oracleproduct10.2.0client_1networkADMINtnsnames.ora

# TNSNAMES.ORA Network Configuration File: c:oracleora92networkadmintnsnames.ora
# Generated by Oracle configuration tools.

producao =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = prod)
    )
  )

teste =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = teste)
    )
  )

Modelo de configuração do arquivo de registro “REGEDIT” indicando o diretorio onde esta o arquivo TNS.
Caso seu arquivo de TNS seja armazenado em outro local é necessário atualizar o registro, alterando o TNS_ADMIN para o novo caminho.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraClient10g_home1]
"TNS_ADMIN"="C:\oracle\product\10.2.0\client_1\network\ADMIN"

[HKEY_LOCAL_MACHINESOFTWAREORACLE]
"TNS_ADMIN"="C:\oracle\product\10.2.0\client_1\network\ADMIN"

Bem pessoal, basicamente é isto espero que ajude. No próximo artigo vou mostrar como fazer uma consulta no DB Oracle.
Um abraço a todos.