网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  如何使用new_value将查询结果传递给变量     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:116次  录入:管理员--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成功发送邮件
  相关文档
实例讲解oracle9i中的一个特殊等待事件 01-28
教你Oracle的数据缓冲区是如何工作 04-11
Oracle系统密码文件创建、使用及维护 04-11
dba应当如何查看oracle数据库连接情况 04-14
轻松接触oracle9i中的一个特殊等待事件 11-22
用一个存储过程实现分步删除数据表记录 04-10
Java连接Oracle数据库的各种方法 04-23
深入讲解"alert log"过大时的处理方法 03-14
如何让oracle数据库始终保持优良性能 04-29
Oracle中有没有系统数据库? 09-29
Oracle 10g数据库的安全性和身份管理 06-03
解决JOB的Interval输入参数过长的问题 06-03
全面解析oracle体系结构的两个重要概念 (1) 05-13
oracle数据库中undo数据段的作用及类型 04-24
SQL Server和Oracle并行处理比较分析 04-11
解析:索引跳跃式扫描 (index skip scan) 11-15
数据库基础:oracle数据库中时间问题比较 09-11
Oracle数据库系统使用经验六则 01-15
哪些因素可以影响oracle数据库的性能 03-11
如何使用改变跟踪技术加速Oracle递增备份 05-27
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息