Oracle - замена & на OEM_sqlplus_input_finished в запросе выбора - PullRequest
0 голосов
/ 19 августа 2011
select * from tableName where somecode = '$$$$$$$&8Y~$$$$'

когда я запускал этот запрос в SQLPlus Worksheet, я получаю вывод, подобный следующему:

Введите значение для 8y: old 2: And somecode = '$$$$$$$ & 8Y~ $$$$ ') new 2: And somecode =' $$$$$$$ OEM_sqlplus_input_finished ~ $$$$ ')

нет выбранных строк

Мой вопрос, если этот запрос выполняется как он есть из приложения ASP.NET с использованием OracleConnection и OracleCommand (тип команды в виде текста), будет ли он выполнен как запрос 1 или 2?

1. select * from tableName where somecode = '$$$$$$$&8Y~$$$$'
2. select * from tableName where somecode = '$$$$$$$OEM_sqlplus_input_finished~$$$$'

Если позднее это так,как отключить замену параметров таким образом только для текущего сеанса OracleConnection (вернуться к тому, что было после закрытия соединения)?

(Это старое приложение .NET 1.1, поэтому используются OracleConnection и OracleCommand)

1 Ответ

1 голос
/ 20 августа 2011

Замена переменных, начинающихся с амперсанда (&), - это функциональность, предоставляемая SQL * plus.Это ни SQL, ни PL / SQL.SQL Developer реализует большинство этих расширений SQL * plus.

Итак, в вашем .NET-приложении амперсанд не имеет особого значения.

Вы также можете отключить его в SQL * plus и SQLРазработчик, выполнив:

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