私はこれに対する解決策を知っていると思いますが、私は第二意見を得たいと思います。Oracle LONGデータ型を100文字に切り捨てるOLEDB
OracleデータベースからDataTableを取得して返すGet-Dataという関数があります。今、PowershellがSUPERに役立つため、Oracleから返されたレコードが1つだけの場合、この関数はDataTableではなくDataRowを返します。
この状況が発生し、列の1つがLONGデータ型の場合、フィールドは100文字に切り捨てられます。
明白な解決策は、$ dtを返して、それを処理するコードを修正することです。しかし、私が言ったように、私は二番目の意見が欲しかった。
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
}
私は、返品、dt変更を無駄にしようとしました。この問題は、レコードが1つしか返されない限り持続します。 –