<p>When trying to enter a SQL query with parameters using the Oracle OLE DB provider I get the following error:</p>

<blockquote>
  <p>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.<br>
  ADDITIONAL INFORMATION:<br>
  Provider cannot derive parameter information and SetParameterInfo has not been called. (Microsoft OLE DB Provider for Oracle) </p>
</blockquote>

<p>I have tried following the suggestion here but don't quite understand what is required:<a href="http://microsoftdw.blogspot.com/2005/11/parameterized-queries-against-oracle.html" rel="noreferrer">Parameterized queries against Oracle</a></p>

<p>Any ideas?</p>

To expand on the link given in the question:
Create a package variable
Double click on the package variable name. (This allows you to access the properties of the variable)
Set the property 'EvaluateAsExpression' to true
Enter the query in the expression builder.
Set the OLE DB source query to SQL Command from Variable
The expression builder can dynamically create expressions using variable to create 'parametised queries'.
So the following 'normal' query:
```
```
select * from book where book.BOOK_ID = ?
```
```
Can be written in the expression builder as:
```
```
"select * from book where book.BOOK_ID = " + @[User::BookID]
```
```
You can then do null handling and data conversion using the expression builder.