Habilitando OCI8 no Ubuntu 11.10

Olá pessoal, um dos grandes problemas enfrentados pelos programadores PHP no ambiente Linux é habilitar a library OCI8, para que o PHP possa ter suporte a conexão com bases de dados Oracle.

Depois de várias pesquisas e ter testados inúmeros tutoriais sem sucesso, segue abaixo um tutorial com as instruções que realmente funcionaram no Ubuntu 11.10, e espero que funcione com você também. Vamos lá!

Scaffolding FuelPHP

Boa tarde galera, estou acompanhando e estudando alguns novos frameworks para desenvolvimento em PHP e encontrei esse vídeo muito bacana onde o Adler Medrado fala sobre o fuelPHP, um framework para desenvolvimento ágil em PHP. Confiram abaixo o vídeo, e acompanhem também os blogs do Adler:  www.adlermedrado.com.br e www.getoncode.com.br.

Operador IN em SQL ( Oracle, PostgreSQL, MySQL, SQL Server )

O operador IN funciona como uma “sequência” de “Or’s”.

Por exemplo, as duas consultas abaixo possuem o mesmo comportamento e produzem o mesmo efeito:

- Consulta 1

SELECT * FROM tbAluno WHERE codigo = 1 OR codigo =2 OR codigo = 3

- Consulta 2

SELECT * FROM tbAluno WHERE codigo IN (1,2,3)

Ou seja, o operador IN retorna os registros onde a condição/campo que está sendo comparado seja igual a algum dos parâmetros.

Podemos utilizar a negação também, por exemplo:

- Consulta 1

SELECT * FROM tbAluno WHERE codigo <> 1

- Consulta 2

SELECT * FROM tbAluno WHERE codigo NOT IN (1)

Ambas as consultas irão retornar os registros onde o campo “codigo” seja diferente de 1.

Qualquer dúvida é só postar aqui !!!  Espero que tenha ajudado!

Abraço !!!

Converter para maiúsculo ou converter para minúsculo no MySQL, PostgreSQL, SQL SERVER e Oracle

Em ambos os SGBD’s ( MySQL, SQL Server, PostreSQL, Oracle  ):

Maiúsculo: UPPER(valor)

Ex: SELECT upper(‘higor montoro’)

Resultado: HIGOR MONTORO

Minúsculo: LOWER(valor)

Ex: SELECT lower(‘HIGOR MONTORO’)

Resultado: higor montoro

Lembrando que você pode passar um campo como valor a ser convertido: Ex: SELECT upper(tx_nome) FROM tabela

Como funciona o COALESCE em SQL ( Oracle, SQL Server, MySQL e PostgreSQL)

Sintaxe: COALESCE(expression1,…n)

O coalesce analisa o primeiro parâmetro, caso esse parâmetro seja null então ele analise o segundo parâmetro, caso o segundo seja diferente de null ele retorna o valor do mesmo, senão ele analisa o próximo parâmetro até que um dos parâmetros seja diferente de null ou não haja mais parâmetros para analisar.

Exemplo:

MySQL

SELECT coalesce(null, 1)

Resultado: 1

SELECT coalesce (null, null, 2)

Resultado: 2

SELECT coalesce (null, null, null)

Resultado: null

Os parâmetros podem receber valores “fixos” e campos:
SELECT coalesce(vlr_pedido, 0) FROM tabela_pedidos

Ou seja,  no exemplo acima caso o campo vlr_pedido seja NULL então será retornado o valor do segundo parâmetro, no caso, “0″. Senão será retornado o valor presente no campo “vlr_pedido”.

Lembrando que o coalesce funciona tanto no MySQL bem como no PostgreSQL, no Oracle,  no SQL Server.

INSERT COM CARACTERES ESPECIAIS NO ORACLE (“&”)

Olá pessoal, hoje vou postar uma dica pra quem utiliza o SQL DEVELOPER.

Você está tentando inserir um registro no oracle e nos valores que você deseja inserir existe o caracter “&” e no momento  de executar o script o SQL DEVELOPER apresenta um prompt para informar o valor de uma variável?! :

ex:

INSERT INTO teste (nome) values (‘NOME&NOME’);

Existe uma maneira de contornar isso utilizando-se da concatenação de valores:

ex:

INSERT INTO TESTE VALUES(‘NOME’|| ‘&’ || ‘NOME’);

bom é isso ai, qualquer dúvida é só mandar no post.

até +

DROP CONSTRAINT (PRIMARY KEY , FOREIGN KEY) ORACLE / ELIMINAR CONSTRAINT NO ORACLE

Para eleminar constraints (As famosas PK’s e FK’s) no Oracle utilizamos a seguinte instrução:

