spool导出及sqllder导入。

#!/bin/bash
sqlplus -s $DB_NAME  <<EXP
set pages 50000;
set lines 200;    
set trims on;
set heading off;
set feedback off
spool "lwc_test.csv";
select test_id||','||test_name||','||test_sex from lwc_test; 
spool off;
EXP
echo export successfully!
echo -e "load data\ninfile lwc_test.csv\ninto table lwc_test\nFields terminated by ','\n
(TEST_ID,\nTEST_NAME,\nTEST_SEX)" > "lwc_test.ctl"


 

 

#!/bin/bash
echo ----begin to insert into imp table----
   sqlldr $DB_NAME control="lwc_test.ctl"   log="lwc_test.log"  bad="bad.log" 
if [ -f "bad.log" ]; then 
echo '导入imp有错误参考文件bad.lg'
exit
else
echo '导入imp表successfully.'
fi
echo ----import successfully----
 


select * from lwc_test
create table LWC_TEST
(
  TEST_ID   NUMBER(5),
  TEST_NAME VARCHAR2(10),
  TEST_SEX  VARCHAR2(20)
);

alter table lwc_test add (
  beizhu varchar2(100) default 'beizhu',
  constraint lt_pk primary key (test_id),
  constraint lt_unuque unique (beizhu)
);

commit;

create index lt_idx on lwc_test (test_name);

insert into lwc_test values(1001,'liwenchao','','')
insert into lwc_test values(1002,'xuetuo','','')
insert into lwc_test values(1003,'yinpinyong','','')

update lwc_test lt set lt.test_sex ='male';
drop index lt_idx;

对ID列序列进行自增:

1.创建序列:

create sequence seq_lt
increment by 1
start with 1
minvalue 1 
maxvalue 900
NOCYCLE;
2.创建触发器
create trigger trg_lt before insert on lwc_test
for each row
begin
select seq_lt.nextval into :new.TEST_ID from dual;
end;
insert into lwc_test lt values(55455,'liwenchao','male','')
//即可完成。注:(1.只对插入时的数据有效,对已存在的,不合理的数据不做约束。2.对手动,非insert操作的数据不做约束)。
或者插入时直接关联序列项,不去创建触发器如:

insert into lwc_test lt values(seq_lt.nextval,'xuetuo','male','')。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值