2013-08-18 5 views
1

Я действительно разочарован JavaDB и Netbeans! Любая помощь теперь будет оценена. Я использую Netbeans 7.2.1 с последним Java SDK.Netbeans JavaDB Массовые данные импорта из CSV-файла

ЦЕЛЬ:
Импорт данных в формате CSV из файла, расположенного в каталоге C: \ в JavaDB таблицу с именем APP.USERS.

Что я сделал:
я использовал следующие коды, чтобы попытаться импортировать данные в таблицу, с помощью утилиты SQL Query в Netbeans: функция

  1. ВЫЗОВ:

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (null, 'USERS', 'FIRSTNAME,LASTNAME,USERNAME,PASSWORD,UNIQUENR,MEMBERSINCE,DOB,EMAIL,AWARDPOINTS,USERTYPE', 'c:\SQL_APP_USERS', '\n',',','UTF-8', 0); SELECT * FROM APP.USERS; `

  1. "Другой" функции:

INSERT INTO APP.USERS(FIRSTNAME,LASTNAME,USERNAME,PASSWORD,UNIQUENR,MEMBERSINCE,DOB,EMAIL,AWARDPOINTS,USERTYPE) VALUES (FROM 'c:\SQL_APP_USERS.txt' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' )); --Check the content of the table. SELECT * FROM APP.USERS;

ВОПРОСЫ:

  • Чтение документацию Oracle KB не поможет мне вообще !!! (http://docs.oracle.com/javadb/10.4.1.3/tools/ctoolsimport16245.html)
  • Выполнение первой упомянутой функции показывает результат: Error code -1, SQL state 42Y03: 'SYSCS_UTIL.SYSCS_IMPORT_DATA' is not recognized as a function or procedure.
  • Выполнение второй функции упоминалось показывает результаты: Error code -1, SQL state 42X01: Syntax error: Encountered "FROM" at line 2, column 9

пожалуйста - HELP.

ответ

2

1.) Указанная функция, которую вы даете нам

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (...

не соответствует сообщение об ошибке

SYSCS_UTIL.SYSCS_IMPORT_DATA не распознается как функции или процедуры.

2.) Количество пройденных значений не соответствует требуемому.
Нет перегруженной функции с 8 параметрами.

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
    (null,'STAFF','c:\output\myfile.del',';','%',null,0); 
    1  2    3    4 5 6 7 

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
    (null, 'USERS','FIRSTNAME,...,', 'c:\SQL_APP_USERS', '\n',',','UTF-8', 0); 
    1  2    3     4   5 6  7  8 

Также последовательность неверна.
Это означает, что каждый столбец является отдельной строкой.

'\n',',' 

должен быть

',','\n' 

3.) Было бы хорошо, если бы это было так просто.

INSERT INTO ... VALUES (FROM 'c:\SQL_APP_USERS.txt' 

Итак, вот простой класс Java Utility, который можно использовать для загрузки CSV-файла в базу данных.

Import CSV into Database example

Испытано:

  • создать пустой файл c:\myfile.del

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
    (null,'CUSTOMER','c:\myfile.del',';','%',null,0); 

enter image description here

Здесь, с таблицей FRIENDS, созданной для теста.

enter image description here

Поскольку файл 'C: \ myfile.del' пусто, так что ничего не делать. не
НЕТ Ошибка: is not recognized as a function or procedure

enter image description here

+0

Спасибо за решение !! Я получаю сообщение об ошибке: «Код ошибки -1, состояние SQL XIE0R: Ошибка импорта в строке 1 файла c: \ SQL_APP_USERS.csv: Чтение endOfFile в неожиданном месте в строке 1. Код ошибки 99999, состояние SQL XIE0E: Прочитайте endOfFile в неожиданном месте в строке 1.'
Мой файл csv выглядит как '1, John, Doe, john @ example.com, helloworld \ n2, Jane, Doe, jane @ example.com, helloworld2', где \ n относится к новая строка в csv. Моя последовательность - «,», «\ n». Как это исправить? –

+0

@JohanBrink Во-первых: Мой пример работает ?? Второй: не используйте '\ n', его трудно поддерживать. Функция не может видеть разницу между концом строки и новой строкой! Поэтому, пожалуйста, используйте '%' или любой другой разделитель строк. –

+0

Nevermind, он работает. СПАСИБО!!! Вы просто помогли всему ИТ-классу преодолеть проблему JavaDB. –