你好,我想连接到以下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