2013-04-19 17 views
12

Ich mache so etwas wieORA-01745 Fehler beim parametrisierte Abfragen in C# Ausführung

... 
OracleCommand oCommand = new OracleCommand(); 
oConnection.Open(); 
oCommand.Connection = oConnection; 
oCommand.CommandText = "SELECT * FROM employees WHERE user = :User"; 
oCommand.Parameters.AddWithValue(":Name", "Employee1"); 

DbDataReader dbRdr = oCommand.ExecuteReader(); 

dann wirft dies eine Ausnahme:

ORA-01745: ungültige Host/bind Variablenname

EDIT: Verbindungszeichenfolge sieht wie folgt aus:

"Data Source=orcl;Persist Security Info=True;User ID=user_id;Password=pwd;Unicode=True" 

Kein Fehler nach der oConnection.Open();, also nehme ich an, dass meine Verbindungszeichenfolge korrekt ist.

Auf welchem ​​Teil habe ich einen Fehler gemacht?

+0

Die Verbindungszeichenfolge scheint falsch zu sein (der angezeigte Hostname ist möglicherweise falsch). Könnten Sie es in die Frage bringen? –

+0

Dieser Code scheint in Ordnung zu sein. Was ist Ihre Verbindungszeichenfolge? –

+0

@Bahamut, ist das deine echte Frage? weil es keine Ausnahme für diese Abfrage auslösen sollte – Habib

Antwort

20

ORA-01745: ungültige Host/bind Variablenname

Ursache: Ein Doppelpunkt in einer Bindevariable oder INTO Spezifikation, die von einem unpassenden Namen gefolgt wurde, vielleicht ein reserviertes Wort.

Aktion: Ändern Sie den Variablennamen und wiederholen Sie die Operation.

von here

Um zu überprüfen, was reservierte Wörter sind, klicken Sie auf here

+0

Ich verwendete ': User' als Variablennamen. Ich muss die Oracle-Anfragen sorgfältig durchgehen ... Ich sollte das das nächste Mal versuchen. – Bahamut

+3

Ich kann nicht helfen, keinen Kommentar zu völlig nutzlosen Oracle-Fehlermeldungen hinzuzufügen ... Würde es zu sehr weh tun, den Ursachensatz in die Fehlermeldung aufzunehmen? – Rashack

0

Verpackung um eine Verbindung using Block Orakel und liefern die korrekte Connection.

using (OracleConnection con = new OracleConnection(connectionString)) { 
    OracleCommand oCommand = new OracleCommand(queryString, connection); 
    .... 
} 
Verwandte Themen