Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mikestu

tamanho de uma coluna (PL/SQL)

Recommended Posts

viva malta,

 

estou com um problema ao querer que uma coluna esteja dentro de um tamanho considerado para posteriormente inserir na bd, o codigo é o seguinte

 

DECLARE

var1 tabela1.coluna1%TYPE;

var2 tabela1.coluna2%TYPE;

BEGIN

var1 := TO_CHAR('zzz');

var2 := TO_CHAR('1234');

 

 

IF (LENGTH(TO_CHAR(var2)) BETWEEN 10 AND 40) THEN

INSERT INTO tabela1(coluna1, coluna2)

VALUES(TO_CHAR(var1), TO_CHAR(var2));

ELSE

INSERT INTO tabela2(coluna1, coluna2, coluna3, coluna4, colun5)

VALUES(sequencia.NEXTVAL, TO_CHAR('texto1'), TO_DATE(SYSDATE),

TO_CHAR('texto2'), TO_CHAR('texto3'));

END IF;

END;

 

o meu problema é na condição do if...then...else o que esta a acontecer é que independentemente do tamanho de "var2" corre sempre o primeiro insert, ou seja, faz o insert na tabela1.

 

desde ja agradeço a vossa ajuda

http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

ad augusta per angusta

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) para saber o tamanho da coluna você pode usar a tabela dba_tab_columns

 

select data_length
from   dba_tab_columns
where  table_name = 'DUAL'
and	column_name = 'DUMMY'

2) O if pode ser trocado pelo tratamento da seguinte exceção

 

...
begin
  insert into ....
exception
  when value_error then
	  null;
  when others then
	  raise;
end;
...

o problema é que value erro poderia ser em outra coluna que não a

de string , poderia ser uma tentativa de por um valor 100 numa coluna numerica de

2(number(2)).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.