#!/bin/bash
sqlplus -s $db_name < "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.'
fiecho ----import successfully----
select * from lwc_test
create table lwc_test
( test_id number(5),
test_name varchar2(10),
test_*** 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_*** ='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','')。
Oracle用spool匯出資料
使用spool匯出資料有時候也是乙個比較好的選擇,7萬條資料匯出需要10s,注意的是需要用 d spool.txt呼叫,set termout off才會生效不顯示到螢幕。sql語句和spool off後面要加分號。sql drop table test purge sql create table...
Oracle使用指令碼匯出資料(spool)
使用spool匯出表內容 out.sql檔案內容 set colsep set trimspool on set linesize 2000 set pagesize 2000 set newpage 1 set heading off set term off set num 18 set fee...
oracle中spool匯出資料小結
對於spool資料的sql,最好要自己定義格式,然後根據自己的需求方便程式直接匯入 如 select record id claim id claim code claim status car mark vehicle type report no create time last modify ...