`
提烟而过
  • 浏览: 118538 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle学习(五)——15天Oracle入门

阅读更多

--集合

--<1>集合.exists(i)是判定集合是否存在第i个元素,存在返回真否则返回假

declare

type mytye is  varray(10) of number;

av mytye:= mytye(4,2,5,4,5,0,4,1,8);

ma  number:=10;

begin

if av.exists(ma) then

dbms_output.put_line(ma);

end if;

end;

 

--<2> limit返回集合的最大个数,索引表和嵌套表返回null

declare

type mytype is table of number(8) index by binary_integer;

va mytype;

begin

dbms_output.put_line(va.limit);

end;

 

--<3>first last 返回的是第一个或者是最后一个元素的下标。

declare

type mytype is varray(20) of number;

va mytype:=mytype(1,2,3,4,5,6,7,8,9,10);

begin

dbms_output.put_line(va.first);

dbms_output.put_line(va.last);

end; --注意其返回是下标

 

--<4> priop next 返回的是无素的上一个或者下一个元素的下标,其返回的同样是下标

declare

type mytype is varray(20) of varchar2(20);

va mytype;

begin

va:=mytype('a','b','c','d','e','f','g','h','i','j','k');

dbms_output.put_line(va.prior(2));

end;

 

--<5>trim 从尾部删除元素, trim从尾部删除一个, trim(n)从尾部删除n

 

declare

type mytype is varray(20) of varchar2(20);

va mytype;

begin

va:=mytype('a','b','c','d','e','f','g','h','i','j','k');

va.trim(3);

for i in 1..va.count loop

dbms_output.put_line(va(i));

end loop;

end;

 

--<6> delete 同样是删除尾部元素,delete 删除全部元素,delete(n),                                                                                          除集合第n个元素

 

 

 

create table test

(  tid number(10),   tname varchar2(10))

 

--forall语句中使用部分集合元素

declare

  type my is table of number(6) index by binary_integer;

  type my2 is table of varchar2(10) index by binary_integer;

  va1        my;

  va2        my2;

  start_time number(10);

  end_time   number(10);

begin

  for i in 1 .. 50 loop

    va1(i) := i;

    va2(i) := 'name';

  end loop;

  forall i in 40 .. 50

    insert into test values (va1(i), va2(i));

end;

 

select * from test

 

drop table test

 

declare

type my is table of number(6);

va1 my:=my(41,null,43,null,45);

begin  

 forall i in indices of va1 --删去在这个处的索引

  delete from test where tid=va1(i);

  end;

 

 

declare

type my is table of number(10);

va1 my:=my(41,null,43,null,45);

begin  

 forall i in values of va1

  delete from test where tid=va1(i);  --删去在这个处的索引

  end;

 

 

--Bulk collect 子句用于取得批量数据 ,它只适用于selete into语句,fetch into语句 DML返回子句

declare

type my is table of emp%rowtype index by binary_integer;

va my;

begin

select * bulk collect into va from emp;--返回的是一列数据

for i in 1..va.count loop

dbms_output.put_line(va(i).ename|| va(i).job||va(i).sal);

end loop;

end;

 

create table emp as select * from scott.emp

select * from emp

 

--DML的返回子句中使用bulk collect子句

declare

type my is table of emp%rowtype ;

va my;

begin

delete from emp where deptno =20

returning empno,ename,job,mgr,hiredate,sal,comm,deptno  bulk collect into va;--return语句后必须要全部列出列名不能用*代替

for i in 1..va.count loop

dbms_output.put_line(va(i).ename||va(i).job);

end loop;

end;

 

select * from emp

分享到:
评论

相关推荐

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据...

    尚硅谷教学视频

    - **15天精讲精练_Android核心技术**:快速掌握Android开发基础知识,包括UI布局、Activity生命周期、数据存储、网络通信等。 - **Android从入门到实战**:从零开始学习Android开发,最终完成一个完整的项目,巩固所...

    最新尚硅谷全套视频打包地址 包含spring boot cloud 全套 安卓 前端

    1. **20天横扫Java基础**:适合Java初学者,通过20天的学习掌握Java基础语法。 2. **尚硅谷Java基础实战——Bank项目**:通过实际项目加深对Java基础知识的理解和应用。 3. **Oracle、SQL、PLSQL视频教程**:数据库...

    Teach yourself SQL in 21 days.pdf

    通过这21天的学习计划,《在21天内自学SQL》不仅为初学者提供了全面的SQL入门指南,也为有经验的开发者提供了深化技能的机会。无论是为了个人兴趣还是职业发展,这本书都是一个宝贵的资源,旨在帮助读者在有限的时间...

    华为HCNP 8期课程大纲

    - **预约时间:** 考生需要提前至少15天进行考试预约。 **报名条件:** - **个人证件要求:** 参加考试时需携带两种有效的个人证件,例如身份证和驾照、学生证或工作证等。 - **无其他限制:** 华为认证考试报名...

    Teach Yourself SQL in 21 Days

    **Day2:查询入门——SELECT语句** - **SELECT语句**:用于从一个或多个表中检索数据。 - **基本语法**:`SELECT column1, column2 FROM table_name;` - **示例**:`SELECT name, age FROM users;` **Day3:表达式...

Global site tag (gtag.js) - Google Analytics