Pular para o conteúdo principal

Passar valores nulos para oracle procedures com fluent nhibernate




Algumas vezes criamos procedures em base de dados Oracle que tem parâmetros do tipo Input e são opcionais. E dentro desse parâmetro opcional podemos programar internamente na procedure alguma lógica como por exemplo em campo de data se não receber data especificada utilizar data atual. 
O modo mais lógico de chamar parametro sem especificar valor seria simplesmente passar null, mas ao fazer isto prepare-se para receber uma Exception. :)
A solução nestes casos é então passar o valor DBNull.Value.
Segue exemplo abaixo utilizando drive C# da Oracle com sessão de Fluent Nhibernate :


using (var command = (OracleCommand)Session.Connection.CreateCommand())
{
    command.CommandText = "sp_procedure001";
    command.CommandType = CommandType.StoredProcedure;
    if (inicio == DateTime.MinValue && termino == DateTime.MinValue)
    {
         command.Parameters.Add("pi_dt_inicio", OracleDbType.Date, DBNull.Value, ParameterDirection.Input);
         command.Parameters.Add("pi_dt_termino", OracleDbType.Date, DBNull.Value, ParameterDirection.Input);
     }
     else
     {
          command.Parameters.Add("pi_dt_inicio", OracleDbType.Date, inicio, ParameterDirection.Input);
          command.Parameters.Add("pi_dt_termino", OracleDbType.Date, termino, ParameterDirection.Input);
      }
      command.Parameters.Add("po_qtde_kg", OracleDbType.Double, ParameterDirection.Output);
      command.ExecuteNonQuery();
      double peso;
      double.TryParse(command.Parameters["po_qtde_kg"].Value.ToString().Replace(".", ","), out peso);
      result.Add("peso", peso);
}

Comentários

Postagens mais visitadas deste blog

Dica: Extensão Indentar código VUE Visual Studio Code

Olá Por muitas é necessário um atalho para formatar o seu código fonte no editor de texto. Para formatação de HTML, CSS, JS e afins no visual studio code você pode utilizar o: HTML Snippets Mas esta extensão acima não formata arquivos de template .vue . Para formatar este tipo de arquivos é necessário instalar alguma outra extensão. Entre as que busquei a que faz o serviço da melhor forma atualmente utilizando o atalho alt+shift+f   é o plugin ventur: Vetur Este plugin é muito bom mesmo. Facilitou bastante a formatação de fontes em templates .vue. É isso espero que ajude;)

Migrando repositório TFS para GIT

Chega o momento em que decidimos migrar do TFS para GIT por 'N' motivos e benefícios que esta migração pode trazer. Caso você tenha uma repositório de longa data e queira manter o histórico de checkins, o  git-tfs auxilia nesta tarefa. Uma das minhas formas preferidas para instalar é através do chocolatey . Com o chocolatey instalado em sua máquina basta abrir o powershell em modo admin e digitar: cinst GitTfs No powershell para clonar o repositório TFS para seu repositório git você deve digitar o seguinte comando: git tfs clone http : //meutfs.com $/diretoriotfs c : /diretorio-alvo-clone --branches=all -u=CORP\Usuario -p=****** Para mais opções de comando segue link do github do projeto.

C# :Removendo propriedades nulas ao serializar JSON

Olá Para serializar uma classe em formato JSON em c#,por muitas vezes é utilizado o pacote Newtonsoft . Em alguns momentos há a necessidade de serializar somente as propriedades que estiverem preenchidas no objeto, removendo assim as que estiverem nulas. Para isto você pode utilizar a propriedade  NullValueHandling da classe  JsonSerializerSettings . Segue exemplo: Até a próxima