duvida no declare

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
heraldoaraujo
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Dom, 19 Fev 2012 12:10 pm

Boa tarde turma, estou com a seguinte dúvida...
Suponha que eu declare a seguinte variável no código abaixo:

Selecionar tudo

declare
inserir_tupla varchar2(100);
begin
inserir_tupla := 'um texto simples';
end; 
Nesta situação eu declarei uma variável de tamanho 100 e minha string atual contém 16 caracteres, minha dúvida é.
O Oracle vai alocar espaço de 100 ou 16 na memória?
Pois nesta situação estou declarando a variável em tempo de compilação, e inserindo o valor em tempo de execução correto?
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Sim, o tipo varchar2 aloca apenas a quantidade utilizada.
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

Essa é a diferença entre CHAR e VARCHAR, se fosse CHAR, ele alocaria na memória a quantidade de espaço que você declarou, já o VARCHAR ele aloca somente o tanto que está sendo usado.
Avatar do usuário
heraldoaraujo
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Dom, 19 Fev 2012 12:10 pm

Obrigado pelo esclarecimento galera.
Pensei que o mecanismo de armazenamento poderia mudar da forma que tratamos varchar2 ao criar uma tabela e em um bloco anônimo.
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

Pessoal,

Para esclarecer melhor a dúvida deste tópico sugiro a leitura do artigo http://www.fabioprado.net/2011/08/qual- ... -char.html.

[]s
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes