如何从Oracle sql执行.sql脚本或查询>;在多个远程实例中提示?

如何从Oracle sql执行.sql脚本或查询>;在多个远程实例中提示?,oracle,sqlplus,Oracle,Sqlplus,我正在尝试将.sql脚本或查询从sql>prompt执行到多个实例中 但我不能以这种方式执行它 SQL> conn username/password@REMOTE @sqlscript.sql OR SQL> conn username/password@REMOTE @select name from v$database; 当然,我还有其他一些方法来完成我的任务,如下所示: M:\> echo select d.name, p.profile, p.limit from

我正在尝试将.sql脚本或查询从sql>prompt执行到多个实例中

但我不能以这种方式执行它

SQL> conn username/password@REMOTE @sqlscript.sql
OR
SQL> conn username/password@REMOTE @select name from v$database;
当然,我还有其他一些方法来完成我的任务,如下所示:

M:\> echo select d.name, p.profile, p.limit from dba_profiles p, v$database d where resource_name = 'PASSWORD_VERIFY_FUNCTION' and profile in ('USERS','SERVICEACCOUNTS'); | sqlplus username/password#77@remotestring
但我正在以不同的方式查看,请在下面找到我的执行以及SQL>提示中的错误:

SQL>
SQL> conn username/Password@remotestring @tt.sql
SP2-0306: Invalid option.
Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM|SYSBACKUP|SYSDG|SYS
KM}] [edition=value]]
where <logon> ::= <username>[/<password>][@<connect_identifier>]
    <proxy> ::= <proxyuser>[<username>][/<password>][@<connect_identifier>]
SQL>



SQL> conn username/Password@remotestring @select name from v$database;
SP2-0306: Invalid option.
Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM|SYSBACKUP|SYSDG|SYS
KM}] [edition=value]]
where <logon> ::= <username>[/<password>][@<connect_identifier>]
    <proxy> ::= <proxyuser>[<username>][/<password>][@<connect_identifier>]
SQL>
SQL>
SQL>
SQL>conn用户名/Password@remotestring@tt.sql
SP2-0306:无效选项。
用法:CONN[ECT][{logon |/| proxy}[AS{SYSDBA | SYSOPER | SYSASM | SYSBACKUP | SYSDG | SYS
KM}][edition=value]]
其中::=[/][@]
::= [][/][@]
SQL>
SQL>conn用户名/Password@remotestring@从v$数据库中选择名称;
SP2-0306:无效选项。
用法:CONN[ECT][{logon |/| proxy}[AS{SYSDBA | SYSOPER | SYSASM | SYSBACKUP | SYSDG | SYS
KM}][edition=value]]
其中::=[/][@]
::= [][/][@]
SQL>
SQL>

它应该给出一个查询输出。

创建环境变量
SQLPATH

比如说。窗户

C:\sql>echo %SQLPATH%
c:\sql
创建文件
c:\sql\login.sql

set linesize 10000
select name from v$database;
@@init.sql
select sysdate from dual;
创建文件
c:\sql\init.sql

set linesize 10000
select name from v$database;
@@init.sql
select sysdate from dual;
试验


我认为你做不到。@Rajesh你需要连接多少个实例,多久运行一次?如果数字很小,那么类似于Dmitry的答案应该很有效。但是,如果您需要经常查询一千个数据库,有更好的解决方案。