如何實現批處理文件傳參數給SQLPLUS


 第一:批處理文件drop_table.bat

說明:

批處理中 %~dp0  表示批處理文件所處的當前目錄

'%p_owner%' '%p_path%' 是批處理傳給SQLPLUS的參數

 

@echo *****************************************************
@echo 開發環境數據庫無效表清理
@echo 首先,連接數據庫lcam_develop/lcam4ddl@lacm5130
@echo 接着會生成drop_table_sql.sql
@echo 然后執行drop_table_sql.sql
@echo *****************************************************

@echo off

set /p p_user="請輸入用戶名lcam_develop:"
set /p p_password="請輸入用戶密碼lcam4ddl:"
set /p p_sid="請輸入數據庫連接串(TNS名)lacm5130:"
set /p p_owner="請輸入數據庫查詢條件LCAM_DEVELOP:"
set /p p_path="請輸入文件存放盤符(如輸入E):"

sqlplus %p_user%/%p_password%@%p_sid%  @"%~dp0generate_drop_table_sql.sql" '%p_owner%' '%p_path%'

sqlplus %p_user%/%p_password%@%p_sid%  @"%p_path%:\drop_table.sql"set echo off

 

第二:批處理中調用的腳本generate_drop_table_sql.sql

說明:

'&1' 對應批處理中的 '%p_owner%'

'&2' 對應批處理中的 '%p_path%'


set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set heading off
define owner='&1'
define path='&2'
SPOOL &path:\drop_table.sql
select 'DROP TABLE ' || a.table_name ||';' FROM dba_tables a 
where a.owner=upper('&owner') AND a.table_name like 'ZK%';
SPOOL OFF
exit;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM