spool匯出及sqllder匯入。

2021-06-02 01:23:36 字數 1757 閱讀 5196

#!/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 ...