PL/SQL编程-块编程

简介: PL/SQL编程-块编程

6bdc8ae874813178e31f77611072b749.png



f26e25d7dae2fc2955c4c321ff54f54c.png

(1). 简单分类

                         |————过程(存储过程)

                         |

                         |————函数

      块(编程)———|

                         |————触发器

                         |

                         |————包


(2). 编写规范  

 a. 单行注释 --

         select * from emp where empno=7788;  --取得员工信息

     b. 多行注释 /*...*/ 来划分

(3). 标志符号的命名规范

     1).当定义变量时,建议用v_作为前缀v_sal

     2).当定义常量时,

建议用c_作为前缀c_rate

     3).当定义游标时,建议用_cursor作为后缀emp_cursor

     4).当定义例外时,建议用e_作为前缀e_error

da528cded344762a9714eb1c229cf3a1.png


变量 语句函数类架构

pl/sql 语句由三部分构成:定义部分、执行部分、例外处理部分(异常)

declear

/*定义部分--定义常量、变量、游标、例外、复杂数据类型、*/

begin

/*执行部分--要执行pl/sql语句和sql语句

exception

/*例外处理部分--处理运行的各种错误*/

end;

d6357570316f9b8b2dd23870f56ea6da.png


b87474abb564ff33d26b1684e00aeb71.png

就相当与java里面一个类下面的方法,但是Oracle中观这个叫做包,也就是dbms_output是一个包他下面的put_line实际上是个储过程,他有一个入参A也就是准备打印的字符串,相当于java中的system.out.println()。


395ff19f9320c5543812cc9a6e97878e.png

SQL> select * from mytest
  2  l
  3  ;
NAME                           PASSWD                         ID
------------------------------ ------------------------------ --
翎野君                         123456                         1
李超                           2222                           2
小王                           1222                           3
SQL>
SQL> declare
  2  v_name varchar2(20);
  3  v_passwd varchar2(20);
  4  begin
  5  select name,passwd into v_name,v_passwd from mytest where id=&inpt;
  6  dbms_output.put_line('户名:'||v_name||' 密码:'||v_passwd);
  7  end;
  8  /
户名:翎野君 密码:123456
PL/SQL procedure successfully completed

注意declare的写法不要写错,另外在数据库中尽量都改用单引号,双引号报错很难找;

bec50987658bc6bf6ebe428c05c47b23.png


如上面的查询中如果输入的查询结果随便输一个的话就会报错,不会正常的执行下面的Pl/sql语句

我们新加一个异常处理就可以了。

SQL> declare
  2  v_name varchar2(20);
  3  v_passwd varchar2(20);
  4  begin
  5  select name,passwd into v_name,v_passwd from mytest where id=&inpt;
  6  dbms_output.put_line('户名:'||v_name||' 密码:'||v_passwd);
  7  exception
  8  when no_data_found then
  9  dbms_output.put_line('请检查输入');
 10  end;
 11  /
请检查输入
PL/SQL procedure successfully completed


目录
相关文章
|
6月前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
6月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL隐式游标:数据的“自动导游”与“轻松之旅”
【4月更文挑战第19天】Oracle PL/SQL中的隐式游标是自动管理的数据导航工具,简化编程工作,尤其适用于简单查询和DML操作。它自动处理数据访问,提供高效、简洁的代码,但不适用于复杂场景。显式游标在需要精细控制时更有优势。了解并适时使用隐式游标,能提升数据处理效率,让开发更加轻松。
|
22天前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
16 2
|
14天前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
3月前
|
SQL Oracle 关系型数据库
SQL与PL/SQL:数据库编程语言的比较
【8月更文挑战第31天】
69 0
|
3月前
|
SQL 数据库 索引
SQL 编程最佳实践简直太牛啦!带你编写高效又可维护的 SQL 代码,轻松应对数据库挑战!
【8月更文挑战第31天】在SQL编程中,高效与可维护的代码至关重要,不仅能提升数据库性能,还降低维护成本。本文通过案例分析探讨SQL最佳实践:避免全表扫描,利用索引加速查询;合理使用JOIN,避免性能问题;避免使用`SELECT *`,减少不必要的数据传输;使用`COMMIT`和`ROLLBACK`确保事务一致性;添加注释提高代码可读性。遵循这些实践,不仅提升性能,还便于后期维护和扩展。应根据具体情况选择合适方法并持续优化SQL代码。
56 0
|
5月前
|
SQL XML Java
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
72 3
|
5月前
|
SQL 数据库 Perl
PL/SQL中执行按钮变为灰色后如何恢复【已解决】
PL/SQL中执行按钮变为灰色后如何恢复【已解决】
512 0
|
6月前
|
SQL 分布式计算 关系型数据库
Spark编程实验三:Spark SQL编程
Spark编程实验三:Spark SQL编程
156 1
|
6月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。