你好,我想連接到以下DBS在循環並執行語句,每個:SQLPLUS連接到不同的DBS
conn support/[email protected]
conn support/[email protected]
conn support/[email protected]
有沒有辦法在sqlplus做到這一點?
謝謝您提前給出答案!
你好,我想連接到以下DBS在循環並執行語句,每個:SQLPLUS連接到不同的DBS
conn support/[email protected]
conn support/[email protected]
conn support/[email protected]
有沒有辦法在sqlplus做到這一點?
謝謝您提前給出答案!
創建一個腳本,( doWork.sql),它包含大部分你想要做的事情:
conn &1/&[email protected]&3
select EMPLOYEE, AUTHORIZED, TIME, DAT, WORKSTATION
from EMPLOYEE
where status = 25;
在一個單獨的腳本中(goTo Work.sql):
set lines 1500 pages 10000
set colsep ';'
set sqlprompt ''
set heading on
set headsep off
set newpage none column tm new_value file_time noprint
select to_char(sysdate, 'DDMMYYYY_HH24.MI') tm from dual;
accept user
accept pass
spool C:\Users\NANCHEV\Desktop\parked.csv
@@doWork &user &pass sp0666to
@@doWork &user &pass sp0667to
@@doWork &user &pass sp0668to
spool off;
exit
如果您需要單獨的文件,請將兩個假脫機命令移至doWork.sql文件。
是的,有可能你可以使用oracle DBLink連接到不同的dbs,就像你的例子。
假設您想爲每個數據庫運行同一組查詢,我會創建一個包含這些語句的腳本文件(例如main_statements.sql)。然而
connect &&user/&&[email protected]
@@main_statements.sql
connect &&user/&&[email protected]
@@main_statements.sql
connect &&user/&&[email protected]
@@main_statements.sql
...
如果:
然後,如果數據庫列表是靜態的,我會在同一目錄下創建第二個腳本文件(如run_me.sql),與沿線的內容,數據庫是靜態的,但清單數據庫中包含的某個地方,然後我會寫一個腳本(如run_me.sql)生成一個腳本,喜歡的東西:
set echo off
set feedback off
set verify off
spool databases_to_run_through.sql
select 'connect '||username||'/'||password||'@'||database_name||chr(10)||
'@@main_statements.sql'
from list_of_databases_to_query;
spool off;
@@databases.run_through.sql
NB未經測試。另外,我假設你的表格包含每個需要連接的數據庫的用戶名和密碼;如果情況並非如此,你必須弄清楚如何處理它們;也許它們都是一樣的(在這種情況下,你可以對它們進行硬編碼 - 或者更好的方法是,使用替換變量(例如&&username
)以避免將它們存儲在普通文件中,然後必須在運行時輸入它們。
您還需要從同一個目錄下的腳本,否則你有沒有被在同一目錄下main_statements.sql相當於腳本創建生成的腳本結束。
'連接到循環中的以下dbs' ..不清楚你爲什麼要連接它循環。您可以單獨連接它們,運行您的語句並退出連接 – XING
'conn support/support @ sp0666to set lines 1500 pages 10000 set colsep';' 組SQLPROMPT '' 集上 組headsep標題關閉 組NEWPAGE無 柱TM NEW_VALUE file_time NOPRINT 選擇TO_CHAR(SYSDATE, 'DDMMYYYY_HH24.MI')從雙TM; C:\ Users \ NANCHEV \ Desktop \ parked.csv 從EMPLOYEE中選擇EMPLOYEE,AUTHORIZED,TIME,DAT,WORKSTATION,其中status = 25; 假脫機; exit'我想在每個連接上執行此操作並將數據保存在csv中。你能幫助一些代碼或教程嗎? – user3450687
問題是他們是668,而不僅僅是這三個例子:( – user3450687