2008-09-12 3 views
7

При попытке ввода запроса SQL с параметрами при помощи поставщика OLE DB Oracle Я получаю следующее сообщение об ошибке:Как решить проблемы с отображением параметров запроса SQL при использовании Oracle OLE DB?

Parameters cannot be extracted from the SQL command. The provider might not help to parse parameter information from the command. In that case, use the "SQL command from variable" access mode, in which the entire SQL command is stored in a variable.
ADDITIONAL INFORMATION:
Provider cannot derive parameter information and SetParameterInfo has not been called. (Microsoft OLE DB Provider for Oracle)

Я попробовал следующее предложение здесь, но не совсем понимаю, что требуется: Parameterized queries against Oracle

Любые идеи?

ответ

17

Для расширения по ссылке, приведенной в вопросе:

  1. Создание пакета переменной
  2. Двойной щелчок по имени переменной пакета. (Это позволяет вам получить доступ к свойствам переменной)
  3. Установите свойство «EvaluateAsExpression» в значение true
  4. Введите запрос в построитель выражений.
  5. указан исходный запрос OLE DB для SQL Command с переменной

Выражения строителя может динамически создавать выражения, используя переменную для создания 'parametised запросов.
Так что следующий «нормальный» запрос:

select * from book where book.BOOK_ID = ? 

Может быть записан в редакторе выражений, как:

"select * from book where book.BOOK_ID = " + @[User::BookID] 

Вы можете сделать нулевую обработку и преобразование данных, используя построитель выражений.

+0

Если вы используете строковую переменную, вам необходимо окружить ее одинарными кавычками « » выберите * из книги, где book.BOOK_AUTHOR = '"+ @ [User :: AuthorName] +"' " – WiredIn 2014-12-17 23:16:03