Benutzer mit den meisten Antworten
Oracle LONG RAW

Frage
-
Hallo!
Ich habe ein Schnittstellen-Problem.
Ich möchte von einer Oracle-Datenbank (11.g) Spalten des Typs LONG RAW in eine DataTable einlesen.
DataTable dt = new DataTable(); var conn = new Oracle.ManagedDataAccess.Client.OracleConnection(zConnection); // Datenbankverbindung asynchron aufbauen await conn.OpenAsync(ct); // Auf die SQL Verbindung warten var cmd = new Oracle.ManagedDataAccess.Client.OracleCommand(zSQL, conn); // SQL-Command initalisieren var reader = await cmd.ExecuteReaderAsync(CommandBehavior.CloseConnection, ct); // SQL-DataReader initalisieren if (ct.IsCancellationRequested) return null; // Indikator, Ladevorgang abgebrochen setzen dt.Load(reader); // Daten in eine DataTable einlesen conn.Close(); // Verbindung schließen dt.TableName = zTabName; // Tabellen-Name übernehmen return dt; // (Gefüllte) DataTable zurückgeben.
Im SQL-Statment wird nur eine Spalte (welche vom Typ LONG RAW ist) definiert:
SELECT T.BEN_PASSWD_SIK as BINAER FROM TUS_BENUTZER T WHERE T.BEN_PASSWD_SIK is not NULL
Für "alle" Oracle-Datentypen funktioniert obige Methode. Für LONG RAW Spalten wird mir aber immer ein leres byte-Array (Byte[0]) zurückgegeben.
Im Oracle SQL Developer sieht man aber, dass Daten vorhanden sind!
Ich wüßte jetzt aber nicht, wo ich da ansetzen könnte! :-(
Hat jemand einen Tipp?
Fred.
Noch ein Hinweis: Mit RAW (wie mit allen anderen) geht es!
- Bearbeitet perlfred Mittwoch, 29. März 2017 13:49
Antworten
-
Hallo Fred,
wenn ich die Doku richtig verstehe, bedürfen Abfragen auf LONG und LONG RAW Spalten einer geänderten Voreinstellung.
cmd.InitialLONGFetchSize = -1;
Siehe dazu bspw.:
C# - How to get oracle long raw type value
Obtaining LONG and LONG RAW Data
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert perlfred Donnerstag, 30. März 2017 05:56
Alle Antworten
-
Hallo Fred,
wenn ich die Doku richtig verstehe, bedürfen Abfragen auf LONG und LONG RAW Spalten einer geänderten Voreinstellung.
cmd.InitialLONGFetchSize = -1;
Siehe dazu bspw.:
C# - How to get oracle long raw type value
Obtaining LONG and LONG RAW Data
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert perlfred Donnerstag, 30. März 2017 05:56