ALTER TABLE noma_tabela DROP CONSTRAINT “nome_constraint”;

Por exemplo, vamos criar uma tabela e adicionar uma primary key para ela:

CREATE TABLE CLIENTE(

CODIGO NUMBER ,

NOMCLIENTE VARCHAR(255),

CONSTRAINT “PK_CLIENTE” PRIMARY KEY(CODIGO)

);

No exemplo acima foi informado uma constraint (“PK_CLIENTE”) para a tabela cliente.

Se por algum motivo precisarmos elimina-la,  utilizaremos o seguinte comando:

ALTER TABLE CLIENTE DROP COSNTRAINT “PK_CLIENTE”;

Pronto,  a tabela cliente não possui mais a CONSTRAINT, porém,  o Oracle mantém um INDEX com o nome da constraint que precisa ser eliminado também, pois, caso você tente adicionar novamente uma constraint com esse nome não irá conseguir.

Para eliminar o INDEX utilize:

DROP INDEX “nome_index”;

Ex:

DROP INDEX “PK_CLIENTE”;

Pronto, espero ter ajudado. Qualquer dúvida é só postar !!!!

Renomear tabela no Oracle/ MySQL/ PostgreSQL/ SQL Server – Trocar nome da tabela

Oracle

ALTER TABLE "nome_antigo" RENAME TO "nome_novo";

PostgreSQL

ALTER TABLE "nome_antigo" RENAME TO "nome_novo";

MySQL

ALTER TABLE "nome_antigo" RENAME TO "nome_novo";

observe que não há diferenças nas intruções para os SGBD’s Oracle, MySQL e PostgreSQL. Os comandos são os mesmos para os 3 nesse caso.

SQL Server

sp_rename nome_antigo, nome_novo;

Porém, para o SQL Server, utilizamos o procedimento interno “sp_rename”.

espero que lhe  seja útil, =].

até o próximo.

Order By – Ordenação na SQL

Ex: Suponha que queremos selecionar os dados da tabela “cliente” porém o resultado deve ser ordenado pelo nome do cliente em ordem crescente. Para isso utilizaremos a seguinte consulta SQL:

————————————————————————————–

SELECT cod_cliente, nome_cliente FROM clientes ORDER BY nome_cliente ASC;

————————————————————————————–

 

Resultado:
cod_cliente     nome_cliente
————       —————————————————————-
75852             ANDRÉ BATISTA
01254             ANDRÉ COIMBRA
00024             BRUNA ALMEIDA

No comando acima pedimos para ele selecionar a coluna “cod_cliente” e a coluna “nome_cliente” da tabela “cliente”:

SELECT cod_cliente, nome_cliente FROM clientes

e pedimos para ordernar o resultado pela coluna “nome_cliente” de forma crescente (ASC/ ascendente) :

ORDER BY nome_cliente ASC
Também é possível ordernar o resultado de forma “decrescente” trocando a palavra “ASC” por “DESC”:

————————————————————————————–

SELECT cod_cliente, nome_cliente FROM clientes ORDER BY nome_cliente DESC;

————————————————————————————–
resultado
cod_cliente    nome_cliente
————    —————————————————————-

00024       BRUNA ALMEIDA

01254       ANDRÉ COIMBRA

75852       ANDRÉ BATISTA

00024 BRUNA ALMEIDA

Concatenar valores no Oracle/PostgreSQL/Mysql/SQL Server

Olá, segue abaixo como concatenar valores no Oracle, no PostgreSQL, no Mysql e no SQL Server.
ATENÇÂO: para realizar a concatenação, todos os valores que serão concatenados devem ser do tipo “string”. Caso os valores não estejam como string, deverão ser convertidos para string. Para isso pode-se utilizar o comando CAST descrito em um post aqui no blog.

–Oracle
No Oracle o operador de concatenação é o “||”.
Exemplo:

SELECT ‘A’ || ‘B’ FROM DUAL;

resultado
———–
AB

–PostgreSQL
No PostgreSQL, assim como no Oracle, o operador de concatenação é o “||”.
Exemplo:

SELECT ‘A’ || ‘B’ ;

resultado
———–
AB

–SQL Server
No SQL Server o operador de concatenação é o “+”.
Exemplo:

select ‘A’ + ‘B’

resultado
———–
AB

–MySQL
No MySQL, para concatenar utilizamos o CONCAT.
Exemplo:
select concat(‘A’,'B’,'C’)
resultado
————–
ABC

select concat(‘A’,'B’,'C’,'D’)
resultado
————–
ABCD

select concat(‘A’,'B’,'C’,'E’)
resultado
————–
ABCDE

É isso ai galera. Até o próximo!