Quando precisamos registrar em uma tabela do Oracle um campo que possua mais de 4000 caractéres, temos como opção o tipo CLOB, que é um dos "equivalentes" ao tipo TEXT do MySQL por exemplo. A única coisa que deve ser observada para utilizar esse tipo de formato de dado, é que o procedimento de inserir o registro na tabela é feito em duas etapas, sendo que na primeira etapa é realizado o insert com um valor nulo para o campo CLOB, e na segunda etapa é realizado o update do mesmo registro que acabou de ser inserido, só que desta vez deve ser passado o valor do campo CLOB.
Abaixo segue um exemplo utilizando os métodos Execute e UpdateClob da classe AdoDB para PHP.
1) DDL de criação da tabela que contém um campo CLOB:
CREATE TABLE XML_SERASA
(
"CNPJ" VARCHAR2(30 BYTE),
"DATA_SERASA" NUMBER(8,0),
"XML" CLOB
) ;
2) Código que implementa a inserção de um registro na tabela XML_SERASA.
$this->db->StartTrans();
$this->db->Execute("insert into XML_SERASA ( CNPJ, DATA_SERASA, XML ) values ( '$requisitado', '$data_cons', null)");
$sucesso = $this->db->UpdateClob('XML_SERASA', 'XML', $xml, "CNPJ = '$requisitado' AND DATA_SERASA = '$data_cons'");
$this->db->CompleteTrans();
terça-feira, 27 de julho de 2010
quinta-feira, 1 de julho de 2010
Configurar o PHP para acessar o Oracle em servidor remoto
Habilitar o PHP para acessar o banco de dados Oracle em um servidor remoto não é algo complicado, porém não é tão simples como habilitar outras extensões como por exemplo mysql e postgresql. Isso porque além de editar o arquivo php.ini para ficar com a extensão oci8 (extensão que permite acesso ao Oracle), é necessário instalar um software client da Oracle, o chamado Oracle Instant Client. Outro detalhe é que para a versão 11g do Oracle, é recomendado habilitar a extensão oci8_11g ao invés da oci8.
No site da Oracle é possível garimpar algumas informações técnicas sobre o assunto.
Leitura recomendada:
http://wiki.oracle.com/page/PHP+Oracle+FAQ
http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html
http://www.oracle.com/technology/pub/notes/technote_php_instant.html
No site da Oracle é possível garimpar algumas informações técnicas sobre o assunto.
Leitura recomendada:
http://wiki.oracle.com/page/PHP+Oracle+FAQ
http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html
http://www.oracle.com/technology/pub/notes/technote_php_instant.html
segunda-feira, 3 de maio de 2010
Zend Debugger com Zend Optimizer no XAMPP
Depois de baixar o Zend Debugger, as instruções padrões do LEIAME não funcionarão - o PHP se recusa a carregar o Zend Debugger antes do Zend Optimizer.
Você precisa configurar o Zend Debugger usando o mesmo Zend Extension Manager, que o Zend Optimizer usa para se carregar.
Coloque o conteudo do ZendDebugger-5.2.x-cygwin_nt-i386.zip na pasta C:\xampp\php\zendOptimizer\lib.

então renomeie a pasta "ZendDebugger-5.2.x-cygwin_nt-i386? para "Debugger",
A seguir renomeie as pastas para 4_3_x_comp, 5_2_x_comp, etc. para php-4.3.x, php-5.2.x etc. ( procure no diretório ..\Optimizer para referência ). Cada dir …\lib\Debugger\php-X.X.x contêm ZendDebugger.dll.

A seguir edite a seção [Zend] em C:\xampp\php\php.ini (ou C:\xampp\apache\bin\php.ini – verifique seu phpinfo() para ver qual seu PHP está usando).

A opção crítica é "zend_extension_manager.debug_server_ts", que aponta para o diretório contendo os diretórios dll php-X.X.x debugger. Após a edição, o conteúdo da secão Zend no php.ini ficará como a seguir:
[Zend]
zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.verbose=On
zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
zend_extension_manager.debug_server_ts = "C:\xampp\php\zendOptimizer\lib\Debugger"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/24,192.168.0.0/16
zend_debugger.allow_tunnel=127.0.0.1/32
Em seguida reinicie o Apache, abra http://localhost/xampp/phpinfo.php e veja se o Zend Debugger está habilitado.
Veja na figura a seguir o processo de Debug no Zend Studio 5.1.

Boa sorte.
fonte original: http://tomasz.sterna.tv/2009/03/zend-debugger-with-zend-optimizer-on-xampp/
Tradução, Adaptação e Imagens por Genivan S. Souza
Você precisa configurar o Zend Debugger usando o mesmo Zend Extension Manager, que o Zend Optimizer usa para se carregar.
Coloque o conteudo do ZendDebugger-5.2.x-cygwin_nt-i386.zip na pasta C:\xampp\php\zendOptimizer\lib.

então renomeie a pasta "ZendDebugger-5.2.x-cygwin_nt-i386? para "Debugger",
A seguir renomeie as pastas para 4_3_x_comp, 5_2_x_comp, etc. para php-4.3.x, php-5.2.x etc. ( procure no diretório ..\Optimizer para referência ). Cada dir …\lib\Debugger\php-X.X.x contêm ZendDebugger.dll.

