ODAC для Entity Framework, выводящий искаженный SQL? - PullRequest
3 голосов
/ 15 декабря 2011

Я мигрировал систему из MS SQL в Oracle, и до решения этой проблемы более или менее без трудностей работал.

Сообщение об ошибке, которое я получаю от оракула:

ORA-06550: строка 4, столбец 54: PL / SQL: ORA-00926: отсутствует ключевое слово VALUES ORA-06550: строка 4, столбец 1: PL / SQL: инструкция SQL игнорируется

происходит толькокогда я делаю сложную вставку / обновление.Таким образом, несколько новых вложенных сущностей все фиксируются в одном вызове .SaveChanges.Мои простые операторы INSERT для регистрации отлично работают.

Я совершенно незнаком с оракулом и просто изучаю веревки, но это сообщение об ошибке, похоже, указывает на то, что SQL, который генерируется Entity Framework, искажен.Я искал в Интернете, но не смог найти никого, кто сталкивался с этой проблемой.

Я работаю на VS2010, .NET4 и новейшем 32-битном ODAC 11.2.0.2.50Бета-версия 3

Обычно с MS SQL в этом случае я запускаю профилировщик SQL и смотрю, какой запрос отправляло мое приложение, чтобы лучше понять проблему, но мой оракул dbasговорят, что для оракула такого инструмента не существует.

Кто-нибудь сталкивался с чем-то подобным?

С уважением, Крис

1 Ответ

2 голосов
/ 04 января 2012

Мне удалось решить эту проблему в случае, если кто-то еще сталкивался с этим - я писал в две таблицы, которые содержали только один столбец ID.Сгенерированный P / SQL для этого по какой-то причине записывал

INSERT INTO "TABLE" значения по умолчанию
, что, насколько я могу судить, не является допустимым утверждением оракула.Чтобы решить это сейчас, я просто добавил столбец META, чтобы мой edmx выбрал второй столбец, и теперь он правильно генерирует оператор.
...