Импорт файла CSV в базу данных Oracle - PullRequest
3 голосов
/ 03 ноября 2010

Существует ли простая библиотека Java или подход, который будет принимать запрос SQL и загружать данные в CSV-файл в базу данных Oracle. Просьба помочь

Ответы [ 6 ]

5 голосов
/ 03 ноября 2010

Вам не нужно использовать Java для загрузки файла данных в таблицу, если это не является абсолютно необходимым.Вместо этого я бы порекомендовал утилиту командной строки Oracle SQL * Loader , которая была разработана специально для этой цели.

3 голосов
/ 03 ноября 2010

Для подобных задач я обычно использую Groovy-скрипты , так как это действительно легко и быстро писать и запускать на JVM вне курса.

... пример:

import groovy.sql.Sql

def file1 = new File(/C:\Documents and Settings\USER\Desktop\Book1.csv/)
def reader = new FileReader(file1)

def sql = Sql.newInstance("jdbc:oracle:thin:@XXXXXX:XXXX:XXX", "SCHEMA",
      "USER", "oracle.jdbc.driver.OracleDriver")

reader.each { line ->
   fields =  line.split(';')
   sql.executeInsert("insert into YOUR_TABLE values(${fields[0]},${fields[1]},${fields[2]})")
}

Это базовый пример, если у вас есть двойные кавычки и полуколонны в CSV, вы, вероятно, захотите использовать что-то вроде OpenCSV для обработки этого.

0 голосов
/ 28 июля 2016

Если вы открыты для Python, вы можете выполнить массовую загрузку, используя SQL * Loader

loadConf=('sqlldr userid=%s DATA=%s control=%s LOG=%s.log BAD=%s.bad DISCARD=%s.dsc' % (userid,datafile, ctlfile,fn,fn,fn)).split(' ')

p = Popen(loadConf, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=False, env=os.environ)

output, err = p.communicate()

Это будет намного быстрее, чем вставка строки.

Я загрузил базовый рабочий пример здесь .

0 голосов
/ 04 ноября 2010

У вас есть этот CSV в файле на сервере базы данных или вы можете сохранить его там?Затем вы можете попытаться заставить Oracle открыть его, объявив объект DIRECTORY для пути, в котором находится файл, и затем создать ВНЕШНЮЮ ТАБЛИЦУ, которую впоследствии вы сможете запросить в SQL.Oracle выполняет для вас разбор файла.

0 голосов
/ 03 ноября 2010

Я думаю, что этот инструмент поможет вам при любой проблеме импорта-экспорта базы данных.

http://www.dmc -fr.com / home_en.php

0 голосов
/ 03 ноября 2010

Вы можете преобразовать каждую строку в CSV с помощью регулярных выражений, сделать запрос на вставку, а затем отправить в Oracle (с JDBC).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...