网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  如何使用new_value将查询结果传递给变量     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:117次  录入:管理员--2008-04-10  
 

【赛迪网-论坛整理】在实际应用中,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;

select d.dbid dbid

, 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';

prompt ################use variable###################

variable dbid number;

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;

prompt ##############use sql file#####################

@cs.sql &ndb_name &ndbid &ninst_num

exit

eof

[/app/oracle/utils/scripts]$ cat cs.sql

select dbid,name from v$database where name='&1';

variable dbid number;

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 dbid number;

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;

 
 
上一篇: 如何通过触发器实现数据库的即时同步    下一篇: 实例讲解如何通过oracle成功发送邮件
  相关文档
用forall与bulk collect快速复制表数据 (1) 03-27
遇到ora-12535问题后应当采用哪些方法解决 04-16
Oracle数据库应用程序性能优化探究 04-11
“顺序事务”与“只读事务”的实际应用 03-06
剖析Oracle的网络结构轻松解决连接问题 09-29
dba应当如何查看oracle数据库连接情况 04-14
基于已被证实的oracle高可用性技术maa 03-14
关闭ORACLE SERVLET ENGINE 11-12
如何使用ref cursor处理oracle的结果集 03-26
如何使用new_value将查询结果传递给变量 04-10
调整oracle应用系统性能的原则和方法 (1) 01-25
巧用外部表访问警告日志文件或跟踪文件 05-15
oralce定时执行存储过程任务的设置步骤 03-03
Oracle数据库异步调用基本原理及测试 04-11
实例讲解sql_trace和access path的用法 (1) 04-07
statspack中的library hit是如何计算的 03-06
快速掌握列值掩码技术隐藏敏感数据 11-15
丢失归档日志文件后数据库应当如何恢复 (1) 04-16
怎样使用errorstack进行错误跟踪及诊断 11-15
数据库中判断一个字符串内是否含有中文 05-06
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息