Usuário com melhor resposta
Erro Oracle

Pergunta
-
Pessoal estou com um baita problema em uma aplicação usando VS2008 C# com Banco de Dados Oracle 10g tenho uma query SQL a qual roda certinho no editor de querys exucutando normalmente mas quando usada no programa C# esse gera um erro que se refere ao tamanho em caracteres do nome de um campo ex: um nome de tabela pode conter no maximo 30 caracteres, meus campos em nenhum momento tem um tamanho desses, o erro que esta me retornando é o seguinte:
-->> ORA-00972: Identifier is too long
Estou gerando a query e carregando uma gridview com os dados usando um DataSet e um DataAdapter na linha onde executo o dataadapter o programa gera o erro, alem disso ja fiz um teste executando um command com um datareader e também gera erro ... sera que o .Net tem alguma limitação ou algum problema ???Minha query contem subquerys onde crio colunas sera que existe alguma limitação creio que não né
O pior que é fiz um teste usando Delphi e a aplicação funciona perfeitamente.
Junior
Respostas
-
Ola
Usei a seguinte string de conexão (Provider=msdaora;Data Source=db;User Id=us;Password=pw;)
E funcionou pelo para essa situação da query com as subquerys ficou OK
Valeu e obrigado pela ajuda.
Abs.
Junior- Marcado como Resposta AndreAlvesLimaModerator quinta-feira, 12 de agosto de 2010 22:36
Todas as Respostas
-
Junior,
Pelo que eu vi, existe um limite de 30 caracteres para nome de identificadores no Oracle.
Você colocou um alias para todas as suas subqueries?
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono) -
Ola
Sim eu coloquei um alias para cada subquery sim ... o pior é que no editor de querys do Oracle a mesma query é executada sem problemas mas quando coloco a mesma para ser executada dentro do programa o erro ocorre. Fora esse problema de limite de caracteres para o nome da coluna existe mais alguma coisa ... e o mais intrigante que a mesma query sedo coloca em um programa Delphi ou VB 6 aqui roda sem problemas sera algum bug no VS
Junior -
Você está usando qual provider ADO.NET para executar a query?
At.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono) -
-
Tente rodar o sql usando o oracle client:
// cria o factory do oracle... DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OracleClient"); // cria a conexão... DbConnection connection = factory.CreateConnection(); connection.ConnectionString = "Password=pw;Persist Security Info=True;User ID=us;Data Source=bd"; // cria o command... DbCommand command = factory.CreateCommand(); command.Connection = connection; command.CommandText = @"SELECT XXX"; // cria o dataadapter... DbDataAdapter adapter = factory.CreateDataAdapter(); adapter.SelectCommand = command; // preenche o dataset... DataSet dataSet = new DataSet(); adapter.Fill(dataSet);
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono) -
Ola
Usei a seguinte string de conexão (Provider=msdaora;Data Source=db;User Id=us;Password=pw;)
E funcionou pelo para essa situação da query com as subquerys ficou OK
Valeu e obrigado pela ajuda.
Abs.
Junior- Marcado como Resposta AndreAlvesLimaModerator quinta-feira, 12 de agosto de 2010 22:36