Profissional x Pessoal: A Grande Batalha

As grandes mudanças tecnológicas, científicas e, por conseqüência, culturais e sociais advindas dos avanços da sociedade moderna, têm provido grandes problemas sociais. O mercado cada vez mais exigente, procurando por profissionais especializados, com alto grau de conhecimento e comprometidos com os objetivos da empresa. Ao se dedicar demais à empresa o profissional se depara com o dilema de encontrar o equilíbrio entre a vida pessoal e profissional.

O objetivo desse artigo é encontrar maior equilíbrio entre carreira e vida pessoal.

Veja maiores detalhes sobre este artigo em: http://www.webartigos.com/articles/1137/1/Profissional-X-Pessoal-A-Grande-Batalha/pagina1.html

Fonte: http://www.webartigos.com/articles/1137/1/Profissional-X-Pessoal-A-Grande-Batalha/pagina1.html#ixzz1NzHwX8mR

Popularity: 1% [?]

Método de substituição de strings no Oracle

Para formatar, substituir, limpar e outra aplicações com um string é possível faze-lo com uma simples função no Oracle REPLACE.

A função REPLACE, procura por um trecho de string (ou somente um caractere) dentro de uma outra string substituindo esse valor encontrado por outro valor. Ou seja, pode ser usado para retirar espaços em branco, pode ser usado para formatar dados e muito mais. O uso é fácil e simples, veja abaixo.

Sintaxe: REPLACE(String_Original, String_a_procurar, String_a_substituir)

Exemplo: select REPLACE(‘Teste de Substituição’,'Substituição’,'Substituicao’) from dual;

Resultado: ‘Teste de Substituicao’

Popularity: 2% [?]

Função para pegar código ASCII para Oracle

Algumas vezes é necessário obter o código ASCII de um determinado caracter, no caso do PL-SQL do Oracle o método utilizado é o de mesmo nome ASCII.

A sintaxe é: ASCII(caracter)

Exemplo: select ASCII(‘Q’) from DUAL;

Resultado: 81

O comando reverso desse é o CHR, que retorna a partir do número, qual é o caracter relativo.

Popularity: 1% [?]

Oracle InitCap – Como formatar um string com letras maiusculas e minusculas

O initcap é um comando de manipulação de strings do Oracle, ele formata a string colocando a primeira letra de cada palavra como maiuscula e o restante como minúsculas, perfeita para formatar nomes. O uso dela é bem fácil e serve para qualquer tipo de string.

Por exemplo:


select InitCap('NOME SOBRE NOME') from dual;

O resultado seria: ‘Nome Sobre Nome’;

Popularity: 1% [?]

Oracle NATURAL JOIN – Joins mais fáceis

Muitas vezes temos que construir queries que possuem aqueles relacionamentos padrões e básicos que são fáceis, mas acaba sendo trabalhoso. Existe uma opção nas queries do Oracle que faz esse trabalho pra você, é o NATURAL JOIN, basta que as tabelas em questão tenham a coluna relacional com o mesmo nome, fácil né?

No caso de duas tabelas como as abaixo:


create table cliente (

    id_cliente number(3) primary key,

    nome  varchar2(50) not null

);

create table pedido (

    id_pedido number(6) primary key,

    id_cliente number(3) not null,

    produto varchar2(50) not null,

    qtd number(3) not null,

    FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)

);

É só fazer o natural join para recuperar os dados das duas tabelas da forma abaixo:


select * from cliente

natural join pedido;

O que normalmente fariamos? Para vocês entenderem mais fácil, nada melhor que um exemplo, isso substituiria as seguintes queries:


select * from pessoa p, pedido d

where d.id_pessoa = p.id_pessoa;

Espero ter ajudado, caso tenham alguma dúvida, por favor, comentem.

[/code]

Popularity: 2% [?]

Como escrever queries hierarquicas (Hierarquical Query)

Queries Hierarquicas é um modo muito simples de fazer recursão numa query só. No oracle isso é possível com dois comandos “START WITH” e “CONNECT BY”. Para quem não está muito adaptado ao conceito de recursão, é fazer uma conexão de um objeto com ele mesmo, ou seja, ligar uma coluna de uma tabela com outra coluna da mesma tabela, fazendo uma ligação de um registro com outro da mesma tabela.

Exemplos, sempre ajudam, nesse caso, imagine uma estrutura simples de hierarquia, chefe x funcionários, na tabela sample do oracle EMP já existe essa estrutura, o campo MGR é abreviação de Manager (gerente), onde para cada funcionário é indicado o ID do chefe dele nesse campo. Ou seja, se você pesquisar por todas as linhas que tenham um mesmo código MGR, você encontrará todos os subordinados diretos desse gerente, mas se você quiser inclusive os subordinados indiretos? Você teria que fazer uma lógica com loop para verificar se cada um dos subordinados diretos tem algum subordinado e assim por diante.

Com o comando START WITH e CONNECT BY você pode fazer isso sem a necessidade do loop, é só utilizar o START WITH para identificar o valor que irá começar (ou seja, qual gerente vai começar nesse caso) e o CONNECT BY identifica quais colunas fazem a conexão, ficando como no exemplo abaixo:


