您好,登錄后才能下訂單哦!
這篇文章主要介紹如何自動生成批量執行SQL腳本的批處理,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
場景:
DBA那邊給我導出了所有的存儲、函數等等對象的創建腳本,有上千個文件.
現在需要將這些對象創建腳本導入到另外一個庫,如何解決呢?
手動一個個執行顯然不太現實.
于是手動寫了一個批處理,將所有的文件形成一個.SQL的腳本,最后以@生成的.SQL腳本方式導入到目標庫中.
OS環境:WINDOWS xp
腳本內容如下:
代碼如下:
@echo off
if exist list.sql del list.sql /q
:input
cls
set input=:
set /p input= 請輸入要進行判斷的路徑:
set "input=%input:"=%"
:: 上面這句為判斷%input%中是否存在引號,有則剔除。
if "%input%"==":" goto input
if not exist "%input%" goto input
for /f "delims=" %%i in ('dir /b /a-d /s "%input%"') do echo @@%%~fnxi>>list.sql
if not exist list.sql goto no_file
start list.sql
exit
:no_file
cls
echo %cur_dir% 出現錯誤,未成功生成list.sql腳本!
pause
使用:
另存為.BAT類型文件后,雙擊執行.
輸入你腳本的路徑:
如我的E盤CRY文件夾下,有如下類型的文件:
TEST.PRC
..
123\TEST1.FNC(有子文件夾123)
..
TEST2.VW
.
執行該批處理后,最后生成的list.sql腳本文件內容如下(執行完批處理后會用默認的編輯器自動打開該文件):
@@E:\cry\TEST.PRC
..
@@E:\cry\123\TEST1.FNC
..
@@E:\cry\TEST2.VW
..
打開SQLPLUS,以指定用戶登錄數據庫,然后執行: (我的腳本文件生成在d盤)
@D:\list.sql
這樣所有的對象就會自動在指定用戶下生成.
---------------------------
注意:這樣生成的對象很多都是無效的,因為沒有按順序生成,所以建議在自動執行完后,再編譯一下所有無效的對象.
以上是“如何自動生成批量執行SQL腳本的批處理”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。