varchar2 = NULL ????????

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
RODRIGO_PINTO
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 08 Mar 2007 11:52 am
Localização: SP

alguém sabe me dizer porque essa variavel só armazena os valoree definidos quando eu removo algum dos itens abaixo ?? caso contrario ele define como null

Selecionar tudo

ds_linha varchar2; 

ds_linha := (det.IDENTIFICACAO_REGISTRO ||
	 					  det.NUMERO_PAIS ||
						  det.CONTA_CLIENTE ||
						  det.DATA_PAGAMENTO ||
						  det.TIPO_PAGAMENTO ||
						  det.REFERENCIA_CLIENTE ||
						  det.SEQUENCIA ||
						  det.CGC_CPF_BENEFICIARIO ||
						  det.CODIGO_MOEDA ||
						  det.CODIGO_BENEFICIARIO ||
						  det.VALOR_PAGAMENTO ||
						  det.RESERVADO_1 ||
						  det.DESCRICAO_1 ||
						  det.DESCRICAO_2 ||
						  det.DETALHES_TRANSACAO_3 ||
              det.DETALHES_TRANSACAO_4 ||
						  det.TIPO_DOCUMENTO ||
						  det.TIPO_CONTA_CLIENTE ||
						  det.NOME_BENEFICIARIO ||
						  det.ENDERECO_BENEFICIARIO ||
              det.ENDERECO_BENEFICIARIO_LINHA_2 ||
						  det.CIDADE_BENEFICIARIO ||
						  det.ESTADO_BENEFICIARIO ||
						  det.CEP_BENEFICIARIO ||
						  det.TELEFONE_BENEFICIARIO ||
						  det.NUMERO_BANCO_BENEFIC ||
						  det.AGENCIA_BENEFICIARIO ||
						  det.RESERVADO_3 ||
						  det.CONTA_BENEFICIARIO ||
						  --det.RESERVADO_4 ||
						  det.TIPO_CONTA_BENEFICIARIO ||
						  det.ENDERECO_BANCO_BENEFIC ||
              det.ENTIDADE_BANCO_BENEFICIARIO ||
              det.NRO_LOCAL_BCO_BENEF ||
						  det.CIDADE_BANCO_BENEFICIARIO ||
              det.NRO_DPTO_BCO_BENEF ||
						  det.ESTADO_BANCO_BENEFICIARIO ||
						  det.NÚMERO_FAX_BENEFICIARIO ||
						  det.NOTIFICACAO_POR_FAX ||
						  det.DEPARTAMENTO_FAX ||
						  det.CONTA_BENEFIC_CITIBANK ||
						  det.TIPO_CONTA_BENEFIC_CITIBANK ||
						  det.FILIAL_DESTINO ||
						  det.IDENTIFICAO_TITULO ||
						  det.RESERVADO_5 ||
					  det.EMAIL_BENEFICIARIO ||
              det.MAXIMO_PAGTO ||
              det.ATUALIZACAO_TIPO ||
              det.NUMERO_TRANSFERENCIA ||
              det.CHECAGEM_IMPRESSAO /** ||
             det.CHECAGEM_PAGAMENTO ||
			 det.RESERVADO_6
			*/ );
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Qual o tamanho do ds_linha?
quando você remove um campo você disse q funciona normalmente, isso acontece somente pra um determinado de campo ou pra qualquer um?

[]'s
RODRIGO_PINTO
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 08 Mar 2007 11:52 am
Localização: SP

Iaee,

o ds_linha tem aproximandamente 1000 caracteres.
ele funciona corretamente somente quando eu excluo 24 caracteres.



valeww
:-o
Avatar do usuário
TBou
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 136
Registrado em: Qui, 05 Ago 2004 9:33 am
Localização: Campo Grande - MS
Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

tente alterar o tamanho da variavel

Selecionar tudo

ds_linha varchar2(20000); 
[/quote]
RODRIGO_PINTO
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 08 Mar 2007 11:52 am
Localização: SP

não deu certo =/

sabe me dizer como aumento o max_linesize ?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

No SQL*Plus

Selecionar tudo

Set lines 10000
Onde o dez mil é o valor desejado.
Avatar do usuário
TBou
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 136
Registrado em: Qui, 05 Ago 2004 9:33 am
Localização: Campo Grande - MS
Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

mas não eta dando nenhum erro ORA..?
coloque só estes dois parametros comentados na variavel para ver se retorna alguma coisa.
eu acho que o problema não esta sendo o tamanho da variavel.
qual é o Tipo destes dois campos.?

Selecionar tudo

 det.CHECAGEM_PAGAMENTO ||det.RESERVADO_6.
não é boleano ..?
RODRIGO_PINTO
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 08 Mar 2007 11:52 am
Localização: SP

brothers,
nada feito.
acredito q o problema esta no tamanho da variavel embora já tenha definido ela com um tamanha 20x maior...

exemplo:

Selecionar tudo

ds_linha VARCHAR2(20000);

ds_linha := (1||2||3||... 1000);  - Funciona OK
ds_linha := (1||2||3||... 1500); - Define como "NULL"
OBS: umas das variaveis tem 254 caracteres em branco.

valeu a atenção !!!
RODRIGO_PINTO
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 08 Mar 2007 11:52 am
Localização: SP

ok Tiago,

vou verificar já posto aqui..
RODRIGO_PINTO
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 08 Mar 2007 11:52 am
Localização: SP

cara,

Ele nã retorna nenhum erro porque ele Define DS_LINHA como NULL.

TODOS OS CAMPOS SÃO CHAR E NUMBER..
Avatar do usuário
TBou
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 136
Registrado em: Qui, 05 Ago 2004 9:33 am
Localização: Campo Grande - MS
Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

vamos verificar se é problema com a variavel.
tente comentar toda a atribuição e faça este teste

Selecionar tudo

ds_linha := rpad('#',1500,'#');
veja se retorna nulo,

pois normalmente se ultrapassa o tamanho da variavel daria um erro ORA-6502..
como no exemplo abaixo.
se você tentar executar isso da 6502

Selecionar tudo

declare
  v_dado varchar2(1000);
begin  
  v_dado := rpad('#',1500,'#');
end;
mas se mudar para varchar2 de 2000 não dará o erro
RODRIGO_PINTO
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 08 Mar 2007 11:52 am
Localização: SP

otimo teste....

Realmente o problema é com a variavel.

Selecionar tudo

ds_linha varchar2(20000);  ------ vinte mil

ds_linha :=   RPAD('#',900,'#'); ---  funciona OK

ds_linha :=   RPAD('#',1500,'#'); -- ERROR ORA-06502

sabe oque pode ser ?
Avatar do usuário
TBou
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 136
Registrado em: Qui, 05 Ago 2004 9:33 am
Localização: Campo Grande - MS
Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

Caramba....bixo este erro é doido mesmo hein..
cara teria que ver com algum DBA se há algum parameter no banco que define alguma coisa neste sentido pois a variavel esta deficida corretamente....deve ser alguma limitação configuravel do banco, vou ver com alguns conhecidos meus se tem alguma informação.
Avatar do usuário
TBou
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 136
Registrado em: Qui, 05 Ago 2004 9:33 am
Localização: Campo Grande - MS
Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

cara me passa a versão do seu banco de dados.

vou consultar para ver se tem algum parametro.
RODRIGO_PINTO
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 08 Mar 2007 11:52 am
Localização: SP

IAE BROTHER valeu,

A VERSAO DO BANCO É 8.1.7.0
Responder
  • Informação