Я думаю, что знаю это решение, но я хотел бы получить второе мнение.OLEDB обрезает Oracle LONG тип данных до 100 символов
У меня есть функция Get-Data, которая извлекает и возвращает DataTable из базы данных Oracle. Теперь из-за того, что Powershell является SUPER полезным, когда из Oracle возвращается только одна запись, функция возвращает DataRow вместо DataTable.
Когда это происходит, и один из столбцов является LONG DataType, поле усекается до 100 символов.
Очевидное решение - вернуть, $ dt и изменить мой код для его обработки. Однако, как я уже сказал, мне хотелось второго мнения.
Get-Data:
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
}
Я попытался вернуть, не изменив, безрезультатно. Проблема сохраняется, пока возвращается только одна запись. –