溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何自動生成批量執(zhí)行SQL腳本的批處理

發(fā)布時間:2021-09-30 13:51:42 來源:億速云 閱讀:161 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹如何自動生成批量執(zhí)行SQL腳本的批處理,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

場景:
DBA那邊給我導(dǎo)出了所有的存儲、函數(shù)等等對象的創(chuàng)建腳本,有上千個文件.
現(xiàn)在需要將這些對象創(chuàng)建腳本導(dǎo)入到另外一個庫,如何解決呢?
手動一個個執(zhí)行顯然不太現(xiàn)實(shí).
于是手動寫了一個批處理,將所有的文件形成一個.SQL的腳本,最后以@生成的.SQL腳本方式導(dǎo)入到目標(biāo)庫中.

OS環(huán)境:WINDOWS xp
腳本內(nèi)容如下:

代碼如下:


@echo off
if exist list.sql del list.sql /q
:input
cls
set input=:
set /p input= 請輸入要進(jìn)行判斷的路徑:
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% 出現(xiàn)錯誤,未成功生成list.sql腳本!
pause


使用:
另存為.BAT類型文件后,雙擊執(zhí)行.
輸入你腳本的路徑:
如我的E盤CRY文件夾下,有如下類型的文件:
TEST.PRC
..
123\TEST1.FNC(有子文件夾123)
..
TEST2.VW
.
執(zhí)行該批處理后,最后生成的list.sql腳本文件內(nèi)容如下(執(zhí)行完批處理后會用默認(rèn)的編輯器自動打開該文件):
@@E:\cry\TEST.PRC
..
@@E:\cry\123\TEST1.FNC
..
@@E:\cry\TEST2.VW
..
打開SQLPLUS,以指定用戶登錄數(shù)據(jù)庫,然后執(zhí)行: (我的腳本文件生成在d盤)
@D:\list.sql
這樣所有的對象就會自動在指定用戶下生成.
---------------------------
注意:這樣生成的對象很多都是無效的,因?yàn)闆]有按順序生成,所以建議在自動執(zhí)行完后,再編譯一下所有無效的對象.

以上是“如何自動生成批量執(zhí)行SQL腳本的批處理”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI