Ich denke, ich kenne die Lösung, aber ich möchte eine zweite Meinung bekommen.OLEDB schneidet Oracle LONG Datentyp auf 100 Zeichen ab
Ich habe eine Funktion namens Get-Data, die eine DataTable aus einer Oracle-Datenbank abruft und zurückgibt. Da Powershell SUPER hilfreich ist, gibt die Funktion, wenn nur ein Datensatz von Oracle zurückgegeben wird, eine DataRow anstelle einer DataTable zurück.
Wenn dies geschieht und eine der Spalten ein LONG DataType ist, wird das Feld auf 100 Zeichen gekürzt.
Die offensichtliche Lösung ist, zurückzukehren, $ dt und ändern Sie meinen Code, um damit umzugehen. Wie gesagt, ich wollte eine zweite Meinung.
Get-Daten:
function Get-Data
{
[Cmdletbinding()]
Param
(
[Parameter(Position=0,Mandatory=$True)]$Conn,
[Parameter(Position=1,Mandatory=$True)]$sql
)
#Open the connection to the DB if closed
if($Conn.state -eq 'Closed')
{
$Conn.open()
}
#Create objects for querying the DB
$readcmd = New-Object system.Data.OleDb.OleDbCommand($sql,$Conn)
$readcmd.CommandTimeout = '300'
$da = New-Object system.Data.OleDb.OleDbDataAdapter($readcmd)
$dt = New-Object system.Data.datatable
#Query the DB and fill the DataTabe with records
[void]$da.fill($dt)
return $dt
}
Ich habe versucht, die Rückkehr, dt ändern, ohne Erfolg. Das Problem bleibt bestehen, solange nur ein Datensatz zurückgegeben wird. –