Добавить кавычки вокруг значения параметра SQL? - PullRequest
0 голосов
/ 21 мая 2018

Я не уверен, должен ли я добавлять одинарные кавычки '' вокруг параметра SQL, когда это строковое значение, которое уже заполнено данными.Я думаю, что нет, потому что с помощью конструктора OracleParameter он автоматически получит тип данных, измененный на строку.

В частности, я должен делать это: '@c' более @cпри этом: SELECT @c FROM Dual когда @c является строкой, уже помещенной в конструктор OracleParameter?

string calcDateFormat = "Some Data";

try
{
    string sql = "SELECT @c ColumnName FROM Dual";
    // Or should it be this
    string sql = "SELECT '@c' ColumnName FROM Dual";

    using(OracleCommand command = new OracleCommand(sql, this.Connection))
    {
        OracleDataAdapter adapter = new OracleDataAdapter(command);
        adapter.SelectCommand.Parameters.Add(new OracleParameter("@c", OracleDbType.Varchar2, calcDateFormat, ParameterDirection.Output));
        DataSet dataset = new DataSet();
        adapter.Fill(dataset);
        return dataset;
    }
}
catch (OracleException ex)
{
    throw ...
}

// SELECT => 
//        Column: ColumnName
//        Row:    Some Data

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Нет, нет необходимости добавлять кавычки, так как этот код ниже будет работать нормально,

 string sql = "SELECT @c ColumnName FROM Dual";

Причина в том, что если вы напишите '@c', он будет искать соответствующее имя параметра в местеВы объявляете параметры, и они не будут соответствовать запросу.

0 голосов
/ 21 мая 2018

Я думаю, вы можете оставить его как string sql = "SELECT @c FROM Dual"; без одинарных кавычек.По крайней мере, так я пишу свои SQL-запросы на PHP.Однако я не знаю, отличаются ли правила для C # и Oracle.

Ваш лучший шанс ответить на ваш вопрос - попробовать оба метода и посмотреть, что произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...