當運行運行另一個SQL文件的批處理(.BAT)文件時,出現ORA 0955錯誤。不太可能ORA 0955錯誤
批號:
@echo off
setlocal
set "SqlUserName="
set "SqlPassword="
set "SqlDatabase="
:Credentials
set /P "SqlUserName=Enter username: "
set /P "SqlPassword=Enter password: "
set /P "SqlDatabase=Enter database: "
@(
echo whenever sqlerror exit failure
echo connect %SqlUserName%/%SqlPassword%@%SqlDatabase%
echo @C:\Users\njediaz\Desktop\sql.sql
echo exit
) | sqlplus.exe -s /nolog
if errorlevel 1 goto Credentials
echo About to exit.
timeout /t 30
endlocal
SQL.sql代碼
--conn cpi/[email protected]
--conn &&[email protected]&&DBNAME
SET HEADING OFF;
SET ECHO OFF;
SET PAGES 999;
SET LONG 999999;
SET LONGCHUNKSIZE 999999;
SET PAGESIZE 0;
SET LINESIZE 500;
/****************/
/*BACKUP Scripts*/
/****************/
--Use SPOOL then set the filename and location of the scripts to be saved.--
--Use DBMS_METADATA.get_ddl and specifiy the OBJECT_TYPE, OBJECT_NAME and OWNER_NAME--
SPOOL C:\GeniisysUpdater\Backup\Scripts\GIAC_ORDER_OF_PAYTS_PKG.pks
SELECT DBMS_METADATA.get_ddl ('PACKAGE_SPEC', 'GIAC_ORDER_OF_PAYTS_PKG', 'CPI') FROM DUAL;
SPOOL OFF
HOST ECHO/>> C:\GeniisysUpdater\Backup\Scripts\GIAC_ORDER_OF_PAYTS_PKG.pks
SPOOL C:\GeniisysUpdater\Backup\Scripts\GIAC_ORDER_OF_PAYTS_PKG.pkb
SELECT DBMS_METADATA.get_ddl ('PACKAGE_BODY', 'GIAC_ORDER_OF_PAYTS_PKG', 'CPI') FROM DUAL;
SPOOL OFF
HOST ECHO/>> C:\GeniisysUpdater\Backup\Scripts\GIAC_ORDER_OF_PAYTS_PKG.pkb
/*********************/
/*INSTALL New Scripts*/
/*********************/
SPOOL C:\GeniisysUpdater\Install\Scripts\Logs\GIAC_ORDER_OF_PAYTS_PKG_pks.log
@C:\GeniisysUpdater\Install\Scripts\GIAC_ORDER_OF_PAYTS_PKG.pks
SPOOL OFF
SPOOL C:\GeniisysUpdater\Install\Scripts\Logs\GIAC_ORDER_OF_PAYTS_PKG_pkb.log
@C:\GeniisysUpdater\Install\Scripts\GIAC_ORDER_OF_PAYTS_PKG.pkb
SPOOL OFF
/***************************/
/*RECOMPILE Invalid Scripts*/
/***************************/
SPOOL C:\GeniisysUpdater\Install\Scripts\Logs\recompile_scripts.log
@C:\GeniisysUpdater\Backup\rcpl.sql
SPOOL OFF
/***************************/
/*Check if batch is done*/
/***************************/
SPOOL C:\GeniisysUpdater\Install\Files\batchDone.log
SELECT 1 FROM DUAL/
SPOOL OFF
EXIT
我試圖運行蟾蜍每個數據庫文件(PKS,PKB,SQL)和我沒有得到任何錯誤。
這裏是我的代碼下面的腳本:
如果您正在重新執行腳本,請確保在CREATE之前具有DROP語句以使腳本可以重新執行。另一個原因可能是你在陳述後得到了「/」,但是你已經用分號結束了前面的陳述。從而重新執行緩衝區中的語句。 –
我應該刪除「/」嗎?或者分號? – ladiesman1792
堅持終結者之一。分號用於單個語句,「/」用於塊。 –