用存储过程实现,刚学不知道怎么做。
目的:将数据文件的内容,关联表得到其他相关数据后插入到数据库中数据文件一行是一条数据(数据条数不大在,在10万内),用逗号隔开:
刘菲,22,0615班,37205895
王宇,21,0616班,37205826
杨康,23,0617班,37205850
代表:姓名,年龄,班级,学号。我想把数据文件的数据插到临时表student_tmp(用delphi或JAVA插到临时表中)
然后用存储过程学号(如37205895)去关联表student取得学生的其他信息如:身份证号idcard、家庭住址address,性别sex。
然后将这样的数据插入到表student_bk中
刘菲,22,0615班,37205895,371326198825632121,北京市海淀区经典小区1号,女
王宇,21,0616班,37205826,371326198825632121,北京市海淀区经典小区2号,女
刘菲,23,0617班,37205850,371326198825632121,北京市海淀区经典小区3号,男
目的:将数据文件的内容,关联表得到其他相关数据后插入到数据库中数据文件一行是一条数据(数据条数不大在,在10万内),用逗号隔开:
刘菲,22,0615班,37205895
王宇,21,0616班,37205826
杨康,23,0617班,37205850
代表:姓名,年龄,班级,学号。我想把数据文件的数据插到临时表student_tmp(用delphi或JAVA插到临时表中)
然后用存储过程学号(如37205895)去关联表student取得学生的其他信息如:身份证号idcard、家庭住址address,性别sex。
然后将这样的数据插入到表student_bk中
刘菲,22,0615班,37205895,371326198825632121,北京市海淀区经典小区1号,女
王宇,21,0616班,37205826,371326198825632121,北京市海淀区经典小区2号,女
刘菲,23,0617班,37205850,371326198825632121,北京市海淀区经典小区3号,男
create table student_tmp
(
s_name NUMBER(50),--姓名
s_age VARCHAR2(50),--年龄
s_class VARCHAR2(50),--班级
s_sno VARCHAR2(50)--学号
)
create table student
(
s_sno VARCHAR2(50),--学号
idcard VARCHAR2(50),--身份证号
address VARCHAR2(50),--地址
sex VARCHAR2(50)--性别
)
create table student_bk
(
s_name NUMBER(50),--姓名
s_age VARCHAR2(50),--年龄
s_class VARCHAR2(50),--班级
s_sno VARCHAR2(50),--学号
idcard VARCHAR2(50),--身份证号
address VARCHAR2(50),--地址
sex VARCHAR2(50)--性别
)
方法一:
直接查询文本文件
用 外部表
CREATE TABLE city_populations_ext (
city_name VARCHAR(9),
pop_1990 NUMBER,
pop_2000 NUMBER
)
ORGANIZATION EXTERNAL (
TYPE oracle_loader
DEFAULT DIRECTORY census_data
ACCESS PARAMETERS (
RECORDS FIXED 20
LOGFILE census_data:
'city_populations.log'
BADFILE census_data:
'city_populations.bad'
FIELDS
MISSING FIELD VALUES ARE NULL (
city_name (1:10) CHAR(9),
pop_1990 (11:15) INTEGER
EXTERNAL(4),
POP_2000 (16:20) INTEGER
EXTERNAL(4)
)
)
LOCATION ('city_populations.dat')
)
PARALLEL 4 REJECT LIMIT UNLIMITED;方法二:
用 SQLLOADER 导入文本文件的数据到数据库中 然后查询
http://www.yuanma.org/data/2006/0922/article_1573.htm
SELECT COL1....COLN FROM A ,B ON A.学号=B.学号
那还不如先用程序把这个文件的内容导入到student_tmp
然后再用insert插入到student_bk
create table student_tmp
(
s_name NUMBER(50),--姓名
s_age VARCHAR2(50),--年龄
s_class VARCHAR2(50),--班级
s_sno VARCHAR2(50)--学号
)
create table student
(
s_sno VARCHAR2(50),--学号
idcard VARCHAR2(50),--身份证号
address VARCHAR2(50),--地址
sex VARCHAR2(50)--性别
)
create table student_bk
(
s_name NUMBER(50)…