ORA-01036: недопустимое имя / номер переменной встречается на удаленном сервере, но не на локальном ПК, для вставки Dapper - PullRequest
0 голосов
/ 28 августа 2018

У меня есть метод C #, который выполняет InsertAsync для базы данных Oracle, доступ к которой осуществляется с помощью Dapper ORM . Эта функция успешна при запуске на моем локальном ПК (и на компьютерах других коллег), но когда код был передан на сервер разработки, InsertAsync не удалось с Oracle Exception ORA-01036: illegal variable name/number. База данных Oracle находится на удаленном сервере разработки, поэтому в обоих случаях осуществляется доступ к одной и той же базе данных; единственное различие заключается в том, работает ли код на сервере или на локальном ПК.

Когда код был отправлен на сервер QA, который обращается к базе данных QA, исключение Oracle не произошло! Один и тот же код работает на серверах dev и QA.

Я искал Stack Overflow для этой проблемы, но не видел никого другого с проблемой, что код работает локально, но не удаленно на одном сервере, но работает удаленно на другом сервере.

Это код; запись в журнале ошибок с сервера указывает, что исключение происходит в строке с InsertAsync

private async Task InsertAsync(T item, IDbTransaction transaction = null)
{
    await _connection.InsertAsync(item, transaction ?? _transaction);
}

Этот метод находится в классе, который реализует функции Dapper, где класс начинается следующим образом:

public class DapperClass<T> : IDapperClass<T> where T : class
{
    private readonly IDbConnection _connection;
    private readonly IDbTransaction _transaction;
    private readonly ILogUnitOfWork _loggingUow;

    public DapperClass(IDbConnection connection, ILogUnitOfWork logUow)
    {
        _connection = connection;
        _logUow = logUow;
    }

    public DapperClass(IDbTransaction transaction, ILogUnitOfWork logUow)
    {
        _transaction = transaction;
        _connection = _transaction.Connection;
        _logUow = logUow;

Я озадачен тем, почему код будет успешным на локальном ПК, но не на удаленном сервере разработки, но на удаленном сервере QA. Это определенно один и тот же код на сервере dev и QA, и я дважды проверил, что на локальном ПК я запускаю обновленную ветку dev, так что это тот же код на локальном ПК и сервере dev. Есть идеи, какое направление исследовать?

...