您可能希望使用 sqlplus 替换变量来存储查询结果:
http ://docs.oracle.com/cd/B19306_01/server.102/b14357/ch5.htm#sthref1114
这些变量对于 SQL*Plus 实例是全局的,因此它们在连接到另一个数据库时会保留它们的值。
例子:
SQL> variable var1 number
SQL> variable var2 number
SQL> conn a/b@ccc
Connected.
SQL> begin
2 select 1111 into :var1 from dual;
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> print var1
VAR1
----------
1111
SQL> conn a/b@ddd
Connected.
SQL> print var1
VAR1
----------
1111
SQL> begin
2 select 2222 into :var2 from dual;
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> print :var2
VAR2
----------
2222
SQL>
我们也可以这样看到它们:
SQL> print :var2 :var1
VAR2
----------
2222
VAR1
----------
1111
SQL>
并在 PL/SQL 中使用它们:
SQL> set serveroutput on
SQL> declare
2 v1 number := :var1;
3 v2 number := :var2;
4 begin
5 dbms_output.put_line('The difference is: '||to_char((v2-v1)));
6 end;
7 /
The difference is: 1111
PL/SQL procedure successfully completed.
SQL>