Datenbankabfrage Powershell
Ich versuche auf eine Datenbank zuzugreifen, was auch soweit klappt.
Jedoch möchte ich gerne alle Tabellen listen, die sich in der Datenbank befinden. Es wird mir aber immer nur eine Tabelle relativ weit unten ausgegeben, obwohl eine Unmenge an Tabellen existieren.
Kann mir jemand helfen meinen Fehler zu finden?
Jedoch möchte ich gerne alle Tabellen listen, die sich in der Datenbank befinden. Es wird mir aber immer nur eine Tabelle relativ weit unten ausgegeben, obwohl eine Unmenge an Tabellen existieren.
Kann mir jemand helfen meinen Fehler zu finden?
$ora_server = "testserver"
$ora_user = "testuser"
$ora_pass = "testpasswort"
$ora_sid = "TATTEST"
[System.Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient")
$connectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=$ora_server)(Port=1523)))
(CONNECT_DATA=(SID=$ora_sid)));User ID=$ora_user;Password=$ora_pass"
$connection = New-Object System.Data.OracleClient.OracleConnection($connectionString)
$queryString = "SELECT table_name FROM ALL_TABLES"
$command = new-Object System.Data.OracleClient.OracleCommand($queryString, $connection)
$connection.Open()
$entries = $command.ExecuteScalar()
$connection.Close()
write-host $entries
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 343764
Url: https://administrator.de/contentid/343764
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
3 Kommentare
Neuester Kommentar
Ich kenne mich mit Oracle nicht aus, aber dem Namen nach ist ExecuteScalar nicht die richtige Methode.
Wenn Sie das tut, was der Name sagt, gibt die einen Scalar Wert zurück, also einen einzigen Wert.
Du willst aber mehrere Datensätze haben.
Es gibt sicherlich auch eine Execute?????? Methode, die mehr als einen Wert zurückgeben kann.
Wenn Sie das tut, was der Name sagt, gibt die einen Scalar Wert zurück, also einen einzigen Wert.
Du willst aber mehrere Datensätze haben.
Es gibt sicherlich auch eine Execute?????? Methode, die mehr als einen Wert zurückgeben kann.
Hi,
schau mal OracleCommand-Klasse
Du wirst Dir einen Reader liefern lassen und diesen dann auslesen müssen.
E.
schau mal OracleCommand-Klasse
ExecuteScalar()
Executes the query, and returns the first column of the first row in the result set returned by the query as a .NET Framework data type. Extra columns or rows are ignored.
Executes the query, and returns the first column of the first row in the result set returned by the query as a .NET Framework data type. Extra columns or rows are ignored.
Du wirst Dir einen Reader liefern lassen und diesen dann auslesen müssen.
ExecuteReader()
Sends the CommandText to the Connection and builds an OracleDataReader.
Sends the CommandText to the Connection and builds an OracleDataReader.
E.
Für ExecuteReader() dann bspw. so
Gruß
#......
$tables = @()
$reader = $command.ExecuteReader()
while($reader.Read()){
$tables += $reader.GetValue(0)
}
$reader.Close()
$tables