为什么我不能将.csv中的表中的null和char数据值导入db2?

时间:2015-10-23 08:59:38

标签: mysql csv db2

我的教授指示我们进入ff。编码,以便我们可以在课堂上进行她计划的实验室练习。

-- Make sure database HR exist in your computer.
connect to HR;

create table region
 (regionid int not null,
  regionname varchar(25),
  constraint region_pk primary key(regionid));
  describe table region;

-- Importing data from excel file region.csv into the table region
import from c:\exer\region.csv of del insert into region;
select * from region; 

create table country
 (countryid varchar(2) not null,
  countryname varchar(40),
  regionid int,
constraint country_pk primary key(countryid),
constraint country_fk foreign key(regionid) references region(regionid));
describe table country;
-- Importing data from excel file country.csv into the table country
import from c:\exer\country.csv of del insert into country;
select * from country; 

create table location
 (locid int not null,
  street varchar(25),
  zip varchar(12),
  city varchar(30),
  state varchar(12),
  countryid varchar(2),
constraint location_pk primary key(locid),
constraint location_fk foreign key(countryid) references country(countryid));
describe table location;
-- Importing data from excel file location.csv into the table location
import from c:\exer\location.csv of del insert into location;
select * from location;

create table jobs
 (jobid varchar(10) not null,
  jobtitle varchar(35),
  min_sal dec(10, 2),
  max_sal dec(10, 2),
constraint jobs_pk primary key(jobid));
describe table jobs;
INSERT INTO jobs VALUES( 'AD_PRES', 'President', 20000, 40000);
INSERT INTO jobs VALUES( 'AD_VP', 'Administration Vice President', 15000, 30000);
INSERT INTO jobs VALUES( 'AD_ASST', 'Administration Assistant', 3000, 6000);
INSERT INTO jobs VALUES( 'FI_MGR', 'Finance Manager', 8200, 16000);
INSERT INTO jobs VALUES( 'FI_ACCOUNT', 'Accountant', 4200, 9000);
INSERT INTO jobs VALUES( 'AC_MGR', 'Accounting Manager', 8200, 16000);
INSERT INTO jobs VALUES( 'AC_ACCOUNT', 'Public Accountant', 4200, 9000);
INSERT INTO jobs VALUES( 'SA_MAN', 'Sales Manager', 10000, 20000);
INSERT INTO jobs VALUES( 'SA_REP', 'Sales Representative', 6000, 12000);
INSERT INTO jobs VALUES( 'PU_MAN', 'Purchasing Manager', 8000, 15000);
INSERT INTO jobs VALUES( 'PU_CLERK', 'Purchasing Clerk', 2500, 5500);
INSERT INTO jobs VALUES( 'ST_CLERK', 'Stock Clerk', 2000, 5000);
INSERT INTO jobs VALUES( 'SH_CLERK', 'Shipping Clerk', 2500, 5500);
INSERT INTO jobs VALUES( 'IT_PROG', 'Programmer', 4000, 10000);
INSERT INTO jobs VALUES( 'MK_MAN', 'Marketing Manager', 9000, 15000);
INSERT INTO jobs VALUES( 'MK_REP', 'Marketing Representative', 4000, 9000);
INSERT INTO jobs VALUES( 'HR_REP', 'Human Resources Representative', 4000, 9000);
INSERT INTO jobs VALUES( 'PR_REP', 'Public Relations Representative', 4500, 10500);
INSERT INTO jobs VALUES( 'ST_MAN', 'Stock Manager', 5500, 8500);
select * from jobs;

create table employee 
  (empid int not null,
  fname varchar(20), 
  lname varchar(20), 
  email varchar(25), 
  phone varchar(20), 
  hdate date, 
  jobid varchar(10), 
  salary dec(10,2), 
  comm dec(10, 2), 
  mgrid int, 
  deptid int,
constraint employee_pk primary key(empid),
constraint employee_fk foreign key(jobid) references jobs(jobid));
describe table employee;
-- Importing data from excel file employee.csv into the table employee
import from c:\exer\employee.csv of del insert into employee;
select * from employee; 

