2012-02-14 4 views
5

Tôi có hai bảng có một cột có cùng tên với độ dài tối đa là 30. khi tôi truy vấn nó trong linq với sự tham gia của hai bảng này SQL được tạo thực tế (khá lớn bằng cách này) sử dụng từ khóa "AS" để phân biệt giữa chúng, gọi chúng là {long_column_name} 1 và {long_column_name} 2.Khi sử dụng Entity Framwork 4.1 cho Oracle, tên cột dài tạo ra lỗi

khi điều đó xảy ra, tên bí danh thực sự ở độ dài 31 gây ra lỗi ORA-00972: số nhận dạng quá dài đối với tên bí danh!

điều này rõ ràng là một loại lỗi trong quy trình tạo SQL.

có ai biết giải pháp khác không? vì tôi không thể đổi tên các cột, những gì tôi làm bây giờ là tạo hai khung nhìn không có các cột này, nhưng đây không phải là giải pháp lý tưởng.

+0

Bạn có thể đăng một ví dụ về câu lệnh linq của bạn đang tạo truy vấn có vấn đề không? Những gì tôi đang tự hỏi là nếu các tên cột dài nằm trong lựa chọn, mệnh đề tham gia, vv –

+0

vui nếu điều đó đến từ MS. Họ nên làm một chất nền của colname || num. – tbone

+0

bạn đã thử hỗ trợ khung công tác odp.net w/entity của Oracle chưa? Tôi chưa có, nhưng hãy xem tại đây: http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html – tbone

Trả lời

0

Dường như với tôi, bạn gần như đã có giải pháp mà tôi sẽ đề xuất. Thay vì tạo chế độ xem bỏ qua các cột, hãy tạo chế độ xem có các cột, nhưng sử dụng chế độ xem để đổi tên các cột đó thành một cái gì đó ngắn hơn.

Hy vọng điều đó sẽ hữu ích.

+0

Cảm ơn sự giúp đỡ. –

+0

Tôi đã kết thúc bằng cách đơn giản hóa truy vấn. Nó là hợp lý cho truy vấn này, tôi nghĩ rằng giải pháp của bạn cũng nên làm việc. –

0

Here là diễn đàn Nhà cung cấp dữ liệu Oracle có câu hỏi phù hợp. Nó được xác nhận trong liên kết là một lỗi nội bộ mà họ đang làm việc. Bây giờ, họ nói đổi tên cột trong bảng, đó là ít hơn so với mong muốn cho hầu hết các kịch bản. Tôi sẽ cố gắng ánh xạ đến chế độ xem có các cột được đổi tên ngắn hơn