Не знаком с Linq, но меня немного смущает вопрос о том, где вы выполняете запрос - просто вставляете сгенерированный код в SQL * Plus, работающий с двумя базами данных, где это поведение можно хотя бы объяснить?
Если вы делаете это в SQL * Plus, выполните show escape
в каждой среде;Я подозреваю, что 9i сообщит escape "\" (hex 5c)
, в то время как 10g сообщит escape off
.Это может указывать на то, что обработка экранирования ранее была настроена в экземпляре 9i, но не в (предположительно более позднем) 10g.
Если что-то из этого оказалось актуальным, попробуйте выполнить set escape \
в сеансе 10g и попробуйте версию \\
снова.А в 9i попробуйте сделать escape off
и попробуйте там версию \
.Теперь оба должны работать.
Предполагая, что вы все еще со мной, следующий вопрос заключается в том, почему 9i имеет такую настройку;вероятно, есть файл login.sql или glogin.sql, который устанавливает его автоматически.Вы можете удалить это, если это не повлияет на что-либо еще, чтобы сгенерированный код мог работать без изменений.
Не думаю, что что-то из этого будет уместно, если высобираюсь выполнить код другим способом;не уверен, что вы просто тестируете и отлаживаете сгенерированный код в SQL * Plus и, в конце концов, будете выполнять его в другом месте (опять же, без знания Linq), в этом случае это может быть временной проблемой в любом случае.
IЯ также не уверен, что вы на самом деле избегаете ...