PLSQL 基础语法(一)

变量声明与赋值

语法结构

sql 复制代码
[delare
     -- 申明变量
 ]
 begin
     -- 代码逻辑
 [exception
     -- 异常处理
 ]
end;

案例演示

需求

  1. 声明变量水费单价、水费字数、吨数、金额

  2. 对水费单价、字数、进行赋值。吨数根据水费字数换算,规则为水费字数除以1000,并且四舍五入,保留两位小数。计算金额,金额单价*吨数

  3. 输出单价、数量和金额

语句

sql 复制代码
declare
  v_price number(10,2); --单价
  v_usenum number; --水费字数
  v_usenum2 number; --吨数
  v_money number(10,2); --金额
begin
  v_price:=2.45; --单价赋值
  v_usenum:=9123; --水费字数
  v_usenum2:=round(v_usenum/1000,2);--吨数
  v_money:=v_price*v_usenum2;--金额
  
  DBMS_OUTPUT.put_line('金额:'||v_money);
end;

变量select into 赋值

语法结构

csharp 复制代码
select 列名 into 变量名 from 表名 where 条件

注: 结果必须是一条数据,有多条和没有数据都会报错

案例演示

需求

查询id为100的员工月薪资

语句

sql 复制代码
declare 
  e_salary number(10,2); --月工资
begin
  select salary into e_salary from employees
  where employee_id = 100;   
  DBMS_OUTPUT.put_line('工资:'||e_salary);
end;

属性类型

引用型

记录型

相关异常处理

种类

  1. NO_DATA_FOUND:使用 select into 未返回行
  2. TOO_MANY_ROWS:执行 select into 时,结果集超过一行

语法结构

csharp 复制代码
exception
    when 异常类型 then
        异常处理逻辑

演示一

sql 复制代码
-- 异常处理
declare 
  employee employees%rowtype;
begin
  select * into employee from employees where employee_id = 12345;   
  DBMS_OUTPUT.put_line('工资:'||employee.salary);
exception
  when no_data_found then
     DBMS_OUTPUT.put_line('没有找到该用户');
end;

演示二

sql 复制代码
-- 异常处理
declare 
  employee employees%rowtype;
begin
  select * into employee from employees ;   
  DBMS_OUTPUT.put_line('工资:'||employee.salary);
exception
  when no_data_found then
     DBMS_OUTPUT.put_line('没有找到该用户');
 when too_many_rows then
     DBMS_OUTPUT.put_line('存在多条符合条件的数据');
end;
相关推荐
JaguarJack2 分钟前
免费可商用 PHP 管理后台 CatchAdmin V5.3.1 发布 后台打包直降 5s 内
后端·php·laravel
小张小张爱学习1 小时前
Spring Boot 多线程并发入门教程:ThreadPoolTaskExecutor + CompletableFuture
java·spring boot·后端
西安邮电大学1 小时前
Redis核心数据结构以及应用场景
java·redis·后端·其他·面试
AskHarries1 小时前
做 SaaS 还是做 App
后端
卷无止境1 小时前
银行里的"等不了"——SimPy Bank Renege 示例全解析
后端
星栈1 小时前
别再满项目乱丢 String:我开始给领域错误分层了
后端·代码规范
卷无止境1 小时前
SimPy 监控与数据收集:完整指南
后端
卷无止境2 小时前
Event Latency:把"等待"这件事,交给电缆来负责
后端
武子康2 小时前
Java-10 深入浅出 MyBatis 一对多与多对多查询配置详解
java·后端
一 乐2 小时前
网上订餐系统|基于springboot的网上订餐系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·网上订餐系统