Pular para o conteúdo
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #76440
    landim
    Participante

      Salve pessoal.

      Meu nome é Rafael, e acabei de encontrar esse forum meio que numa procura desesperada 🙁 , já que nos foruns de desenvolvedores C# que entro, ninguem conseguiu me ajudar, e me falaram que um grupo de oracle seria a melhor opção…
      É o seguinte, estou desenvolvendo uma aplicação em C# e este sistema constroi as querys de insert, update e delete em tempo de execução, para ganhar tempo no processo de desenvolvimento.
      O problema acontece quando eu executo a query, que é retornando o erro “ORA-00932: tipos de dados inconsistentes”, que acredito que o problema esteja acontecendo na hora em que o C# monta os parametros, pois em linha de comando os commando (Insert / Update) executa ok.
      A função para construir os paramentros está feita desta maneira:


      private static DbType RetornaTipos(string tipo)
      {
      DbType tipoSQL = new DbType();

      switch (tipo)
      {
      case "number":
      tipoSQL = DbType.Decimal;
      break;
      case "varchar":
      case "varchar2":
      case "nvarchar":
      tipoSQL = DbType.AnsiString;
      break;
      case "datetime":
      tipoSQL = DbType.DateTime;
      break;
      case "date":
      tipoSQL = DbType.Date;
      break;
      default:
      tipoSQL = DbType.AnsiString;
      break;
      }
      return tipoSQL;
      }

      Acredito que o problema esteja acontecendo na formatação de dados (que estou usando DbType.Decimal quando o atributo for Number, alguem sabe me dizer se isto está correto?

      Pessoal, valeu nessa primeira ajuda.
      Gostei de saber desse forum, e acredito que vou participar + daqui em diante.

      #76452
      rosterne
      Participante

        Olha,

        depende da versão do Oracle que você está usando. Na versão 9, não existe campo decimal, ou seja, é usando o campo interger com um escala precisa.

        ex: salario number (4,2)

        Já na versão 10, existe campos binary_float, decimal, numeric etc.

        Vamos lá, os tipo que vcocê pode usar na sua função:

        versão 9: number, varchar2, date ou timestamp.

        Versão 10: number ou numeric ou float ou decimal, varchar2, date ou timestamp.

        Abraço.

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.
      plugins premium WordPress