2012-02-14 8 views
5

Tengo dos tablas que tienen una columna con el mismo nombre en la longitud máxima de 30. cuando lo consulto en linq con una combinación de estas dos tablas la el SQL generado real (bastante enorme por cierto) usa la palabra clave "AS" para diferenciarlos, llamándolos {long_column_name} 1 y {long_column_name} 2.Al utilizar Entity Framwork 4.1 para Oracle, los nombres largos de columna crean errores

cuando eso sucede, el nombre del alias tiene realmente una longitud de 31, lo que causa el error ORA-00972: el identificador es demasiado largo para el nombre del alias.

esto es obviamente algún tipo de error en el proceso de generación de SQL.

¿Alguien sabe de una solución? porque no puedo cambiar el nombre de las columnas, lo que hago ahora es crear dos vistas sin estas columnas, pero esta no es una solución ideal.

+0

¿Puede publicar un ejemplo de la declaración linq que está generando la consulta problemática? Lo que me pregunto es si los nombres largos de las columnas están en la cláusula select, the join, etc. –

+0

gracioso si eso viene de MS. Deberían hacer un substr de colname || num. – tbone

+0

¿Has probado el soporte odp.net w/entity framework de Oracle? No lo he hecho, pero mira aquí: http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html – tbone

Respuesta

0

Me parece que casi tiene la solución que iba a sugerir. En lugar de crear una vista que omita las columnas, cree una vista que tenga las columnas, pero use la vista para cambiar el nombre de esas columnas a algo más corto.

Espero que ayude.

+0

Gracias por la ayuda. –

+0

Terminé haciéndolo con la simplificación de la consulta. Fue razonable para esta consulta, creo que su solución también debería funcionar. –

0

Here es el foro Oracle Data Provider con una pregunta coincidente. Se confirma en el enlace que es un error interno en el que están trabajando. Por ahora, dicen cambiar el nombre de la columna en la tabla, que es menos que deseable para la mayoría de los escenarios. Intentaré asignar a una vista con las columnas más cortas renombradas

Cuestiones relacionadas