加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

ORACLE中声明变量:define variable declare

发布时间:2021-01-24 22:03:26 所属栏目:站长百科 来源:网络整理
导读:在sqlplus 环境中,声明变量的关键字:define variable declare 一、define关键字(host变量) host变量的作用是一个替换作用,是主机环境与oracle进行交互的变量,定义host变量时必须同时指定变量名和变量的值,定义变量不可以指定数据类型,define定义的变

使用%ROWTYPE声明变量类型
此标记可以定义表中一行记录的类型;
使用"select…..into…."将表中的一行记录设置到了ROWTYPE类型的变量中时,可以利用"rowtype变量.表字段"的方式取得表中每行的对应列数据
示例:使用ROWTYPE装载一行记录
DECLARE

v_deptRow dept%ROWTYPE ; -- 装载一行dept记录

BEGIN

SELECT * INTO v_deptRow FROM dept WHERE deptno=10 ;

DBMS_OUTPUT.put_line(‘部门编号:‘|| v_deptRow.deptno || ‘,名称:‘ || v_deptRow.dname || ‘,位置:‘ || v_deptRow.loc) ;

END ;

/

运行结果:部门编号:10,名称:ACCOUNTING,位置:NEW YORK
分析:此sql定义了deptRow的ROWTYPE类型变量,之后使用限定查询,查询出10部门的完整信息,并将此行信息设置到deptRow变量中,然后分别利用列名称取得此行中的每列内容。

补充:通过定义专门的集合类型也可以完成与ROWTYPE类型的功能
通过自定义类型接收一行记录:
DECLARE

TYPE dept_type IS RECORD (

dno dept.deptno%TYPE,

dna dept.dname%TYPE,

dlo dept.loc%TYPE) ; -- 定义一个新的类型

v_deptRow dept_type ; -- 装载一行dept记录

BEGIN

SELECT * INTO v_deptRow FROM dept WHERE deptno=10 ;

DBMS_OUTPUT.put_line(‘部门编号:‘|| v_deptRow.dno || ‘,名称:‘ || v_deptRow.dna || ‘,位置:‘ || v_deptRow.dlo) ;

END ;

/

?
-- 找出哪个数据库用户用什么程序在最近三天执行过delete或truncate table的操作
  SELECT c.username,a.program,b.sql_text,b.command_type,a.sample_time
    FROM dba_hist_active_sess_history a
         JOIN dba_hist_sqltext b
            ON a.sql_id = b.sql_id
         JOIN dba_users c
            ON a.user_id = c.user_id
   WHERE     a.sample_time BETWEEN SYSDATE - 3 AND SYSDATE
         AND b.command_type IN (7,85)
ORDER BY a.sample_time DESC;

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读