㈠ Oracle 批量執行多個sql文件
方法如下:
1:運行cmd進入命令行界面
2:進入到存放批量sql的文件夾下面
3:輸入命令 sqlplus 資料庫名/密碼@資料庫 按回車鍵
4:輸入spool 指定路徑:\a.log 按回車鍵 (此步驟的主要作用就是追蹤批量執行sql的日誌,路徑隨便寫,只要能找到就行,a.log可以隨便起名,但是必須要.log後綴)
5:@start.sql 按回車鍵(在批量sql文件夾下寫一個文件,名字叫start.sql,其中在這個文件裡面寫批量sql的文件名)
具體格式如下:@@sql的文件名.sql;
@@sql的文件名2.sql;
6:spool off (此時a.log中所有日誌已經寫入完畢)
7:exit 退出sqlplus
當然只有一個sql文件,但是裡面有多個insert語句,數據量非常大,此時也可以在命令狀態下執行,前4步是一樣的,第五步就是@文件名.sql;
㈡ oracle如何批量執行某個文件夾下面的多個.sql腳本
為什麼我在cmd窗口中輸入sqlplus user/pass為報錯
㈢ Oracle中怎樣一次執行多條sql語句
有時我們需要一次性執行多條sql語句,而用來更新的sql是根據實際情況用代碼拼出來的
解決方案是把sql拼成下面這種形式:
begin
update TB_VG set seq = 1, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20837' and train_id = '0233086';
update TB_VG set seq = 2, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20992' and train_id = '0233110';
end;
總結如下:
以begin開始,以end;結尾(end後的分號不能省),中間的每個sql語句要以分號;結尾
在實際編碼中,發現即使這樣也會有錯誤發生,把sql語句中的換行符替換成空格就可以了
比較穩妥的編碼方式是:
1、以正常的方式編寫sql,根據閱讀與編寫的需要,中間肯定會有換行符
2、在執行之前進行替換:strSql = strSql.Replace("r\n", " ").Replace('\n', ' ');
如果不採用這種方式,可能的異常有:
ORA-00933: SQL 命令未正確結束(如果sql沒有以分號結尾)
ORA-00911: 無效字元(如果未加begin 和 end)
ORA-06550: 第x行, 第xxx列: PLS-00103: 出現符號 "end-of-file"在需要下列之一時:......(如果end後面沒有;分號)
ORA-06550: 第x行, 第xxx列: PLS-00103: 出現符號 ""在需要下列之一時:......(語句之間有換行符)
㈣ oracle中怎樣執行.sql文件
建議使用plsql工具來連接Oracle資料庫進行表操作,這樣很方便的,就像使用sqlserver一樣方便
㈤ 怎麼把數據批量導入oracle中
方法很多,看不同的需要,不同的場景
1,直接從excel粘貼復制,數據盡量少,沒有大欄位的情況下可行,在PLSQL Developer中操作
2,imp方式,這個可以用命令的形式,也可以藉助PLSQL Developer圖形化操作界面
3,可以通過PLSQL Developer的「工具—導入文本」這個可以導入csv,txt格式的數據
4,通過其他工具進行導入XlsToOra這款工具
5,通過外部程序,比如用java或c#語言實現數據的讀取和導入。
目前我過的就是這幾種,歡迎大家繼續補充。
㈥ 怎樣在sqlplus中批量執行sql文件
Oracle批量執行SQL文件
1:運行cmd進入命令行界面
2:進入到存放批量sql的文件夾下面
3:輸入命令 sqlplus 資料庫名/密碼@資料庫 按回車鍵
4:輸入spool 指定路徑:\a.log 按回車鍵 (此步驟的主要作用就是追蹤批量執行sql的日誌,路徑隨便寫,只要能找到就行,a.log可以隨便起名,但是必須要.log後綴)
5:@start.sql 按回車鍵(在批量sql文件夾下寫一個文件,名字叫start.sql,其中在這個文件裡面寫批量sql的文件名)
具體格式如下:@@sql的文件名.sql;
@@sql的文件名2.sql;
.......
6:spool off (此時a.log中所有日誌已經寫入完畢)
7:exit 退出sqlplus
當然只有一個sql文件,但是裡面有多個insert語句,數
㈦ oracle批量執行sql文件為什麼快
因為可以把批量的sql進行預編譯 放在資料庫內存中 如果調用 直接向資料庫發送命令就可以了
㈧ 一個sql文件里能不能放多個select,update等語句
可以的。每個語句必須是完整的sql語句,並且update insert 和delete 的語句後一定要有 commit;
比如:
select * from table_name ;
update table_name
set name = 'a'
where id = 1 ;
commit ;
insert into table_name(id,name)
values(2,'b');
commit ;
alter table table_name
add age number(5) ;
delete table_name
where id = 1 ;
commit;
這些語句都可以在一個.sql文件中
㈨ 如何批量執行sql文件
首先把所有的sql文件准備好
再准備一個全部執行的sql文件All.sql,內容如下:
@E:/YLC/SQL/cybb/NEW/T_THSOFT_ZJBFYSB.sql
@E:/YLC/SQL/cybb/NEW/T_THSOFT_XMZJJK.sql
@E:/YLC/SQL/cybb/NEW/T_THSOFT_USER.sql
@E:/YLC/SQL/cybb/NEW/T_THSOFT_SGJFTJKM.sql
@E:/YLC/SQL/cybb/NEW/1T_THSOFT_HBZJBDQKB.sql
@E:/YLC/SQL/cybb/NEW/2T_THSOFT_YSDWJFMXB.sql
@E:/YLC/SQL/cybb/NEW/3T_THSOFT_YSDWJFHZB.sql
@E:/YLC/SQL/cybb/NEW/4T_THSOFT_BMJSMXZB.sql
@E:/YLC/SQL/cybb/NEW/5T_THSOFT_BMJSFDWMXB.sql
@E:/YLC/SQL/cybb/NEW/6T_THSOFT_YSZXJDB.sql
@E:/YLC/SQL/cybb/NEW/7T_THSOFT_XMZJZXJDB.sql
@E:/YLC/SQL/cybb/NEW/8T_THSOFT_XMZJZXMXB.sql
@E:/YLC/SQL/cybb/NEW/9T_THSOFT_ZJCLB.sql
@E:/YLC/SQL/cybb/NEW/1PRC_T_THSOFT_HBZJBDQKB.sql
@E:/YLC/SQL/cybb/NEW/2PRC_T_THSOFT_YSDWJFMXB.sql
@E:/YLC/SQL/cybb/NEW/3PRC_T_THSOFT_YSDWJFHZB.sql
@E:/YLC/SQL/cybb/NEW/4PRC_T_THSOFT_BMJSMXZB.sql
@E:/YLC/SQL/cybb/NEW/5PRC_T_THSOFT_BMJSFDWMXB.sql
@E:/YLC/SQL/cybb/NEW/6PRC_T_THSOFT_YSZXJDB.sql
@E:/YLC/SQL/cybb/NEW/7PRC_T_THSOFT_XMZJZXJDB.sql
@E:/YLC/SQL/cybb/NEW/8PRC_T_THSOFT_XMZJZXMXB.sql
@E:/YLC/SQL/cybb/NEW/9PRC_T_THSOFT_ZJCLB.sql
exit
然後再寫一個demo.bat文件
::sqlplus system/Oracle@xe @d:/all.sql>d:/log.txt
sqlplus system/oracle@xe @d:/all.sql
第一行可用於執行過程中的信息保存到log.txt文件中,如果不需要保存日誌信息,則可以使用第二行的代碼