A seguir edite a seção [Zend] em C:\xampp\php\php.ini (ou C:\xampp\apache\bin\php.ini – verifique seu phpinfo() para ver qual seu PHP está usando).

A opção crítica é "zend_extension_manager.debug_server_ts", que aponta para o diretório contendo os diretórios dll php-X.X.x debugger. Após a edição, o conteúdo da secão Zend no php.ini ficará como a seguir:
[Zend]
zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.verbose=On
zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
zend_extension_manager.debug_server_ts = "C:\xampp\php\zendOptimizer\lib\Debugger"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/24,192.168.0.0/16
zend_debugger.allow_tunnel=127.0.0.1/32
Em seguida reinicie o Apache, abra http://localhost/xampp/phpinfo.php e veja se o Zend Debugger está habilitado.
Veja na figura a seguir o processo de Debug no Zend Studio 5.1.

Boa sorte.
fonte original: http://tomasz.sterna.tv/2009/03/zend-debugger-with-zend-optimizer-on-xampp/
Tradução, Adaptação e Imagens por Genivan S. Souza
quarta-feira, 28 de abril de 2010
Problema quando o localhost do Windows XP não responde no ip 127.0.0.1
Para que o Windows XP entenda que o ip 127.0.0.1 responde pelo localhost, é necessário que o arquivo C:\WINDOWS\system32\drivers\etc\hosts tenha este formato:
# Copyright (c) 1993-1999 Microsoft Corp.
#
# Este é um arquivo HOSTS de exemplo usado pelo Microsoft TCP/IP para Windows.
#
# Este arquivo contém os mapeamentos de endereços IP para nomes de host. Cada
# entrada deve ser mantida em uma linha individual. O endereço IP deve
# ser colocado na primeira coluna, seguido do nome de host correspondente.
# O endereço IP e o nome do host devem ser separados por pelo menos um
# espaço.
#
# Adicionalmente, comentários (como estes) podem ser inseridos em linhas
# individuais ou após o nome de computador indicado por um símbolo '#'.
#
# Por exemplo:
#
# 102.54.94.97 rino.acme.com # servidor de origem
# 38.25.63.10 x.acme.com # host cliente x
127.0.0.1 localhost
# Copyright (c) 1993-1999 Microsoft Corp.
#
# Este é um arquivo HOSTS de exemplo usado pelo Microsoft TCP/IP para Windows.
#
# Este arquivo contém os mapeamentos de endereços IP para nomes de host. Cada
# entrada deve ser mantida em uma linha individual. O endereço IP deve
# ser colocado na primeira coluna, seguido do nome de host correspondente.
# O endereço IP e o nome do host devem ser separados por pelo menos um
# espaço.
#
# Adicionalmente, comentários (como estes) podem ser inseridos em linhas
# individuais ou após o nome de computador indicado por um símbolo '#'.
#
# Por exemplo:
#
# 102.54.94.97 rino.acme.com # servidor de origem
# 38.25.63.10 x.acme.com # host cliente x
127.0.0.1 localhost
domingo, 18 de abril de 2010
Script para fazer redução de espaço dos arquivos de dados e de log no SQL Server
/* o limite de redução é o da ocupação física dos arquivos */
DECLARE @bancodedados varchar(50)
DECLARE @arquivodata varchar(50)
DECLARE @arquivolog varchar(50)
DECLARE @tamanhoarquivolog int
DECLARE @tamanhoarquivodata int
SET @bancodedados = 'TreinaUniversus' -- entre com o nome da base de dados
SET @arquivodata = 'Universus_Data' -- entre com o nome LÓGICO do arquivo de dados
SET @arquivolog = 'Universus_Log' -- entre com o nome LÓGICO do arquivo de LOG
SET @tamanhoarquivodata = '1000' -- em MB
SET @tamanhoarquivolog = '1000' -- em MB
Use @bancodedados
dbcc shrinkfile(@arquivodata, @tamanhoarquivodata)
go
Use @bancodedados
go
dbcc shrinkfile(@arquivolog, @tamanhoarquivolog)
go
Modelo de função definida pelo usuário para fazer auditoria em operações de DML no SQL Server
CREATE FUNCTION dbo.GET_AUDIT_TRIGGER_NAME(@
RETURNS VARCHAR(30)
AS
BEGIN
DECLARE @PREFIX VARCHAR(4)
IF UPPER(@ACTION) = 'INSERT'
SET @PREFIX = 'TIA_'
ELSE IF UPPER(@ACTION) = 'UPDATE'
SET @PREFIX = 'TUA_'
ELSE IF UPPER(@ACTION) = 'DELETE'
SET @PREFIX = 'TDA_'
RETURN @PREFIX + @TABLENAME
END
Script do MySql para importação de arquivo CSV
LOAD DATA LOCAL INFILE '/tmp/phphTbThl'
REPLACE INTO TABLE `ped_geral`
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r\n'#
REPLACE INTO TABLE `ped_geral`
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r\n'#
Assinar:
Postagens (Atom)

