Oracle 定义变量总结
首先,当在cmd里办入scott密码提示错误时,可以这样改一下,scott的解锁命令是:
以system用户登录:
cmd
sqlplus system/tigertiger
alter user scott identified by "tiger" account unlock;
-学习块的结构
--学习定义变量(了解数据类型)及赋值
--了解:各种PL/SQL块的类型
--块的结构
--案例:根据工号,输出员工姓名
SELECT * FROM emp;
--块!
DECLARE
v_empno NUMBER(4);
v_ename VARCHAR2(10);
BEGIN
v_empno := &请输入工号;
--必须要将查询结果放到变量
SELECT ename INTO v_ename FROM emp WHERE empno=v_empno;
dbms_output.put_line(v_ename);
END;
--异常
DECLARE
v_empno NUMBER(4);
v_ename VARCHAR2(10);
BEGIN
v_empno := &请输入工号;
--必须要将查询结果放到变量
SELECT ename INTO v_ename FROM emp WHERE empno=v_empno;
dbms_output.put_line(v_ename);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('执行出错了,老板!');
END;
--小结
DECLARE
--变量区(不能在begin..end中定义)
BEGIN
--业务代码区
excetipn
--异常捕获区
END;
--定义变量(了解数据类型)
--2种:保存一个值=简单变量;保存多个值=复合变量
--简单变量类型:char,varchar2,number,date(同时也列类型),boolean,表.字段%type
--复合变量:表%rowtype,record
DECLARE
v_empno NUMBER(4);
v_ename VARCHAR2(10);
v_job emp.job%TYPE; --如果字段类型改变,脚本不需要改变
BEGIN
v_empno := 7566;
SELECT ename,job INTO v_ename,v_job FROM emp WHERE empno=v_empno;
dbms_output.put_line(v_ename);
IF(v_job='MANAGER')THEN
dbms_output.put_line('经理,吃过饭没。');
END IF;
END;
--需要同上,将多个变量放到一个记录对象中
DECLARE
v_empno NUMBER(4);
my_row emp%ROWTYPE;
BEGIN
v_empno := 7566;
SELECT * INTO my_row FROM emp WHERE empno=v_empno;
dbms_output.put_line(my_row.ename||','||my_row.sal);
END;
--有时不需要一整列,只需要其中几个列。此时用record
DECLARE
--自定义复合类型 my_emp
TYPE my_emp_type IS RECORD(
yg_name emp.ename%TYPE,
yg_sal emp.sal%TYPE
);
my_row my_emp_type; --变量名 数据类型
BEGIN
SELECT ename,sal INTO my_row FROM emp WHERE empno=7788;
dbms_output.put_line(my_row.yg_name||','||my_row.yg_sal);
END;
--扩展:Oracle没有boolean类型?
--思考:性别 true=男,false=女。缺点?性别=保密。所以Oracle建立用char(1)替代,1=男2=女3=保密4=人妖
--Oracle的各种集合类型,对应 java的数组。
--引用变量:在讲解存储过程以后再讲解。
--绑定变量(命令窗口中执行,绑定变量用了 :)
SQL> var name varchar2(10)
SQL> execute :name :='hello';
PL/SQL procedure successfully completed
name
---------
hello
SQL> print name;
name
---------
hello
Oracle 定义变量总结的更多相关文章
- 问题:oracle DECLARE 变量重复利用;结果:Oracle 定义变量总结
首先,当在cmd里办入scott密码提示错误时,可以这样改一下,scott的解锁命令是: 以system用户登录:cmdsqlplus system/tigertigeralter user scot ...
- Oracle定义变量、常量
1 定义变量 declare var_countryname varchar2(50):='中国'; 2 定义常量 con_day constant integer:=365;
- oracle基础:怎样把查询的null转换为0、打印、定义变量
https://blog.csdn.net/xuxile/article/details/49943665 oracle怎样把查询的null转换为0 1.查询的null转换为0 NVL(Expr1,E ...
- Oracle定义常量和变量
1.定义变量 变量指的就是可变化的量,程序运行过程中可以随时改变其数据存储结构 标准语法格式:<变量名><数据类型>[(长度):=<初始值>] 示例: declar ...
- SQL*Plus中替换变量与定义变量
替换变量 SQL*Plus中的替换变量又叫替代变量,它一般用来临时存储相关数据:在SQL语句之间传递值.一般使用&或&&前缀来指定替换变量. 关于使用替换变量,一般是利用其创建 ...
- oracle 集合变量以及自定义异常的用法
oracle 集合变量以及自定义异常的用法, 在过程 record_practice 有record变量和自定义异常的用法实例.具体在3284行. CREATE OR REPLACE Package ...
- Linux设置Oracle环境变量
方法一:直接运行export命令定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的 ...
- Linux下设置oracle环境变量
Linux设置Oracle环境变量 方法一:直接运行export命令定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新s ...
- 【Python基础学习二】定义变量、判断、循环、函数基本语法
先来一个愉快的Hello World吧,就是这么简单,不需要写标点符号,但是需要严格按照缩进关系,Python变量的作用域是靠tab来控制的. print("Hello World" ...
随机推荐
- container中的内容 垂直-水平居中
.container{ display: box; display: -webkit-box; -webkit-box-pack: center; -webkit-box-align: center; ...
- JS 中 Tween 的使用
JavaScript Tween算法及缓动效果 Flash做动画时会用到Tween类,利用它可以做很多动画效果,例如缓动.弹簧等等.我这里要教大家的是怎么利用flash的Tween类的算法,来做j ...
- 008-python绘制五个五角星
操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令 1. 运动命令: forward(degree) #向前移动距离degree代表距离 backward(deg ...
- 2019-8-30-BAT-脚本判断当前系统是-x86-还是-x64-系统
title author date CreateTime categories BAT 脚本判断当前系统是 x86 还是 x64 系统 lindexi 2019-08-30 08:47:40 +080 ...
- JDBC连接整个过程
1.导入驱动(放在lib下) connector-java-5.0.8-bin.jar 2.导入配置文件(放在src下) jdbc.properties driverClass=com.mysql.j ...
- 【洛谷3295】[SCOI2016]萌萌哒
传送门 倍增并查集. //Twenty #include<algorithm> #include<iostream> #include<cstdlib> #incl ...
- TZ_05_Spring_Proxy基于接口的动态代理和基于类的动态代理
代理:为了增强方法在不添加代码的情况下 1.Proxy基于接口的动态代理 /** * 模拟一个消费者 * @author Administrator * */ public class Client ...
- js的剪贴板事件
定义 剪贴板操作包括剪切(cut).复制(copy)和粘贴(paste)这三个操作,快捷键分别是ctrl+x.ctrl+c.ctrl+v.当然也可以使用鼠标右键菜单进行操作 关于这3个操作共对应下列6 ...
- HDU 4584
//也是简单题,因为n太小,故暴力之! #include<stdio.h> #include<math.h> #include<string.h> #define ...
- UML类图解释
那个动物矩形框,它就代表一个类(Class).类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示.第二层是类的特性,通常是字段和属性.第三层是类的操作,通常是方法或行为.注意前面的符号,“+ ...