SELECT LPAD(' ' ,2*level) || ename empregados 
  FROM emp                                  
 START WITH ename ='KING'                  
       CONNECT BY PRIOR empno= mgr;

Popularity: 1% [?]

Definindo intervalos de Datas em Oracle com Interval Year To Month

O oracle tem alguns tipos de dados definidos e conhecidos, como o VARCHAR para string, NUMBER para números, mas poucos conhecem o Interval Year To Month ou Interval Day to Second.

Com isso podemos usar esses tipos em tabelas, ou extrações e será muito utilizado quando você quer armazenar períodos de tempo sem necessariamente ter as datas definidas.

No caso do Interval Year To Month, você pode definir por exemplo um período de 1 ano e 3 meses, ou só de 1 ano, ou só de 3 meses por exemplo, fazendo da seguinte forma:


INTERVAL '1-3' YEAR TO MONTH;

INTERVAL '1' YEAR;

INTERVAL '3' MONTH;

INTERVAL '100-6' YEAR(3) TO MONTH;

Nos exemplos acima, é visto algumas formas de usar o valor de intervalos, no último caso coloquei um intervalo de 100 anos para ter um intervalo de anos de 3 digitos pelo menos. Da mesma forma pode-se aplicar com o Interval Day to Second.

Para fazer cálculos com os intervalos de datas é só usar o próprio valor do interval com a data com a qual quer calcular a data, ou seja somar e pode fazer isso tanto com o valor do tipo em uma variável, na própria tabela, ou então em tempo de execução mesmo, seguem um exemplo:


select sysdate + INTERVAL '3-6' YEAR TO MONTH from dual;

Espero que o artigo tenha ajudado a esclarecer a função desse tipo não muito utilizado. Qualquer dúvida é só perguntar.

Popularity: 2% [?]

Como setar fuso horário em PHP (padronização de hora)

Muitas vezes temos um servidor fora do Brasil (ou do pais que queremos fazer referencia de horario) e o horário recuperado pelo PHP pode indicar uma hora diferente da qual se quer, para isso é só acertar o fuso horário com o comando “date_default_timezone_set”, onde deve ser passado como parametro o padrão de GMT adotado em formato texto, por exemplo para setar para São Pauo/Brasil, usa-se a seguinte linha de comando:

date_default_timezone_set('America/Sao_Paulo');

Esse código set para AQUELA sessão qual vai ser o timezone a ser usado e qualquer evento de data recuperado do sistema, será retornado nesse padrão.

Popularity: 1% [?]

Como descobrir quais tabelas existem no Oracle

Um meio muito eficaz de descobrir que tabelas existem na base, sem recorrer a softwares no banco de dados Oracle é usando algumas tabelas do sistema. Lembrando que você só será informado das tabelas que seu usuário tem acesso, independente a qual usuário a tabela está associada.

As tabelas do oracle tem um padrão, sufixo ALL_ ou USER_ isso indica:

ALL_: Todas as tabelas que o usuário logado tem acesso.

USER_: Todas as tabelas do próprio usuário.

Para consultar tabelas, temos duas tabelas interessantes:

ALL_TABLES ou USER_TABLES

ALL_TAB_COLUMNS ou USER_TAB_COLUMNS

A TABLES é responsável pelo nome das tabelas e caracteristicas das mesmas, já a TAB_COLUMNS é a tabela onde com o nome da tabela você saberá quais as colunas e tipos estas tem.

Então quando precisar saber que tabelas existem e quais suas colunas usem os comandos:

select * from all_tables;
select * from all_tab_columns where table_name = 'NOME DA TABELA';

Popularity: 2% [?]

Como tratar o erro ORA-01000: maximum open cursors exceeded

O erro ORA-01000: maximum open cursors exceeded, é gerado quando mais cursores do que o suportado pelo parametro do Oracle está configurado.

O parametro referido é o OPEN_CURSORS no arquivo de inicialização do Oracle.

Então caso este parametro esteja com 50 e você tenha no decorrer da execução do programa mais de 50 cursores abertos acontecerá essa exceção. Logo para resolver temos dois modos:

Fechar os cursores (ideal)

Muitas vezes os cursores ficam abertos por em algum lugar no programa que é chamado várias vezes o cursor é criado, usado, mas não é fechado, essa é uma regra que deve ser seguida sempre que se trabalhar com cursores. Sempre colocar um fechamento para ele.

Para ilustrar melhor veja o exemplo abaixo usando o comando CLOSE:

declare
    numero number;
    CURSOR c1
    IS
       SELECT id
        from clientes
        where nome = 'nome_procurado';

BEGIN

open c1;
fetch c1 into numero;

if c1%notfound then
     numero := 9999;
end if;

close c1;

END;

Alterar o parametro

A segunda opção é aquela que sabemos ser a mais prática, mas não é a que realmente vai resolver se o problema for exponencial, agora se o problema for prático, no sentido de precisar realmente mais de 50 cursores abertos, desse modo será a única solução.

Dessa maneira é só alterar o parametro OPEN_CURSORS no arquivo de inicialização e reiniciar o Oracle.

Related Posts with Thumbnails

Popularity: 3% [?]

Powered by WordPress | Free T-Mobile phones at BestInCellPhones.com. | Thanks to Verizon Wireless, Facebook Games and The diet solution