暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle define - undefine 命令简单说明

原创 不吃草的牛_Nick 2023-05-03
931

DEFINE 和 UNDEFINE 命令
在编写和使用SQL脚本的过程中,有时需要指定变量和值。DEFINE命令可以创建变量(用户变量)为SQL*Plus会话过程保存指定的值,其定义域将在会话结束时或者在遇到UNDEFINE命令及变量复位时终止。以下例子说明了DEFINE和UNDEFINE命令的使用:
SQL> DEFINE dept=finance
SQL> UNDEFINE dept

上例很简单,但是,在SQL*Plus中,会经常在脚本中使用DEFINE命令替代变量的值。通常用DEFINE命令和一个替换变量而不使用用户变量。替换变暈用&符号指定,如&VARIABLE.
使用DEFINE命令
SQL> col segment_name for a27
DEFINE owner ='&1'
SELECT segment_name,segment_type,extents FROM dba_segments
WHERE owner = upper ('&owner')
AND extents > 10
AND segment_name NOT LIKE 'TMP%'
ORDER BY segment_type,extents desc

SQL> @extents.sql
Enter value for 1: system

在代码清单extents.sql脚本中,定义了owner变量,它可以取用户提供的任何替换值,而非一个硬代码值。因此,同一个脚本可以为数据库的任意用户运行。只要在运行此脚本时给不同的模式拥有者插入不同的名字即可。

预定义SQL*Plus变量
SQL*Plus提供了一组预定义变量,它们的使用方法与其他替换变量相同.可使用无参数的DEFINE命令査看。
SQL> DEFINE

以下是各变量的内容。
 DATE:包括当前日期或用户定义的固定串:
 CONNECT_IDENTIFIER:包括连接的数据库名:
 USER:包括用户提供的进行当前连接的用户名(此变量与SHOW USER命令的输出相同);
 PRIVILEGE:包括当前连接的权限级別(可以是AS SYSDBA,AS SYSOPER或空白,空白表示一个普通的连接);
 SQLPLUS_RELEASE:显示SQL*Plus的版本号;
 EDITOR:显示正在使用的编辑器;
 O_VERSION:显示Oracle数据库的版本(例如企业版)以及数据库选项;
 O_RELEASE:显示Oracle数据库的版本号。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论