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


目录
相关文章
|
2月前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
2月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL隐式游标:数据的“自动导游”与“轻松之旅”
【4月更文挑战第19天】Oracle PL/SQL中的隐式游标是自动管理的数据导航工具,简化编程工作,尤其适用于简单查询和DML操作。它自动处理数据访问,提供高效、简洁的代码,但不适用于复杂场景。显式游标在需要精细控制时更有优势。了解并适时使用隐式游标,能提升数据处理效率,让开发更加轻松。
|
2月前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(五):PL/SQL编程
【Oracle】玩转Oracle数据库(五):PL/SQL编程
84 8
|
6天前
|
SQL XML Java
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
24 3
|
9天前
|
SQL 数据库 Perl
PL/SQL中执行按钮变为灰色后如何恢复【已解决】
PL/SQL中执行按钮变为灰色后如何恢复【已解决】
16 0
|
2月前
|
SQL 分布式计算 关系型数据库
Spark编程实验三:Spark SQL编程
Spark编程实验三:Spark SQL编程
35 1
|
2月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
2月前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
2月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL表达式:数据的魔法公式
【4月更文挑战第19天】探索Oracle PL/SQL表达式,体验数据的魔法公式。表达式结合常量、变量、运算符和函数,用于数据运算与转换。算术运算符处理数值计算,比较运算符执行数据比较,内置函数如TO_CHAR、ROUND和SUBSTR提供多样化操作。条件表达式如CASE和NULLIF实现灵活逻辑判断。广泛应用于SQL查询和PL/SQL程序,助你驾驭数据,揭示其背后的规律与秘密,成为数据魔法师。
|
2月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标自定义异常:数据探险家的“专属警示灯”
【4月更文挑战第19天】Oracle PL/SQL中的游标自定义异常是处理数据异常的有效工具,犹如数据探险家的警示灯。通过声明异常名(如`LOW_SALARY_EXCEPTION`)并在满足特定条件(如薪资低于阈值)时使用`RAISE`抛出异常,能灵活应对复杂业务规则。示例代码展示了如何在游标操作中定义和捕获自定义异常,提升代码可读性和维护性,确保在面对数据挑战时能及时响应。掌握自定义异常,让数据管理更从容。