我有一些SQL腳本,我試圖自動化。在過去,我使用了SQL * Plus,並通過bash腳本手動調用了sqlplus二進制文件。如何從bash腳本中執行SQL?
但是,我想弄清楚是否有辦法連接到數據庫,並從bash腳本內調用腳本...以便我可以插入date
並使查詢運行相對於過去的某些天數。
我有一些SQL腳本,我試圖自動化。在過去,我使用了SQL * Plus,並通過bash腳本手動調用了sqlplus二進制文件。如何從bash腳本中執行SQL?
但是,我想弄清楚是否有辦法連接到數據庫,並從bash腳本內調用腳本...以便我可以插入date
並使查詢運行相對於過去的某些天數。
我有些困惑。你應該可以在bash腳本中調用sqlplus。這可能是你與你的第一條語句
請嘗試執行你的bash腳本中的以下在做什麼:
#!/bin/bash
echo Start Executing SQL commands
sqlplus <user>/<password> @file-with-sql-1.sql
sqlplus <user>/<password> @file-with-sql-2.sql
如果您希望能夠將數據傳遞到您的腳本,你可以通過的SQLPlus做傳遞參數到腳本:中文件與-SQL 1.SQL
select * from users where username='&1';
然後CH
內容安格在bash腳本sqlplus中傳遞價值
#!/bin/bash
MY_USER=bob
sqlplus <user>/<password> @file-with-sql-1.sql $MY_USER
由於猛砸沒有內置在SQL數據庫連接調用......你需要使用某種第三方工具。
這裏是bash的運行MySQL查詢殼
mysql -u [database_username] -p [database_password] -D [database_name] -e "SELECT * FROM [table_name]"
op爲使用Oracle。 – 2009-09-23 18:52:46
這不是oracle。 – 2017-07-11 07:33:28
也許你可以管SQL查詢到sqlplus中的一個簡單的方法。它的工作原理爲MySQL:
echo "SELECT * FROM table" | mysql --user=username database
您還可以使用「立即文檔」做同樣的事情:
VARIABLE=SOMEVALUE
sqlplus connectioninfo << HERE
start file1.sql
start file2.sql $VARIABLE
quit
HERE
的sqlplus _is_說,「第三方工具」 – michael 2013-08-12 04:56:04