2011-02-06 4 views
0

Я попыталсяГде находится [Oracle.DataAccess.Client.OracleBulkCopy]?

[System.Reflection.Assembly]::LoadWithPartialName("Oracle.DataAccess") 
$bulkCopy = new-object Oracle.DataAccess.Client.OracleBulkCopy $oraClientConnString 

и получил

GAC Version  Location                                     
--- -------  --------                                     
True v2.0.50727  C:\Windows\assembly\GAC_32\Oracle.DataAccess\2.111.6.0__89b483f429c47342\Oracle.DataAccess.dll               
New-Object : Cannot find type [Oracle.DataAccess.Client.OracleBulkCopy]: make sure the assembly containing this type is loaded. 
At line:3 char:23 
+ $bulkCopy = new-object <<<< Oracle.DataAccess.Client.OracleBulkCopy $oraClientConnString 
    + CategoryInfo   : InvalidType: (:) [New-Object], PSArgumentException 
    + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand 

Cf. OracleBulkCopy Class

Что не хватает?

ответ

1

Возможно, вы используете старую версию Oracle? Я вижу документацию для этого класса в Oracle для 11g или более поздней версии.

http://download.oracle.com/docs/html/E10927_01/OracleBulkCopyClass.htm

Oracle.DataClient.dll является сборка, содержащая в вышеуказанной документации.

Попробуйте это:

ps> $a = [reflection.assembly]::loadwithpartialname("oracle.dataaccess") 
ps> $a.getexportedtypes() | where { $_.fullname -like "*bulk*" } 

-Oisin

+0

Да мне нужна новая версия. Теперь у меня есть версия все еще v2.0.50727, но Location C: \ Windows \ assembly \ GAC_32 \ oracle.dataaccess \ 2.112.2.0__89b483f429c47342 \ oracle.dataaccess.dll. Работает отлично и быстро. Я пробовал особенно столбцы CLOB. Я считаю, что это лучший способ скопировать содержимое таблицы в базу данных Oracle. –

+0

Полный сценарий PowerShell для копирования таблицы в Oracle по адресу http://stackoverflow.com/questions/343299/bulk-insert-to-oracle-using-net/4918808#4918808 –

 Смежные вопросы

  • Нет связанных вопросов^_^