2008-09-12 3 views
7

Beim Versuch, eine SQL-Abfrage mit Parametern mit dem Oracle OLE DB-Provider mir die folgenden Fehlermeldung ein:Wie lösen Sie Probleme bei der Zuordnung von SQL-Abfrageparametern bei Verwendung des Oracle OLE DB-Anbieters?

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)

ich hier nach dem Vorschlag versucht, aber nicht ganz verstehen, was erforderlich ist: Parameterized queries against Oracle

Irgendwelche Ideen?

Antwort

17

auf den Link in der Frage gegeben erweitern:

  1. Erstellen Sie ein Paket mit variabler
  2. Klicken Sie doppelt auf den Variablennamen Paket. (Dadurch können Sie auf die Eigenschaften der Variablen zugreifen.)
  3. Legen Sie die Eigenschaft 'EvaluateAsExpression' auf "true" fest
  4. Geben Sie die Abfrage in den Ausdrucksgenerator ein.
  5. die OLE DB-Quelle Abfrage auf SQL-Befehlssatz von Variable

Expression Builder können mit variablen dynamisch Ausdrücke erstellen 'Abfragen parametised' zu erstellen.
Also folgendes 'normal' query:

select * from book where book.BOOK_ID = ? 

Kann als im Ausdruckseditor geschrieben werden:

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

können Sie dann tun null Handhabung und Datenkonvertierung, die Expression Builder verwenden.

+0

Wenn Sie eine Zeichenfolgenvariable verwenden, müssen Sie sie mit einfachen Anführungszeichen " " umgeben. Wählen Sie * aus dem Buch book.BOOK_AUTHOR = '"+ @ [User :: AuthorName] +' '" – WiredIn

Verwandte Themen