O erro de PLSQL ORA-00947 Not Enough Values, é bem simples de ser resolvido. Ele diz o que acontece literalmente em ingles. “Não há valores suficientes”. Ou seja, quando se faz um INSERT que deve ser informada 3 colunas, mas nos valores só vão 2, esse erro ocorre, como no exemplo abaixo:

insert into cliente(id_cliente, nome, rg) values(1, ‘Joaozinho’);

O comando insert deixa claro que são 3 colunas a serem identificadas, mas só duas estão preenchidas no values. Isso acontece também com insert select, como abaixo:

insert into cliente(id_cliente, nome, rg) select id_cliente, nome from cliente_temp;

Para esses comandos não resultar em erro, é só adicionar a coluna ficando dessa forma:

insert into cliente(id_cliente, nome, rg) values(1, ‘Joaozinho’, ‘12345678-9′);

insert into cliente(id_cliente, nome, rg) select id_cliente, nome, rg from cliente_temp;

  • Como listar os locks no Oracle
  • Funções de data para Oracle
  • Como resolver o erro ORA-01422
  • Vagas disponíveis do mes de Julho
  • Postado por Meison Almeida On February - 27 - 2010 Desenvolvimento/Programação

    A algum tempo atrás escrevi um artigo sobre como fazer jogos, contei mais minha experiencia sobre fazer jogos. Fiz o colegial técnico (é no meu tempo era colegial rs) e nele meu projeto de final de curso foi um jogo, no artigo Quer saber como fazer um jogo? está bem explicada essa história.

    Mas de qualquer forma muita gente fica querendo e perguntando como fazer um jogo, volto a afirmar não é fácil fazer um jogo, por mais simples que seja, mas tem algumas ferramentas que facilitam fazer um jogo bem simples. Não vá pensando que você vai fazer um jogão, você pode inovar bastante se sua idéia for boa, mas a qualidade não será tão boa, para isso é preciso muito tempo e muito estudo de programação, SIM É POSSÍVEL, só precisa de dedicação.

    Um desses programas que ajudam quem não sabe muito de programação é o Scirra Construct, que pode ser baixado aqui: http://www.baixaki.com.br/download/scirra-construct.htm

    Nele você pode usar alguns elementos base e criar seu próprio jogo o bom é que ele é gratuito.

    Experimente e se quiser compartilhe os seus jogos aqui.

  • Quer saber como fazer um jogo?
  • GTA IV – Maior lançamento de games para PS3 e XBOX 360
  • GTA IV – Um dos jogos mais esperados para este ano
  • O Médico e a Mula
  • Cadu ganha telefonema em jogo no BBB
  • Postado por Meison Almeida On February - 25 - 2010 Desenvolvimento/Programação Downloads Jogos Utilitários

    Em banco de dados é muito usual tratarmos de datas, particularmente gosto muito do Oracle e acho que ele não deve em nada nessa parte, ainda mais para quem utiliza a própria linguagem da Oracle o PL-SQL.

    Aqui irei abordar alguns comandos para trabalhar com datas no Oracle.

     

    Formatando Datas

    Para formatar datas você usa o comando de converter para caracter o TO_CHAR, ele irá converter para String a DATA e nessa conversão você poderá informar o formato que você quiser e inventar o seu inclusive, você pode usar os seguintes caracteres para identificar cada elemento da data:

    DIA: ‘DD’ (Dia em Números), ‘DDTH’ (Dia em Números no formato americano 15TH), ‘DAY’ (Dia por extenso)

    MES: ‘MM’ (Mês em Números), ‘MON’ (Mes por extenso)

    ANO: ‘YY’ (Ano em dois algarismos), ‘YYYY’ (Ano com 4 algarismos),  ‘RR’ e ‘RRRR’ (o mesmo dos anteriores formadado para o bug do milenio)

    HORA: ‘HH’ (Hora no formato americano), ‘HH24′ (Hora no formato 24h)

    MINUTO: ‘MI’

    SEGUNDO: ‘SS’

    Exemplos: select to_char(sysdate, ‘DD/MM/YYYY HH24:MI:SS’) from dual; — formato brasileiro mais comum

    Cálculo com Datas

    O calculo de datas sempre é necessário, saber se já passaram 2 dias de uma determinada data, qual o número de dias que faltam para uma determinada data e vários outros cenários, para isso temos as seguintes funções:

     

    Operação de Soma e Subtração (+ e -)

    Sempre calcula usando o número como dias e o calculo só pode ser feito data + ou – dias. Ficando assim:

    select sysdate – 2 from dual;

    Isso retornará o dia antes de ontem. E sendo + 2 seria o dia depois de amanhã. Ou seja, soma-se ou subtrai-se uma quantidade de dias, esse número poderá ser quebrado, representando horas. Deve-se somente dividir-se 1 por 24 por exemplo para fazer o calculo em horas.

    A única função dessas duas que funciona com 2 datas é a de subtração, que retornara a diferença em numero de dias.

    Operação de Adição de meses

    Utiliza-se o comando ADD_MONTHS, usando dessa forma:

    select ADD_MONTHS(sysdate, 2) from dual;

    Onde o primeiro parametro é a data e o segundo a quantidade de meses que se quer adicionar.

    NOTA: Se é o ultimo dia do mes de janeiro, por exemplo, somando-se um mes, vai para o ultimo dia do mes de fevereiro.

    Descobrir a maior data dentre algumas datas

    O comando para descobrir é o GREATEST e pode-se passar várias datas como parametro, dessa forma:

    select GREATEST(sysdate, sysdate-1, sysdate+3, sysdate+10, sysdate-3) from dual;

    Descobrir a menor data dentre algumas datas

    O procedimento para descorbrir é o LEAST e pode-se passar várias datas como parametro, dessa forma:

    select LEAST(sysdate, sysdate-1, sysdate+3, sysdate+10, sysdate-3) from dual;

    Retorna o último dia de um mês

    A função que diz o ultimo dia de um mês é LAST_DAY, passado como parametro uma data dentro do mês do qual quer se saber o ultimo dia.

    select LAST_DAY(sysdate) from dual;

    Calcula a quantidade de meses entres 2 datas

    A função MONTHS_BETWEEN irá retornar a quantidade de meses entre duas datas, mesmo que não dê um mes inteiro a função retornara um número quebrado relativo a esse período.

    select MONTHS_BETWEEN(sysdate-10, sysdate+30) from dual;

    Retorna a data para o próximo dia da semana

    A função NEXT_DAY retorna para uma determinada data, o próximo dia da semana definido no segundo parametro, dessa forma:

    select NEXT_DAY(sysdate, ‘FRI’) from dual;

    Dessa forma retornara a próxima sexta-feira.

    Ficam essas dicas então para quem quiser usar datas no Oracle, é claro que com essas funções você pode criar muitas outras, quem quiser ajuda com alguma necessidade, é só perguntar.

  • Como listar os locks no Oracle
  • 3 de Setembro – Dia do Biólogo
  • Novo design para Black Berry – Kickstart
  • Telefones celulares podem ter sua memória duplicada por software
  • Fotos do filme – As Crônicas de Nárnia: Príncipe Caspian
  • Postado por Meison Almeida On February - 25 - 2010 Desenvolvimento/Programação

    O erro oracle, em código PL-SQL, ORA-01422: exact fetch returns more than request number of rows, é retornado quando em uma única váriavel é tentado retornar mais de um valor, para acertar isso há várias formas dependendo da sua necessidade, vamos a alguns casos:

    1 – Query não deve retornar mais de um registro

    Vamos a uma situação hipotética, temos uma tabela de pedidos e uma tabela de clientes e queremos pegar um número de pedido dele, para isso usamos a seguinte query:

    select id_pedido
    into vID_Pedido
    from pedido p, cliente c
    where c.nome = 'MEISON'
    and c.id_cliente = p.id_cliente;

    Se o cliente tiver feito somente um pedido, essa query retornará só uma linha, mas se ele já for um cliente que está pedindo pela segunda ou mais vez será retornado mais de uma linha o que retornará o erro em questão, pois tentará jogar para a variavel vID_Pedido mais de um valor, o que não é possível. Para corrigir se a regra permitir é só pegar uma linha, por exemplo o ultimo pedido, ficando dessa forma:

    select id_pedido
    into vID_Pedido
    from pedido p, cliente c
    where c.nome = 'MEISON'
    and c.id_cliente = p.id_cliente
    and rownum=1
    order by id_pedido desc;

    O rownum=1 restringe a só uma linha, mas lembrando que sem o order by, ele pega a primeira linha que trouxer do banco. O order by irá garantir que seja a ultima linha criada.
    2 – Query pode retornar mais de um registro

    Tendo como base o primeiro exemplo, porém precisando pegar todos os pedidos desse cliente, o que deve ser feito é tratar cada um deles individualmente, eu utilizaria o loop, ficando assim:

    for vAux in (select id_pedido from pedido where id_cliente = 1)
    loop
    --Procedimento para tratar vAux.id_pedido
    end loop;

    Dessa forma não é dado o erro ORA-01422 e trata-se da maneira certa cada um dos pedidos.

    3 – Query não deve retornar mais de uma linha, erro de cadastro

    Isso é causado quando o sistema deveria inserir somente uma linha e por algum erro, inseriu mais de uma, provocando um erro conceitual. É claro que nesse caso deve-se corrigir a origem que é a inserção erronea de mais de uma linha, mas pode-se tratar também no destino, vamos utilizar a mesma query, ela deveria tratar os erros e ficaria dessa forma:

    begin
    select id_pedido
    into vID_pedido
    from pedido
    where id_cliente = 1;
    exception
    when too_many_rows then
    raise_application_error(-20000,'Erro na tabela pedido, mais linhas para o cliente do que permitido.');
    end;

    Dessa forma abordamos alguns cenários que podemos sanar esse problema. Caso você tenha algum outro problema, comente poderemos fazer outro artigo para solucionar seu problema.

  • Oracle PL/SQL ORA-00947 Not Enough Values
  • Acidente vôo Tam 3054 – Novamente procurando culpados? E solução procura-se?
  • Piada – Sempre o Joãozinho
  • Lavrador tenta falar com Lula e é impedido
  • Letra da Música – Brinquedo Torto – Desconcerto – Pitty
  • Postado por Meison Almeida On February - 19 - 2010 Desenvolvimento/Programação

    Normalmente programadores de VB, Delphi, ou qualquer outra linguagem que precise de bibliotecas DLL ou OCX, precisam com frequencia registrar essas bibliotecas no Windows. E sabem que o comando para tal tarefa no windows é: regsvr32 “<caminho da pasta>\<nome do arquivo>”.

    Porém a maioria não sabe como tirar esse registro, pois por muitas vezes precisamos testar como o programa reage sem o registro da mesma. Para isso basta somente acrescentar o parametro /u na linha acima ficando dessa forma: regsvr32 /u “<caminho da pasta>\<nome do arquivo>”.

    Essa dica é útil principalmente para programadores, mas com certeza quem entende melhor disso e precisa atualizar DLLs ou OCXs vai achar esse comando de bastante ajuda.

  • Teclas de Atalho – Facilitando o trabalho
  • Ferramenta para limpar, desfragmentar, melhorar e ajudar no seu Windows
  • Como pesquisar o conteúdo dos arquivos no Windows XP
  • Como fazer apresentações com suas fotos
  • Como obter o endereço IP do próprio computador
  • Postado por Meison Almeida On August - 19 - 2009 Desenvolvimento/Programação

    O editor de texto preferido de 9 entre cada 10 usuarios UNIX é o VI.
    A sintaxe para executar o vi eh a seguinte:
    $ vi nome_do_arquivo

    Uma vez carregado o vi, veja abaixo uma lista dos principais comandos:

    Observacao:
    Para passar para o modo comando pressione ESC.

    Comandos basicos de insercao de texto: i Insere texto antes do cursor
    a Insere texto depois do cursor
    r Insere texto no início da linha onde se encontra o cursor
    A Insere texto no final da linha onde se encontra o cursor
    o Adiciona linha abaixo da linha atual
    O Adiciona linha acima da linha atual
    Ctrl + h Apaga o ultimo caracter

    Comandos basicos de movimentacao: Ctrl+f Move o cursor para a proxima tela
    Ctrl+b Move o cursor para a tela anterior
    H Move o cursor para a primeira linha da tela
    M Move o cursor para o meio da tela
    L Move o cursor para a ultima linha da tela
    h Move o cursor um caracter a esquerda
    j Move o cursor para a proxima linha
    k Move o cursor para linha anterior
    l Move o cursor um caracter a direita
    w Move o cursor para o inicio da proxima palavra (Ignora a pontuacao)
    W Move o cursor para o inicio da proxima palavra (Nao ignora a pontuacao)
    b Move o cursor para o inicio da palavra anterior (Ignora a pontuacao)
    B Move o cursor para o inicio da palavra anterior (Nao ignora a pontuacao
    0 Move o cursor para o inicio da linha atual
    ^ Move o cursor para o primeiro caracter nao branco da linha atual
    $ Move o cursor para o final da linha atual
    nG Move o cursor para a linha n
    G Move o cursor para a ultima linha do arquivo

    Comandos basicos para localizar texto: /palavra Busca pela palavra ou caracter em todo o texto
    ?palavra Move o cursor para a ocorrencia anterior da palavra
    n Repete o ultimo comando / ou ?
    N Repete o ultimo comando / ou ? , na direcao reversa
    Ctrl+g Mostra o nome do arquivo, o numero da linha corrente e o total de linhas

    Comandos basicos para alteracao de texto: x Deleta o caracter que esta sob o cursor
    dw Deleta a palavra, da posicao atual do cursor ate o final
    dd Deleta a linha atual
    D Deleta a linha a partir da posicao atual do cursor ate o final
    rx Substitui o caracter sob o cursor pelo especificado em x(é opcional indicar o caracter)
    Rx Substitui a palavra sob o cursor pela palavra indicada em x
    u Desfaz a ultima modificacao
    U Desfaz todas as modificacoes feitas na linha atual
    J Une a linha corrente a proxima
    s:/palavra1/palavra2 Substitui a primeira ocorrencia de “palavra1″ por “palavra2″

    Comandos para salvar o texto: :wq Salva o arquivo e sai do editor
    :w nome_do_arquivo  Salva o arquivo corrente com o nome especificado
    :w! nome_do_arquivo Salva o arquivo corrente no arquivo especificado
    :q Sai do editor
    :q! Sai do editor sem salvar as alteracoes realizadas

  • Editor de videos fácil, para colocar aqueles efeitos em seus vídeos
  • Milionários antes dos 30
  • Editor de MP3 Free
  • Conversor de todos os tipos de vídeo e música em um só
  • Editor de Imagens tipo Photoshop Gratuito
  • Postado por Meison Almeida On August - 10 - 2009 Desenvolvimento/Programação Dicas

    Para quem trabalha com Oracle, as vezes o sistema trava o lock das tabelas por alguma falha operacional ou de programação. Tendo acesso ao usuário SYSTEM você pode rodar essa query e descobrir que sessões estão presas.

    /* Recupera os Lock’s no banco de dados Oracle e quais as sessoes presas */
    select substr(lpad(‘ ‘,abs(loc.block-1)*2)||ses.username,1,30) username, ses.sid, ses.serial#, pro.spid, ses.osuser, ses.machine,
           ses.program, ses.status, ses.module, ses.lockwait, ses.row_wait_obj#, ses.row_wait_file#, ses.row_wait_block#, ses.row_wait_row#,
           vlo.object_id, loc.type, vlo.locked_mode, obj.object_type||’.'||obj.object_name object_name
    from  dba_objects obj,
          v$locked_object vlo,
          v$process pro,
          v$session ses,
          v$lock loc
    where ( loc.block <> 0 or loc.request <> 0 ) and
          ses.sid           = loc.sid and
          pro.addr          = ses.paddr and
          vlo.session_id(+) = ses.sid and
          obj.object_id(+)  = vlo.object_id
    order by loc.id1, loc.id2, loc.sid, loc.block desc, loc.request;

  • Javascript – Como listar os atributos de um objeto
  • Funções de data para Oracle
  • Oracle PL/SQL ORA-00947 Not Enough Values
  • Aeromodelismo – Como iniciar
  • Como resolver o erro ORA-01422
  • Postado por Meison Almeida On August - 10 - 2009 Desenvolvimento/Programação Dicas

    Para fazer um campo em um formulário HTML aceitar somente números pode-se usar o seguinte comando:

     <input type=”text” onkeypress=”if (!isNaN(String.fromCharCode(window.event.keyCode))) return true; else return false;”>

    O Evento onkeypress é ativado toda vez que uma tecla é pressionada dentro do campo texto, caso, dentro do evento retorne-se false, a tecla não será validada e funciona como se não tivesse sido apertada.

    Essa idéia pode ser aplicada a várias utilidades, como aceitar somente letras, números, pontos e arroba para limitar o preenchimento de um campo de e-mail por exemplo. É só validar o código de retorno (window.event.keyCode) que representa a tecla digitada.

    Caso tenham alguma dúvida, por favor me perguntem, se eu souber terei prazer em ajuda-los.

  • Como bloquear a digitação de letras em um INPUT do HTML com JavaScript
  • Plugin Wordpress para facilitar publicação em diretórios/sites de conteúdo
  • Montagem de Fotos – Automática e Online – Para orkut, albuns e afins
  • 3 de Setembro – Dia do Biólogo
  • Britney, Amy Winehouse, Vanessa – Proposital ou ossos do ofício
  • Postado por Meison Almeida On August - 10 - 2009 Desenvolvimento/Programação Dicas

    Muitas vezes não temos acesso a um manual ou guia de referencia do JavaScript, mas precisamos lembrar o nome daquela propriedade, atributo, função do objeto. Para isso é só criar o objeto e usar o script abaixo, boa sorte.

    <script language=”JavaScript”>
    var objeto = document.f.o;
    for(var i = 0; i < objeto.attributes.length; i++){
    if(objeto.attributes[i].specified)
    document.write(objeto.attributes[i].nodeName + ” – ”
    + objeto.attributes[i].nodeValue + “<br>”);
    }
    </script>

    Coloque ele no final do arquivo HTML e substitua o “document.f.o” pela referencia do objeto que deseja descobrir os atributos utilizados. Caso queira ver TODOS os atributos é só retirar o IF que está em itálico.

  • Vários Scripts JavaScript / HTML
  • Browsers para Navegar na Web
  • Como listar os locks no Oracle
  • Caneta eletronica pega a cor que você quiser para escrever
  • Como bloquear a digitação de letras em um INPUT do HTML com JavaScript
  • Postado por Meison Almeida On January - 15 - 2008 Desenvolvimento/Programação

    Inscreva-se aqui

    TAG CLOUD

    VIDEO

    Enter the video embed code here. Remember to change the size to 310 x 250 in the embed code.