utilizar query_data_source_name formatado com datas

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
DrJ
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Ter, 10 Mar 2015 2:01 pm

Carissimos experts

Este é o meu segundo post de dúvidas e espero cativar a vossa atenção . . .

Em oracle forms builder 9.0, pretendo criar um bloco para que liste de forma dinamica codigos de origem bem diferentes. . .

Para isso, costumo usar o set_block_property('bloco_XPTO', query_data_source_name, 'v_sql') e não tenho tido dificuldades, no entanto, pretendo que a script v_sql tenha incluido datas de um item do bloco preenchido pelo utilizador em formato dd/mm/yyyy ao qual concateno à string v_sql. pex, ver todos os documentos com data superior a 01/01/2015, mas não há meio de acertar com as pelicas.

Se o item :bloco_xpto.inserir_data estiver do tipo char e ao executar o form eu colocar em data o valor "15.01.01", este codigo funciona:

Selecionar tudo

v_sql:='select * from dual where dta_documento>'''||:bloco_xpto.inserir_data||''')';
No entanto, eu queria que o utlizador digitasse o valor no formato "01/01/2015" e aqui é que dá problema. . . fiz muita tentativa e não dá para postar tudo aqui mas vou postar a ultima que será algo do gênero:

Selecionar tudo

v_sql:='select * from dual where dta_documento>to_date('''||to_char(:bloco_xpto.inserir_data,'dd/mm/yyyy')||''',''dd/mm/yyyy'')';

Bem sei que poderia usar umas variáveis auxiliares e converter o valor do tipo date em char e problema ultrapassado, mas para ficar bem será integrar tudo no v_sql, pelo que peço a V/ ajuda. . .

Obg
J
tora34
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 108
Registrado em: Qua, 12 Nov 2008 6:01 pm
Localização: Campo Mourão PR
Renato Pasquini
Oracle Developer

Boa tarde,

se você realmente quer definir sua query statment concatenando o valor de um item do tipo data a uma string, a última opção é a mais indicada.

Após setar a propriedade no bloco, tente consultar esta propriedade para identificar como o forms interpretou (utilizando get_block_property).

Espero ter ajudado..
DrJ
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Ter, 10 Mar 2015 2:01 pm

Boas Renato,

Agradeço a sua dica deu muita ajuda. não conhecia o comando get_block_property. É mesmo util.. .. . obg

Entretanto, após muitas tentativas consegui uma solução que só partilho agora, porque não me lembrei anteriormente.

Selecionar tudo

v_sql:='(select col1,col2 from documentos where dta_entrada>'''||to_char(:text_item4,'yy.mm.dd')||''')';  
J
Responder
  • Informação
  • Quem está online

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