shell批量執行sql
可以在命令編輯器或者Windows 的DB2 命令窗口或者 linux 的shell 中執行SQL 腳本。在windows 的DB2 命令窗口或者 linux 的shell 中執行SQL語句,可以使用下面的命令執行script1.sql腳本:
db2 -t -v -f script1.sql -z script1.log
或者:
db2 –tvf script1.sql –z script1.log
在上面的命令中,
-t 表示語句使用默認的語句終結符——分號;
-v 表示使用冗長模式,這樣 DB2 會顯示每一條正在執行命令的信息;
-f 表示其後就是腳本文件;
-z 表示其後的信息記錄文件用於記錄屏幕的輸出,方便以後的分析(這是可選的,但我們建議使用該選項)。
當使用了-t選項而沒有標明語句終結符,則分號(;)會默認為語句的終結符。有時可能會出現使用另外的終結符的情況,例如用SQL PL 編寫的的腳本使用其它的符號而不是默認的分號,因為分號在SQL PL 是用於定義資料庫對象過程中的語句結束。
2. shell腳本中怎樣同時執行多個.sql文件,並把結束寫入文件中
因為one.sql主要做一些update工作,two.sql是查詢驗證,要把查到的數據寫到文件中email給自己,
#!/bin/bash
USER="root"
DATABASE="test"
TABLE="user"
mysql-u$USER$DATABASE--html--default-character-set=utf8<one.sql>/tmp/check.html
mysql-u$USER$DATABASE--html--default-character-set=utf8<two.sql>>/tmp/check.html
3. shell腳本執行sql傳出結果
shell腳本執行sql需要輸出結果,可以在shell腳本中寫入語句,執行完成sql語句後,結果定向輸入到一個txt文本文件中,再把txt文本文件存放在固定的文件夾中即可。
4. shell腳本里執行多個sql語句問題
你沒有理解輸入重定向的概念。在你上面的代碼中,mysql -uDDAP -p$2是包含在輸入重定向范圍內的,所以不會提示你輸入密碼的。
你的$1 和$2也沒有定義,可以參考如下寫法:
#!/bin/sh
read -p "please input root password" pwd
mysql -uroot -p$pwd << EOF
\. /usr/src/DDAP-1.CreateUser.SQL
\. /usr/src/DDAP-2.CreateDatabase.SQL
\. /usr/src/DDAP-3.CreateTable.SQL
\. /usr/src/DDAP-4.CreateProcereAndFunction.SQL
\. /usr/src/DDAP-5.CreateData.SQL
EOF
5. LINUX下shell腳本如何執行 sql腳本 到DB2資料庫
1、在gedit中編寫.sh格式的文件,保存為a.sh。
6. 如何在mysql shell命令中執行sql命令行
本文介紹 MySQL 8.0 shell 子模塊 Util 的兩個導入特性 importTable/import_table(JS和python 版本的命名差異)、importJson/import_json的使用方法。
其中 import_table 是通過傳統 MySQL 協議來通信,Import_json 是通過 X 插件協議來通信。MySQL 一直以來提供導入文件 SQL 命令 load data infile(單線程)以及對應的可執行文件 mysqlimport(多線程)。
比如我導入 100W 行示例數據到表 ytt.tl1,花了 24 秒。這個已經是 MySQL 默認導入來的最快的。分析那我們現在看下 mysqlimport 工具的升級版,mysqlshell 的 util 工具集。
使用這兩個工具之前,必須得臨時開啟 local_infile 選項。1. import_table建立 3306 埠的新連接我這里切換為 python 模式清空掉示例表 Ytt.tl1import_table 有兩個參數,第一個參數定義導入文件的路徑,第二個定義相關選項,比如導入的格式,並發的數量等。定義文件路徑(參數1)定義選項(參數2)執行導入:只花了不到 17 秒,比傳統 mysqlimport 快了不少。
我們上面指定了顯式指定了欄位分隔符,那有沒有已經定義好的組合格式呢? 答案是有的,選項 dialect 可以指定以下格式:csv,tsv,json,csv-unix那麼上面的導入,我們可以更簡單,改下變數 y_options1 的定義導入時間差不多。這里要說明下,dialect 選項的優先順序比較低,比如添加了'linesTerminatedBy':' ', 則覆蓋他自己的' '。
選項 diaelect 還有一個可選值為 json,可以直接把 json 結果導入到文檔表裡。比如我新建一張表 tl1_json重新定義文件以及導入選項。導入 JSON 數據速度也還可以,不到 24 秒。那導入 json 數據,就必須得提到以 X 插件協議通信的工具 import_json了。2. imort_json我們切換到 mysqlx 埠import_json 參數和 Import_table 參數類似,這里我改下選項我在手冊上沒有看到多線程的選項,所以單線程跑 35 秒慢了些。查看剛剛導入的數據import_json 不僅僅可以導入 Json 數據,更重要的是可以在 BSON 和 JSON 之間平滑的轉換,有興趣的同學可以去 TRY 下。
7. shell腳本中怎樣同時執行多個.sql文件,並把結束寫入文件中
因為one.sql主要做一些update工作,two.sql是查詢驗證,要把查到的數據寫到文件中email給自己,
#!/bin/bash
USER="root"
DATABASE="test"
TABLE="user"
mysql -u $USER $DATABASE --html --default-character-set=utf8 < one.sql > /tmp/check.html
mysql -u $USER $DATABASE --html --default-character-set=utf8 < two.sql >> /tmp/check.html
8. linux shell執行sql
1.shell中執行sql
export ORACLE_SID=ORCL
sqlplus -S /nolog @/home/oracle/test.sql #注意此處執行sql腳本的方法 -S 表示以靜默方式執行
exit
2.test.sql中要加入連接
conn scott/tiger@orcl
set time on
.......
exit;
9. shell腳本中怎樣同時執行多個.sql文件,並把結束寫入文件中
#!/bin/bash
myFile=/path/filename
cat $myFile | while read line
do
echo "$line" #輸出整行內容
echo "$line" | awk '{print $1}' #輸出每行第一個欄位
done 以上是示例,根據你的需要自己修改吧。