Как импортировать текстовый файл в javaDB?

1

Мне было интересно, как мне импортировать содержимое из tex файла в базу данных (javaDB). Это код, который у меня есть, однако я получаю сообщение об ошибке при выполнении. Я также хотел бы указать, что первичный ключ этой таблицы автоматически увеличивается.

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
(null,'EXPENDITURE','C:\Users\Me\Desktop\textforimport.txt',null,null,null,0);
// This is my import code

//Это моя ошибка

Executed successfully in 0.003 s.
Line 1, column 1

Error code 30000, SQL state 38000: The exception 'java.sql.SQLException: 
Attempt to modify an identity column 'EXPENDITURE_ID'.' was thrown while evaluating an expression.

Error code 99999, SQL state 42Z23: Attempt to modify an identity column 'EXPENDITURE_ID'. 
Line 4, column 1

Execution finished after 0.003 s, 1 error(s) occurred.

//Код для создания таблицы

create table Expenditure (
Expenditure_ID integer not null primary key generated always as identity (start with 1,increment by 1),
Expenditure_Description varchar (75) not null,
Expense double not null,
Expense_Date date not null
);

Теперь я не эксперт в java, но мне интересно, позвонит ли кто-нибудь мне с этим. Буду признателен. благодаря

Теги:
javadb

2 ответа

2

Просто измените объявление своего Expenditure_ID на "GENERATED BY DEFAULT AS IDENTITY",

Столбец идентификатора, который генерируется по умолчанию, будет только увеличиваться и использовать значение по умолчанию при вставках, если не указано явное значение. В отличие от столбцов GENERATED ALWAYS, вы можете указать конкретное значение в операторе вставки, который будет использоваться вместо генерируемого значения по умолчанию. источник

0

Я предполагаю, что это простая проблема SQL, а не проблема Java.

Поскольку столбец Expenditure_ID был создан как " первичный ключ, сгенерированный всегда как идентификатор ", javaDB автоматически сгенерирует его для вас. И когда вы пытаетесь манипулировать столбцом идентификации, вы получите попытку изменить ошибку столбца идентификатора.

Вы можете попробовать два подхода:

1) Удалите из textforimport.txt столбец/данные Expenditure_ID. Просто импортируйте Expenditure_Description, Expense и Expense_Date. Как я уже сказал, javaDB присваивает идентификатор каждой строке.

или

2) Если вам нужно определить Expenditure_ID самостоятельно, изменить столбец Expenditure_ID расходы таблицы. Попробуйте создать его только с " integer not null " (без первичного ключа).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню