Search notes:

Oracle.ManagedDataAccess.Client.OracleBulkCopy (class)

# using namespace OracleManagedDataAccess.Client
add-type -path h:\Oracle.ManagedDataAccess.19.11.0.dll  # Windows Server 2019

$conSrc = new-object Oracle.ManagedDataAccess.Client.OracleConnection "Data Source=‥; User Id=‥; password=‥"
$conDst = new-object Oracle.ManagedDataAccess.Client.OracleConnection "Data Source=‥; User Id=‥; password=‥"

$conSrc.Open()
$conDst.Open()

$cmd = $conDst.CreateCommand()

$cmd.CommandText = "drop table tq84_copied_objs purge"
$null = $cmd.ExecuteNonQuery() # returns -1

$cmd.CommandText = "create table tq84_copied_objs as select * from user_objects where rownum = 0"
$null = $cmd.ExecuteNonQuery()

$datTbl  = new-object System.Data.DataTable
$datAdp = new-object Oracle.ManagedDataAccess.Client.OracleDataAdapter("select * from user_objects", $conSrc)
$nofRec = $datAdp.Fill($datTbl)
write-host "Filled $nofRec records"

$oraCpy = new-object Oracle.ManagedDataAccess.Client.OracleBulkCopy $conDst
$oraCpy.DestinationTableName = "tq84_copied_objs";
$oraCpy.WriteToServer($datTbl)

$conSrc.Close()
$conDst.Close()	
When I used a OracleBulkCopy in a Windows 2019 Server environment with .Net version 4.7.01390 ((get-itemProperty 'hklm:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full').version), I had to use ManagedDataAccess 19.11.0.

See also

Oracle.ManagedDataAccess.Client.OracleBulkCopyOptions

Links

https://github.com/oracle/dotnet-db-samples/blob/master/samples/bulk-copy/oracle-bulk-copy.cs

Index