首先,当在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

SQL> print name;

name

---------

hello

如图:

declare

l_dept integer := 20;

currtime date := sysdate;

l_nam varchar2(20) := to_char(add_months(trunc(sysdate),-12),'yyyymmdd'); -- to_char(sysdate,'MM')-13;

type num_list is varray(5) of number;

arr_id num_list := num_list(100,101,123,33,234);

begin

l_dept := 30;

dbms_output.put_line(l_dept);

dbms_output.put_line(currtime);

dbms_output.put_line(l_nam);

dbms_output.put_line(arr_id(1));

end;

变量的定义:

l_dept定义的是整型,

currtime为日期型,

l_nam为字符型并往前退12个月的日期赋值,而-- to_char(sysdate,'MM')-13;会出现负数。

type num_list is varray(4) of number;则是定义数据类型为整型的数组,并且数组长度为4,

arr_id num_list := num_list(100,101,123,33,234);则使用num_list定义的数组类型定义arr_id变量,并为arr_id赋值。

dbms_output.put_line函数则会在DMS Output选项卡中输出,注意:dbms_output.put_line必须放到begin和end之内。

truncate table t4; --清空表里的数据

declare

op nvarchar2(100);

i int ;

j int :=100;

begin

while j<200 loop

select nvl(max(id),0) +1 into i from t4;

insert into t4 values(i,j,'test'||i);

dbms_output.put_line(i);

j:=j+1;

end loop;

end;

-- select * from t4;

oracle 序列赋值变量,Oracle变量的定义、赋值及使用相关推荐

  1. oracle序列重置6,oracle 重置序列从指定数字开始的方法详解

    重置oracle序列从指定数字开始 复制代码 代码如下: declare n number(10); v_startnum number(10):=10000001;--从多少开始 v_step nu ...

  2. oracle序列默认类型,ORACLE 序列-整理

    序列(sequence)是ORACLE数据库库实现列自动增长的唯一方式. 创建序列语法如下: CREATE SEQUENCE sequence //创建序列名称 [INCREMENT BY n] // ...

  3. oracle序列的描述,Oracle同义词和序列的基本使用方法

    Oracle同义词通俗的讲就是某个对象的替代名称,其主要的作用就是利用相关的同义词方便的操纵各种不同用户模式下的相关对象.我们通过select user from dual来对当前使用的用户进行查看. ...

  4. oracle 序列递增更新,ORACLE自动递增--序列

    关于oracle的自动递增,一般依靠序列来产生.当然没SQL SERVICE 2005那样两粒简单的关键字就吃定. 创建序列的语法: CREATE SEQUENCE 序列名 [INCREMENT BY ...

  5. oracle序列无缓存,oracle 序列跳号现象

    从做Jforum项目以来,遇到一个很明显的现象,就是每个表的主键都出现跳号现象.具体表现在:当一次操作若干条数据时,自动增长的sequence序列总是从200的倍数开始增加,这次操作完成后,无论这时c ...

  6. oracle序列缓存清除,Oracle序列

    一.创建序列 序列:用于产生唯一序号的数据库对象,可以为多个数据库用户依次生成不重复的连续整数,通常 使用序列生成自动生成表中的主键值. 在用户自己的模式中创建序列时,必须具有CREATE SEQUE ...

  7. oracle 序列验证脚本,oracle 生成序列脚本

    今天在移植一个项目的的数据库时,要移动所有的序列,下面就是一个如何生成序列脚本的语句 方法一: SELECT ' CREATE SEQUENCE '||SEQUENCE_NAME|| ' INCREM ...

  8. 五、Oracle 序列

    一.Oracle 操作集 二.Oracle 数据类型 三.Oracle 函数 四.Oracle 视图 五.Oracle 序列 六.Oracle 同义词 七.Oracle 索引 八.Oracle PL/ ...

  9. 基于oracle 的PL/SQL编程 -变量使用

    1. 需要开启的服务:  本机安装的oracle ,默认是开机启动服务的,开机时间太慢,关闭了,需要手动打开: OracleDBConsoleorcl OracleOraDb10g_home1iSQL ...

最新文章

  1. Windows搭建以太坊的私有链环境
  2. WPF中Auto与*的差别
  3. [IE技巧] 如何让IE 启动的时候不加载任何插件
  4. rabbitmq Centos6.8安装及基础命令
  5. nginx的url重写[rewrite规则和参考]
  6. 简明python教程 --C++程序员的视角(六):输入输出IO
  7. SAP固定资产、管理会计模块习题-针对END-USER
  8. 笔记-知识产权与标准化知识-GB/T-12504-1990计算机软件质量保证计划规范
  9. 【大数据论文笔记】大数据技术研究综述
  10. IT人的学习方法论-7 IT专家成长的十个学习的建议(下)
  11. Eclipse启动SpringCloud微服务集群的方法
  12. 修改java bean,java – 以编程方式修改Spring bean
  13. Atitit.数据库分区的设计 attilax  总结
  14. Charles进行弱网测试
  15. 车载电子电器防水防尘等级介绍
  16. 信息与计算机科学讲座,【创新创业 计科在行动】2015级信息与计算科学专业大学生创新讲座、专业教育讲座暨学术前沿讲座专题报道...
  17. Linux下限制带宽的方法
  18. springboot从OSS下载图片并打包为压缩包下载
  19. Ellisys Bluetooth Vanguard - 软件
  20. 如何获取微信开发者id及设置微信授权目录

热门文章

  1. python __del__
  2. win8笔记本关闭小键盘
  3. JFrame 跳转之后自动关闭窗口 dispose()
  4. Linux查询命令man手册各章节解释
  5. JQuery ajax返回JSON时的处理方式
  6. 游戏中基于物理的渲染(一)
  7. 七种实现左侧固定,右侧自适应两栏布局的方法
  8. 杂项-Server:Serv-U
  9. mask层--- ios开发view圆角属性的layer层的实质
  10. Python学习笔记(迭代、模块扩展、GUI 、编码处理等)