SQL Server Fehler "Ungültiger Versuch GetBytes auf Spalte"
Wenig hintergrund:
Kürzlich habe ich ein Upgrade "SQL server management studio 2005" durch den Einsatz der patch von MS link
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7218
So, ich kann auf die vor kurzem gebaute DB-server sind in der SQL Server 2008-version.
Ich habe eine server-Verknüpfung auf der 2008 Db-server die Verbindung zu einer Oracle-DB. früher wusste ich nicht, erlebte aber nach der Anwendung der management studio-patch, wenn ich eine Abfrage ausführen, die mithilfe der server-link, wie unten
select top 10 * from [server]..DBNAME.TABLENAME
ODER
select * from [server]..DBNAME.TABLENAME
Bekomme ich die Fehlermeldung
Fehler beim ausführen der Stapelverarbeitung. Fehlermeldung ist: Ungültiges
Versuch GetBytes auf Spalte colname'. Die GetBytes
Funktion kann nur verwendet werden, die auf Spalten vom Typ Text, NText-oder Image."
Aber wenn ich die Abfrage ändern, um
select top 10 col1,col2 from [server]..DBNAME.TABLENAME
ODER
select distinct col1, col2, col3 from [server]..DBNAME.TABLENAME
Es läuft gut, ohne Frage.
Ich bin nicht sicher, aber meine Meinung ist es ist etwas zu tun mit Management Studio
... irgendeine Einstellung in Management Studio
wohl dieses Problem verursacht.
Hat jemand eine Idee, Oder haben angesichts dieses Problem vor. Können Sie bitte helfen.
EDIT: Wenn ich das problem Abfrage mit sqlcmd
es gut läuft.
Dank.
- Wenn Sie denken, es ist management studio, führen Sie die obige Abfrage über SQLCMD. msdn.microsoft.com/en-us/library/ms162773.aspx sqlcmd -S servername -d master -Q "select * from [server]..DBNAME.TABLENAME"
- ja habe ich schon versucht und das ist, warum erwähnt wird, dass das Problem mit SSMS.
- Scheint die logische Antwort ist zu stoppen, mit SELECT *?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich einen Fehler vor, wenn die Verwendung von SQL 2005 management studio eine SQL 2008-server und Abfragen der Tabelle mit dem DATUM datetype in es.
Im wesentlichen bedeutet es, dass SSMS nicht verstehen, einer der Spalte Datentypen kommen darauf zurück. Sie sagte, WÄHLEN Sie * funktioniert nicht, aber SELECT col1, col2, col3 führt. Wie viele Spalten in der Tabelle? Versuchen Sie die Erweiterung der select-Spalte durch die Spalte, bis Sie eins finden, das ist verwirrend Management Studio . Dann können Sie die BESETZUNG in der select-Klausel, um Sie in etwas verwandeln Management Studio nicht verstehen.
Was ist wohl hier passiert ist, dass einer der Spalten zurückgegeben werden, die von SQL 2008 als DATE, TIME, DATETIME2 oder eine der anderen neuen SQL-2008-Daten-Typen. Während das Management Studio 2005 können Sie eine Verbindung zu einem SQL 2008 server, es nicht verstehen, die neue Datentypen und nicht Sie anzuzeigen.
Dies ist eine Einschränkung der Management Studio.
sqlcmd
bekomme ich keine Fehler. Wenn Sie woud zu dem geworden, was Sie sagen, dann hätte ich Fehler mithilfe von sqlcmd als gut ... richtig?als @GilaMonster angegeben, das ist die Ursache des Problems.
Wieder, das problem ist mit SSMS undnicht allgemein, wie wenn ich die Abfrage ausführen mit
sqlcmd
wiees läuft wunderbar, ohne Fehler.
Lösung:
Unistall
SSMS 2005
und installierenSQL Server 2008 R2 Management Studio
die werden das Problem beheben.Ich eine Lösung gefunden habe. Bitte versuchen Sie, die Abfrage der sql2008 Tabelle mit dem Feld "DATUM" auf diese Weise (vorausgesetzt, dass feld3 ist ein Feld "DATUM"):