pl/sql块:
1 匿名块            ----不能存储,不能共享
2 存储过程 函数 触发器 包   ----带有名称的块,可以存储在oracle服务器上,可以共享和多次调用。

1 匿名块
begin
sql
sql
end;
匿名块示例:
SQL >begin
    for i in 1..1000 loop
    insert into t1 values(i);
    end loop;
    commit;
    end;
    /

一个pl/sql应用程序由一个或者多个块组成。

pl/sql语言基础
块结构:
declare
声明变量(常量 变量 游标)
begin
执行部分
exception
异常部分(可选)
end;

set serveroutput on
服务器的输出信息打印在plus窗口里

SQL> set serveroutput on
SQL>
SQL> begin
  2  dbms_output.put_line('Hello World');
  3  end;
  4  /
Hello World
PL/SQL procedure successfully completed

匿名块只能在当前用户当前会话使用,无法被其他用户调用。
命名块:带有名称的匿名块

变量作用:传递数据

案例:打印员工的姓名和工资

set serveroutput on
   declare
    v_ename varchar2(10);
    v_sal   number(7,2);
     begin
      select ename,sal
      into v_ename,v_sal
      from emp where empno=#
      dbms_output.put_line('Employees name is: '||v_ename);
      dbms_output.put_line('Employees sal is: ' ||v_sal);
     end;
   /
Employees name is: SCOTT
Employees sal is: 3000
PL/SQL procedure successfully completed

set serveroutput on
declare
v_ename varchar2(10);
v_sal   number(7,2);
c_empno constant number(4):=7788;  ----声明一个常量
begin
  select ename,sal
  into v_ename,v_sal
  from emp where empno=c_empno;
  dbms_output.put_line('Employees name is: '||v_ename);
  dbms_output.put_line('Employees sal is: ' ||v_sal);
 end;
定义变量时赋值或者执行时赋值
set serveroutput on
declare
v_ename varchar2(10);
v_sal   number(7,2);
c_empno number(4);
begin
  c_empno:=7788;
  select ename,sal
  into v_ename,v_sal
  from emp where empno=c_empno;
  dbms_output.put_line('Employees name is: '||v_ename);
  dbms_output.put_line('Employees sal is: ' ||v_sal);
 end;

set serveroutput on
   declare
    v_ename varchar2(10);
    v_sal   number(7,2);
   begin
      select ename,sal
      into v_ename,v_sal
      from emp where empno=#
      dbms_output.put_line('Employees name is: '||v_ename);
      dbms_output.put_line('Employees sal is: ' ||v_sal);
   exception
     when NO_DATA_FOUND then
    dbms_output.put_line('Please input currect number!');
     end;

定义布尔类型,并且设置默认值
v_valid boolean not null default false;

v_name emp.ename%TYPE;  -----变量类型会随emp.ename字段类型改变,也就是%type保证变量的数据类型和表中字段的数据类型一致

转载于:https://blog.51cto.com/duxiutemp/1875511

pl/sql基础练习相关推荐

  1. Oracle PL/SQL基础知识

    Oracle PL/SQL基础知识 过程(存储过程) 过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out).通过在过程中使用输入参数,可以将数据传递到执行部分 ...

  2. ORACLE甚而,PL/SQL基础

    Oracle PL/SQL语言基础 PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用 ...

  3. oracle空间数据库实验报告,Oracle数据库实验报告六 PL/SQL基础

    Oracle数据库实验报告六 PL/SQL基础 -by QQC from BTBU [实验目的] PL/SQL的安装网上有很多教程这里就不做赘述了,如果后序需求大的话我再考虑做一期PL/SQL安装使用 ...

  4. PL/SQL基础之DECLARE部分(整理)

    整理于 Oracle PL/SQL编程详解 - 古立 - 博客园 PL/SQL基础之DECLARE部分整理 PL/SQL块的结构 声明规范 标识符 数据类型 定义记录类型语法: 定义VARRY数据类型 ...

  5. Oracle PL/SQL基础语法学习13:比较运算符

    系列文章目录 Oracle PL/SQL基础语法学习12:短路求值 Oracle PL/SQL基础语法学习13:比较运算符 Oracle PL/SQL基础语法学习14:BOOLEAN表达式 文章目录 ...

  6. Oracle442个应用场景---------PL/SQL基础

    ----------------------------------------------------------------------------------- 备份和恢复数据库略过.在后面解说 ...

  7. 20个案例掌握PL/SQL 基础

    有MS SQL基础,学习了两周多的PL/SQL,做了一些事例,但是很多信息在网上难以找到太多正确的答案,看到一篇又一篇的PL/SQL博文,案例方面的博文一篇又一篇的雷同,一看就是是Ctrl+C的复制. ...

  8. pl/sql基础知识—定义并使用变量

    n  介绍 在编写pl/sql程序是,可以定义变量和常量:在pl/sql程序中包括有: ①标量类型(scalar) ②复合类型(composite) ③参照类型(reference) ④lob(lar ...

  9. PL/SQL基础(1):语法

    本篇是 Oracle基础小结 系列之一. 本篇目录 1.什么是PL/SQL? 2.PL/SQL基本结构 3.PL/SQL符号定义 4.PL/SQL数据类型 5.PL/SQL条件句法 6.PL/SQL循 ...

最新文章

  1. 实现Web虚拟现实的最轻松方案—A-Frame框架
  2. 【复习】服务器主板——Leez P710
  3. 物料创建更新相关Table
  4. Java领域的对象如何传输-基于 socket 进行对象传输
  5. Linux网络编程(Socket)
  6. python waitkey_python中VideoCapture(),read(),waitKey()的使用
  7. Jquery 操作select总结
  8. 链接服务器 因为它不存在或者您没有所需的权限。处理
  9. array_keys_PHP array_keys()函数与示例
  10. 图标圆角角度_UI设计中图标的规范及原则【附全套视频】
  11. NLP算法工程师对NLP的一些看法
  12. Redis 多机多节点集群搭建方案(5.0版本)
  13. Leecode刷题热题HOT100(3)——无重复字符最长子串
  14. asp adodb连接mysql数据库语句_ASP连接MySQL数据库的方法
  15. linux下搭建DNS子域及相关授权详解
  16. python黑帽子(黑客与渗透测试编程之道)
  17. 新编C语言习题与解析,新编C语言习题与解析
  18. 龙芯 python_在UOS20-龙芯(MIPS64EL)上安装 opencv-python
  19. 消消乐游戏算法实现(三消乐)
  20. 关于SIM800C 2G通信模块的电路设计上需要注意的地方

热门文章

  1. ORB-SLAM介绍(无源码版本)
  2. Method for Discovering Network Topology中文翻译【Z-Stack Home 1.2.0开发文档】
  3. liteide无法自动补全代码问题解决【go: cannot find GOROOT directory: c:\go】
  4. js实现表单checkbox的单选,全选
  5. 命名空间 namespace
  6. easy ui datagrid 中getSelections方法只能获取一行数据
  7. 关于Config.ARGB_8888、Config.ALPHA_8、Config.ARGB_4444、Config.RGB_565的理解
  8. Windows Win7建立wifi热点,手机共享WIFI上网
  9. SharePoint 2010: 对于开发人员
  10. Java笔记(四)各类容器,set,map,队列实现