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" ...
随机推荐
- 巧用 position:absolute
1.跟随性 下面这种方法更加简便以及更方便维护, 例如“西部世界”,由于不用将父元素设为position:relative,position:absolute的位置也就不用根据文字多少而重新进行top ...
- CDA考试 ▏2017 CDA L1备考资源习题详解-统计基础部分
CDA考试 ▏2017 CDA L1备考资源习题详解-统计基础部分 <CDA LEVEL 1描述性分析典型例题讲解> 主讲人:CDA命题组委会 傅老师 ▏2017 CDA L1备考资源习题 ...
- 深入protoBuf
ProtoBuf 官方文档翻译 [翻译] ProtoBuf 官方文档(一)- 开发者指南 [翻译] ProtoBuf 官方文档(二)- 语法指引(proto2) [翻译] ProtoBuf 官方文档( ...
- sql删除重复的记录保留一条
delete from A_TO_NOW where yuan_name in (select yuan_name from A_TO_NOW group by yuan_name hav ...
- Tensorboard在Win7下chrome无论如何无法连接的情况
后记:其实发现原因后感觉自己很蠢,是自己开了一个软件叫adsafe,会屏蔽一些东西,所以我拼命的用自己的电脑ip都连不上,换成回环地址就好了,把软件关了也可以. 在无数种尝试后,终于在stackove ...
- Leetcode129. Sum Root to Leaf Numbers求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点生成的所有 ...
- Leetcode455.Assign Cookies分发饼干
假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j ,都有一个尺寸 ...
- openCV抠图实验
#include "pch.h" #include <opencv2/core/core.hpp> #include "opencv2/imgproc/img ...
- JSP内置对象解析
out对象:(PrintWriter类的实例) 用来向客户端输出信息,除了输出各种信息外还负责对缓冲区进行管理: 主要方法: print / println void 输出数据 newLine() v ...
- sar网络统计数据
sar是一个研究磁盘I/O的优秀工具.以下是sar磁盘I/O输出的一个示例. 第一行-d显示磁盘I/O信息,5 2选项是间隔和迭代,就像sar数据收集器那样.表3-3列出了字段和说明. 表3-3 ...