create table department
 (deptid int not null,
  deptname varchar(30),
  mgrid int,
  locid int,
constraint department_pk primary key(deptid),
constraint department_fk1 foreign key(mgrid) references employee(empid),
constraint department_fk2 foreign key(locid) references location(locid));
describe table department;
-- Importing data from excel file department.csv into the table department
import from c:\exer\department.csv of del insert into department;
select * from department;


create table job_history
 (empid int not null,
  start_date date not null,
  end_date date,
  jobid varchar(10),
  deptid int,
constraint job_history_pk primary key(empid, start_date),
constraint job_history_fk1 foreign key(jobid) references jobs(jobid),
constraint job_history_fk2 foreign key(deptid) references department(deptid));
describe table job_history; 
-- Importing data from excel file job_history.csv into the table job_history
import from c:\exer\job_history.csv of del insert into job_history;
select * from job_history;

除了我应该导入department.csv和job_history.csv以在表中包含记录的部分之外,我能够完成所有工作。 ff。在我做的时候出现了错误陈述。

db2 => import from C:\exer\department.csv of del insert into department
SQL3109N  The utility is beginning to load data from file
"C:\exer\department.csv".

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "12" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "13" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "14" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "15" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "16" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "17" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "18" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "19" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "20" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "21" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "22" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "23" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "24" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "25" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "26" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "27" of
the input file.

SQL3110N  The utility has completed processing.  "27" rows were read from the
input file.

SQL3221W  ...Begin COMMIT WORK. Input Record Count = "27".

SQL3222W  ...COMMIT of any database changes was successful.

SQL3149N  "27" rows were processed from the input file.  "11" rows were
successfully inserted into the table.  "16" rows were rejected.


Number of rows read         = 27
Number of rows skipped      = 0
Number of rows inserted     = 11
Number of rows updated      = 0
Number of rows rejected     = 16
Number of rows committed    = 27

同样的事情发生在我导入job_history.csv时,唯一的区别是excel文件中包含的行数。

这是department.csv和job_history.csv的内容(我只是以excel形式复制并粘贴了内容,但这应该是表格形式。

department.csv

10  Administration  200 1700
20  Marketing   201 1800
30  Purchasing  114 1700
40  Human Resources 203 2400
50  Shipping    121 1500
60  IT  103 1400
70  Public Relations    204 2700
80  Sales   145 2500
90  Executive   100 1700
100 Finance 108 1700
110 Accounting  205 1700
120 Treasury    0   1700
130 Corporate Tax   0   1700
140 Control And Credit  0   1700
150 Shareholder Services    0   1700
160 Benefits    0   1700
170 Manufacturing   0   1700
180 Construction    0   1700
190 Contracting 0   1700
200 Operations  0   1700
210 IT Support  0   1700
220 NOC 0   1700
230 IT Helpdesk 0   1700
240 Government Sales    0   1700
250 Retail Sales    0   1700
260 Recruiting  0   1700
270 Payroll 0   1700

job_history.csv

102 1/13/1993   7/24/1998   IT_PROG 60
101 9/21/1989   10/27/1993  AC_ACCOUNT  110
101 10/28/1993  3/15/1997   AC_MGR  110
201 2/17/1996   12/19/1999  MK_REP  20
114 3/24/1998   12/31/1999  ST_CLERK    50
122 1/1/1999    12/31/1999  ST_CLERK    50
200 9/17/1987   6/17/1993   AD_ASST 90
176 3/24/1998   12/31/1998  SA_REP  80
176 1/1/1999    12/31/1999  SA_MAN  80
200 7/1/1994    12/31/1998  AC_ACCOUNT  90

我注意到0和varchar值的行被拒绝了...这个问题的补救措施应该是什么?

2 个答案:

答案 0 :(得分:0)

解决此类案件的最佳方法可能是:

  1. 在DB2中,创建一个包含允许空值的列的表。
  2. 在DB2中,将该表的内容导出为CSV(在DB2中称为DEL)。
  3. 在文本编辑器中检查生成的CSV,以查看导出空值的确切程度。
  4. 相应地调整输入CSV。
  5. 希望它有所帮助(不仅仅是空值,还包括其他奇怪的情况; - )。

答案 1 :(得分:0)

尝试使用表格创建列 NOT NULL DEFAULT'' 因此,如果你的excel中有一个NULL值无关紧要。