[20160806]sqlplus 1000行自動提交.txt
[20160806]sqlplus 1000行自動提交.txt
--同事要求我提交的插入指令碼要求1000行有1個提交.
--當時我自己也沒有多想,因為toad有一個功能可以直接實現這個功能.
結果集上點選右鍵選擇=>'export dataset':
export format 選擇 insert statments
commit interval 選擇1000,這樣生成的sql指令碼就是每隔1000條記錄有1個提交.
--假如已經生成了指令碼,如何修好呢?以scott.dept表為例來說明:
SET DEFINE OFF;
Insert into SCOTT.DEPT
(DEPTNO, DNAME, LOC)
Values
(10, 'ACCOUNTING', 'NEW YORK');
Insert into SCOTT.DEPT
(DEPTNO, DNAME, LOC)
Values
(20, 'RESEARCH', 'DALLAS');
Insert into SCOTT.DEPT
(DEPTNO, DNAME, LOC)
Values
(30, 'SALES', 'CHICAGO');
Insert into SCOTT.DEPT
(DEPTNO, DNAME, LOC)
Values
(40, 'OPERATIONS', 'DALLAS');
COMMIT;
--我想到最簡單的方法就是利用vim的宏記錄功能.
--假如要2條提交一次.首先輸入如下內容:
:set nowrapscan
2/);$oicommit;
:set nowrapscan^M2/);$oicommit;
--注意:^m 在windows下 ctrl+q ctrl+M,linux下使用ctrl+v ctrl+M.
--然後移動上面一行開頭,執行"aY,這樣以上內容記錄在register a中. => 在windows下ctrl+q ctrl+[ 表示
--數字2表示2條加入1個commit;
--這樣在打入 數字(表示重複次數)@a,就可以了.
--如果檔案很大,使用vim編輯還是不方便.我看了一下sqlplus文件:
AUTO[COMMIT] {OFF|ON|IMM[EDIATE]|n}
這樣只要執行
set AUTOcommit 2 ;
--//就可以實現2條提交一次,做一個簡單測試.
SCOTT@test01p> create table t ( id number);
Table created.
SCOTT@test01p> set autocommit 2
SCOTT@test01p> insert into t values(1);
1 row created.
--開啟另外的會話:
SCOTT@test01p> select * from t;
no rows selected
--回到原來的會話:
SCOTT@test01p> insert into t values(2);
1 row created.
Commit complete.
--很明顯後面自動加入1個提交.
--開啟另外的會話:
SCOTT@test01p> select * from t;
ID
----------
1
2
--發現已經提交了.這種方式完成後最好退出,不要將這樣設定在glogin.sql配置中.
--預設設定是
SCOTT@test01p> show autocommit
autocommit OFF
--同事要求我提交的插入指令碼要求1000行有1個提交.
--當時我自己也沒有多想,因為toad有一個功能可以直接實現這個功能.
結果集上點選右鍵選擇=>'export dataset':
export format 選擇 insert statments
commit interval 選擇1000,這樣生成的sql指令碼就是每隔1000條記錄有1個提交.
--假如已經生成了指令碼,如何修好呢?以scott.dept表為例來說明:
SET DEFINE OFF;
Insert into SCOTT.DEPT
(DEPTNO, DNAME, LOC)
Values
(10, 'ACCOUNTING', 'NEW YORK');
Insert into SCOTT.DEPT
(DEPTNO, DNAME, LOC)
Values
(20, 'RESEARCH', 'DALLAS');
Insert into SCOTT.DEPT
(DEPTNO, DNAME, LOC)
Values
(30, 'SALES', 'CHICAGO');
Insert into SCOTT.DEPT
(DEPTNO, DNAME, LOC)
Values
(40, 'OPERATIONS', 'DALLAS');
COMMIT;
--我想到最簡單的方法就是利用vim的宏記錄功能.
--假如要2條提交一次.首先輸入如下內容:
:set nowrapscan
2/);$oicommit;
:set nowrapscan^M2/);$oicommit;
--注意:^m 在windows下 ctrl+q ctrl+M,linux下使用ctrl+v ctrl+M.
--然後移動上面一行開頭,執行"aY,這樣以上內容記錄在register a中. => 在windows下ctrl+q ctrl+[ 表示
--數字2表示2條加入1個commit;
--這樣在打入 數字(表示重複次數)@a,就可以了.
--如果檔案很大,使用vim編輯還是不方便.我看了一下sqlplus文件:
AUTO[COMMIT] {OFF|ON|IMM[EDIATE]|n}
這樣只要執行
set AUTOcommit 2 ;
--//就可以實現2條提交一次,做一個簡單測試.
SCOTT@test01p> create table t ( id number);
Table created.
SCOTT@test01p> set autocommit 2
SCOTT@test01p> insert into t values(1);
1 row created.
--開啟另外的會話:
SCOTT@test01p> select * from t;
no rows selected
--回到原來的會話:
SCOTT@test01p> insert into t values(2);
1 row created.
Commit complete.
--很明顯後面自動加入1個提交.
--開啟另外的會話:
SCOTT@test01p> select * from t;
ID
----------
1
2
--發現已經提交了.這種方式完成後最好退出,不要將這樣設定在glogin.sql配置中.
--預設設定是
SCOTT@test01p> show autocommit
autocommit OFF
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2123181/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle sqlplus引數autocommit(自動提交)的設定OracleSQLMIT
- DDL操作的自動提交
- jdbc控制自動提交功能JDBC
- sqlplus執行指令碼時遇到錯誤自動停止SQL指令碼
- sqlplus中的提交方式SQL
- 自動提交(AUTOCOMMIT)的配置MIT
- hadoop自動提交指令碼Hadoop指令碼
- sqlplus與空行.txtSQL
- Mysql在全域性禁用自動提交MySql
- MysqL自動提交機制的關閉MySql
- DML, DDL操作的自動提交問題
- 用 VB 實現表單的自動提交 (轉)
- 多檔案自動收集,1秒收集1000份!
- MySQL 的共享鎖和排它鎖以及自動提交MySql
- Windows下關閉MySQL的自動提交(autocommit)功能WindowsMySqlMIT
- 使用JS動態建立含有1000行的表格JS
- sqlloader匯入_與匯入原始檔csv_txt_linux自動換行SQLLinux
- [20230323]sqlplus #.txtSQL
- Spring Series---事務中JDBC是否自動提交解析SpringJDBC
- 設定IDEA自動忽略GIT提交檔案型別IdeaGit型別
- 百度熊掌號連結自動提交WordPress外掛
- ultraedit 自動換行
- [20190524]sqlplus 與輸出&.txtSQL
- [20170506]fetch sqlplus arraysize.txtSQL
- [20170617]vim中呼叫sqlplus.txtSQL
- jQuery 數秒後自動提交form表單程式碼例項jQueryORM
- sqlplus與shell自動提取資料檔案的邏輯卷lv並開啟自動擴充套件SQL套件
- 將RichTextBox設定為自動換行或非自動換行 (轉)
- [20160113]sqlplus使用問題.txtSQL
- sqlplus動態生成linux shell指令碼並執行SQLLinux指令碼
- 遮蔽ASP.NET按鈕自動回車後提交的問題ASP.NET
- 【自動化】淺度分析自動化行業,深度好文!行業
- css自動換行與不換行CSS
- SQLPLUS支援前置行號SQL
- SQLPLUS執行輸出SQL
- 如何執行自動 Mac 清理Mac
- RMAN自動執行計劃
- 自動執行任務crontab