SQLPLUS中用new_value把查询结果传给变量2008-04-09 10:14:14 来源:中国自学编程网 作者:未知 点击:
![]() SQLPLUS中new_value的作用还是挺大的。利用这个倒是能解决挺多问题的。 Oracle SQL*Plus has a very useful new sub-parameter to the column parameter called new_value. The new_value directive allows data that has been retrieved from an Oracle table to be stored as a variable inside the SQL*Plus script. By using the new_value parameter you can make your SQL*Plus script behave like a real programming language, storing and addressing program variables, just like in PL/SQL. The ability to store SQL*Plus variables and fill them with Oracle data is a very powerful feature and makes SQL*Plus scripts more efficient because database access is reduced.
#!/bin/sh export ORACLE_SID=CMPR1 export ORACLE_HOME=/app/oracle/product/9205 export PATH=$ORACLE_HOME/bin:$PATH sqlplus -s/nolog < conn / as sysdba column inst_num new_value ninst_num format 99999; column inst_name new_value ninst_name format a12; column db_name new_value ndb_name format a12; column dbid new_value ndbid format 9999999999;
, d.name db_name , i.instance_number inst_num , i.instance_name inst_name from v$database d, v$instance i; prompt ###############Use new_value#################### select dbid,name from v$database where name=’&ndb_name’;
variable dbid number; variable inst_num number; begin :dbid := &ndbid; :inst_num := &ninst_num; end; /
select dbid,name from v$database where dbid=:dbid;
@cs.sql &ndb_name &ndbid &ninst_num Exit EOF
select dbid,name from v$database where name=’&1’;
variable inst_num number; begin :dbid := &2; :inst_num := &3; end; / select instance_name,instance_number from v$instance where instance_number=:inst_num; select dbid,name from v$database where dbid=:dbid;
variable inst_num number; begin :dbid := &ndbid; :inst_num := &ninst_num; end; / select instance_name,instance_number from v$instance where instance_number=:inst_num; select dbid,name from v$database where dbid=:dbid; 相关文章:
|