PLSQL之循环和游标

AM243x多核MCU启动流程解析与OSPI Flash烧录实战 嵌入式系统开发中,引导加载器是芯片上电后执行的第一段软件,负责初始化硬件、加载操作系统或应用程序。其工作原理通常遵循多级引导链,从ROM固件到用户可定制的二级引导程序,逐级建立完整的软件运行环境。这一机制的技术价值在于实现可靠的系统启动、支持安全校验,并为多核异构架构提供协同基础。在应用场景上,引导加载器广泛应用于工业控制、汽车电子和物联网设备,确保设备能从非易失性存储器中自主启动。本文聚焦于TI AM243x这类高性能多核MCU,深入剖析其包含RBL和SBL在内的三级启动流程,并详细演示如何通过UART接 阅读详情

 

关于Struts2 + spring + hibernate进Q群: 130529143交流

 

 

 

1.PLSQL循环:

--使用循环语句打印;1--100:

--1.初始化条件;2.循环体;3.循环条件;4.迭代条件
declare 
  v_i number(5) := 1;--1.初始化条件
begin 
  loop 
      dbms_output.put_line(v_i);--2.循环体
      
  exit when v_i >= 100; --3.循环条件
       v_i := v_i + 1;--4.迭代条件
  end loop;              
end;




--使用循环语句打印;1--100;
--1.初始化条件;2.循环体;3.循环条件;4.迭代条件
declare 
  v_i number(5) := 1;--1.初始化条件
begin 
  while v_i <= 100 loop --3.循环条件
      dbms_output.put_line(v_i);--2.循环体
       v_i := v_i + 1;--4.迭代条件
  end loop;              
end;



--使用循环语句打印;1--100;
--1.初始化条件;2.循环体;3.循环条件;4.迭代条件
begin 
  for c in 1 .. 100 loop 
    dbms_output.put_line(c);
  end loop;
end;




--使用循环语句打印;1--100;
--1.初始化条件;2.循环体;3.循环条件;4.迭代条件
begin 
  for c in reverse 1 .. 100 loop 
    dbms_output.put_line(c);
  end loop;
end;

 

 

 


--输出2-100之间的质数
declare 
  v_i number(3) := 2;
  v_j number(3) := 2;
  v_flag number(1) := 1;
begin 
  while v_i <= 100 loop 
    while v_j <= sqrt(v_i) loop 
      if mod(v_i,v_j)= 0 then v_flag := 0;
      end if;
      v_j := v_j + 1;
    end loop;
    v_j := 2;--初始化
    
    if v_flag = 1 then 
      dbms_output.put_line(v_i);
    end if;
    
    v_i := v_i + 1;
    v_flag := 1;
  end loop;
end;




--输出2-100之间的质数
declare
  v_flag number(1) := 1;
begin 
  for i in 2 .. 100 loop 
    for j in 2 .. trunc(sqrt(i)) loop  
      if mod(i,j)= 0 then v_flag := 0;
      end if;
    end loop;
    if v_flag = 1 then 
      dbms_output.put_line(i);
    end if;
    v_flag := 1;
  end loop;
end;







--输出2-100之间的质数
declare
  v_flag number(1) := 1;
begin 
  for i in 2 .. 100 loop 
    for j in 2 .. trunc(sqrt(i)) loop  
      if mod(i,j)= 0 then v_flag := 0;
         goto label;--满足条件跳出当前层循环
      end if;
    end loop;
    
    <<label>>
    if v_flag = 1 then 
      dbms_output.put_line(i);
    end if;
    v_flag := 1;
  end loop;
end;







begin 
  for i in 1 .. 100 loop 
    if i = 50 then 
       goto label;
    end if; 
   
    dbms_output.put_line(i);
  end loop;
  <<label>>
  dbms_output.put_line('打印结束');
end;






begin 
  for i in 1 .. 100 loop 
    if i = 51 then 
       dbms_output.put_line('打印结束');
       exit;
    end if; 
    dbms_output.put_line(i);
  end loop;
  

 

 

end;

 


2.PLSQL游标:

--打印80号部门的所有员工的工资
declare 
  v_sal employees.salary%type;
  --定义游标
  cursor emp_sal_cursor is select salary from employees where department_id = 80;
begin 
  --打开游标
  open emp_sal_cursor;
  
  --提取游标
  fetch emp_sal_cursor into v_sal;
  
  while emp_sal_cursor%found loop
    dbms_output.put_line('salary:'||v_sal);
    fetch emp_sal_cursor into v_sal;
  end loop;  

   --关闭游标
  close emp_sal_cursor;
end; 




--打印80号部门的所有员工的工资
declare 
  v_sal employees.salary%type;
  v_empid employees.employee_id%type;
  --定义游标
  cursor emp_sal_cursor is select employee_id, salary from employees where department_id = 80;
begin 
  --打开游标
  open emp_sal_cursor;
  
  --提取游标
  fetch emp_sal_cursor into v_empid,v_sal;
  
  while emp_sal_cursor%found loop
    dbms_output.put_line('id:'||v_empid || 'salary:'||v_sal);
    fetch emp_sal_cursor into v_empid,v_sal;
  end loop;  
  
  --关闭游标
  close emp_sal_cursor;
end; 




--打印80号部门的所有员工的工资
declare 
  --声明记录类型
  type emp_record is record(
    v_empid employees.employee_id%type,
    v_sal employees.salary%type
  );
  --声明一个记录类型变量
  v_emp_record emp_record;
 
  --定义游标
  cursor emp_sal_cursor is select employee_id, salary from employees where department_id = 80;
begin 
  --打开游标
  open emp_sal_cursor;
  
  --提取游标
  fetch emp_sal_cursor into v_emp_record;
  
  while emp_sal_cursor%found loop
    dbms_output.put_line('id:'||v_emp_record.v_empid || 'salary:'||v_emp_record.v_sal);
    fetch emp_sal_cursor into v_emp_record;
  end loop;  
  
  --关闭游标
  close emp_sal_cursor;
end; 





--打印80号部门的所有员工的工资
declare 
  --声明记录类型
  type emp_record is record(
    v_empid employees.employee_id%type,--这个两个顺序与定义游标时的顺序对应
    v_sal employees.salary%type --这个两个顺序与定义游标时的顺序对应
  );
  --声明一个记录类型变量
  v_emp_record emp_record;
 
  --定义游标
  cursor emp_sal_cursor is select employee_id, salary from employees where department_id = 80;
begin 
  --打开游标
  open emp_sal_cursor;
  
  --提取游标
  fetch emp_sal_cursor into v_emp_record;
  
  while emp_sal_cursor%found loop
    dbms_output.put_line('id:'||v_emp_record.v_empid || 'salary:'||v_emp_record.v_sal);
    fetch emp_sal_cursor into v_emp_record;
  end loop;  
  
  --关闭游标
  close emp_sal_cursor;
end; 






--打印80号部门的所有员工的工资
declare 
  --定义游标
  cursor emp_sal_cursor is select employee_id, salary from employees where department_id = 80;
begin 
  for c in emp_sal_cursor loop
    dbms_output.put_line('id:'||c.employee_id || 'salary:'||c.salary);
  end loop;  
end; 





--使用游标调整公司中员工的工资
declare 
  cursor emp_sal_cursor is select employee_id, salary from employees;
  
  v_temp number(4,2);
  v_empid employees.employee_id%type;
  v_sal employees.salary%type;
  
begin 
  open emp_sal_cursor;
  fetch emp_sal_cursor into v_empid, v_sal;


  while emp_sal_cursor%found loop
    if v_sal < 5000 then v_temp := 0.05;
    elsif v_sal < 10000 then v_temp := 0.03;
    elsif v_sal < 15000 then v_temp := 0.02;
    else v_temp := 0.01;
    end if;
    dbms_output.put_line(v_empid||','||v_sal);
    update employees set salary = salary * (1 + v_temp) where employee_id = v_empid;
    
    fetch emp_sal_cursor into v_empid, v_sal;
  end loop;
  
  close emp_sal_cursor;
    
end;
  





--使用游标调整公司中员工的工资
declare 
  cursor emp_sal_cursor is select employee_id, salary from employees;
  v_temp number(4,2);
 
begin 
  for c in emp_sal_cursor loop
    if c.salary < 5000 then v_temp := 0.05;
    elsif c.salary < 10000 then v_temp := 0.03;
    elsif c.salary < 15000 then v_temp := 0.02;
    else v_temp := 0.01;
    end if;
    dbms_output.put_line(c.employee_id||','||c.salary);
    update employees set salary = salary * (1 + v_temp) where employee_id = c.employee_id;
    
  end loop;   
end;

--取出游标中的多个属性

CREATE OR REPLACE PROCEDURE BRPMS.P_PREWORK_GZZB(V_REC_NUM      IN NUMBER,
                                                 V_JOBTYPE_ID   IN VARCHAR2,
                                                 V_DEV_TYPE     IN VARCHAR2,
                                                 V_DEV_MODAL    IN VARCHAR2,
                                                 V_SPEC_CODE    IN VARCHAR2,
                                                 V_PERWORK_TYPE IN VARCHAR2) AS
  TYPE R_TYPE IS RECORD(
    V_REC_NUM      BRPMS.TB_WIT_INSTRUCT_PREWORK.REC_NUM%TYPE,
    V_JOBTYPE_ID   BRPMS.TB_WIT_INSTRUCT_PREWORK.JOBTYPE_ID%TYPE,
    V_DEV_TYPE     BRPMS.TB_WIT_INSTRUCT_PREWORK.DEV_TYPE%TYPE,
    V_DEV_MODAL    BRPMS.TB_WIT_INSTRUCT_PREWORK.DEV_MODAL%TYPE,
    V_SPEC_CODE    BRPMS.TB_WIT_INSTRUCT_PREWORK.SPEC_CODE%TYPE,
    V_PERWORK_TYPE BRPMS.TB_WIT_INSTRUCT_PREWORK.PERWORK_TYPE%TYPE);

  V_R1 R_TYPE;

--定义游标
  CURSOR MYCURSOR IS
    SELECT MAX(P.REC_NUM),
           P.JOBTYPE_ID,
           P.DEV_TYPE,
           P.DEV_MODAL,
           P.SPEC_CODE,
           P.PERWORK_TYPE
      FROM BRPMS.TB_WIT_INSTRUCT_PREWORK P
     WHERE P.PERWORK_TYPE = '0600301'
       AND P.CONTENT != '工器具已准备完毕,材料、备品已落实。'
     GROUP BY P.JOBTYPE_ID,
              P.DEV_TYPE,
              P.DEV_MODAL,
              P.SPEC_CODE,
              P.PERWORK_TYPE;
BEGIN
  OPEN MYCURSOR;
  LOOP
    FETCH MYCURSOR
      INTO V_R1;
    EXIT WHEN MYCURSOR%NOTFOUND;
    INSERT INTO BRPMS.TB_WIT_INSTRUCT_PREWORK
      (GUID,
       JOBTYPE_ID,
       DEV_TYPE,
       DEV_MODAL,
       SPEC_CODE,
       PERWORK_TYPE,
       REC_NUM,
       CONTENT)
    VALUES
      (SYS_GUID(),

      --取出游标中的属性
       V_R1.V_JOBTYPE_ID,
       V_R1.V_DEV_TYPE,
       V_R1.V_DEV_MODAL,
       V_R1.V_SPEC_CODE,
       '0600301',
       V_R1.V_REC_NUM + 1,
       '工器具已准备完毕,材料、备品已落实。');
    COMMIT;
  END LOOP;
  CLOSE MYCURSOR;
END;

 

 

关于Struts2 + spring + hibernate进Q群: 130529143交流。
有偿技术支持Q群:398162181 

 

向华为学习——解读158页 华为敏捷园区网技术解决方案【附全文阅读】 华为敏捷园区网解决方案通过策略随行和体验随身技术,满足移动办公场景下的网络需求。该方案采用敏捷交换机和防火墙自动执行策略配置,实现用户身份认证与业务策略的无缝衔接,且策略配置与IP地址解耦,简化了管理流程。相比传统技术,该方案有效解决了用户分级、QoS保障、无线接入等关键问题,确保用户在移动过程中获得一致的网络体验。 阅读详情

相关推荐

[kriging](一)网上下载的kriging克里金的C++程序的初步调试

笔者在网上下载了一份克里金的C++程序,水平有限,正在逐步地调试中。 初步 克里金法现在在许多软件都已经有集成了,据笔者所知: arcgis : 看过有的arcgis培训视频里面简略介绍了里面的插值方法,有克里金。 surfer :笔者用过这个,效果很好。 gocad :听说有 landmark &jason :研究生时候用的专业的石油物探软件,里面有克里金法,万恶的开始。 pykrig...

FOREST优快云 5609

Oracle (PLSQL) [循环,游标]

学习笔记

m0_65651209的博客 3661

等时替代模型( Isotemporal Substitution Model)

文献阅读:Associations of sedentary time and physical activity with adverse health conditions: Outcome-wide analyses using isotemporal substitution model(该论文于2022年4月28日发表在柳叶刀子刊 EClinicalMedicine 上)

姚巨龙的博客 1万+

Oracle 数据库的PLSQL块,游标、函数,存储过程与触发器的使用方法与案例

Oracle 数据库的PLSQL块,游标、函数,存储过程与触发器的使用方法与案例

头好重好重的博客 5906

【深度学习】tensorboard中的图片放到论文中

1. 利用tensorboard中的导出数据功能 选中左上角的标签,然后选择csv格式的数据下载即可。 左边的smoothing 数值不影响导出数据的大小。 2.tensorboard 图下标签介绍: 放大 Toggle y-axis log scale:将y轴对数化 Fit domain to data:如果拖动了图片等,再重新回到原始位置 Download Current Chart as SVG 3.用下载下来的csv数据来画图 第一幅图片:训练的平均长度 fig, ax1 = plt.sub

gaocui883的博客 1万+

EDA公司(一):Synopsys-- 主要 EDA 工具及其简介

Synopsys 是一家领先的电子设计自动化(EDA)软件公司,提供了一系列全面的产品和服务,旨在支持从概念设计到大规模生产的各个阶段。Synopsys 的 EDA 工具覆盖了芯片设计的各个方面,包括但不限于逻辑综合、静态时序分析、功能验证、物理实现、形式验证、测试插入、电源分析、信号完整性分析等。

MHD0815的博客 3309

PLSQL——循环控制(LOOP、WHILE、FOR、SELECT INTO)

循环控制用于重复执行一系列语句 循环控制的三种类型: LOOP - 无条件循环loop WHILE - 根据条件循环while FOR - 循环固定的次数for语法: loop plsql语句; exit when 退出循环条件; 循环控制语句; end loop; 如: exit when:退出循环关键字,如果条件成立立即退出循环 continue:退出本次循环,不会结束循环, 如:1、2、3结束1、2、3结束1、2、3结束… return:退出程序,结束整个程序语法: while 循环条

m0_72036727的博客 4203

形式化方法(Formal Methods)和人工智能(Artificial Intelligence)

一、形式化方法(Formal Methods) ​ 形式化方法最初应用在硬件上,验证硬件的正确性,后面逐渐应用到软件编程中,能够在软件中找到软件的错误,验证软件的安全可靠。形式化方法更加接近离散数学,所以其应用难度非常大,同时学习成本也较高。再加上形式化方法的大多数理论还停留在上个世纪,由于程序越来越复杂,导致形式化方法进行验证需要大量人工和时间,以至于现在绝大部分软件开发人员完全没有考虑过这个方法,甚至没有听说过这个名词。 ​ 形式化方法最新的应用成果是在工业上,比如一些极其重要且对安全性要求极高的领域(

qq_37030400的博客 4004

PLSQL LOOP,WHILE.FOR 循环,游标

循环 --注意自增 语法 loop 要执行的语句; [exit when 退出条件;] end loop; --循环打印1-10 declare v1 number:=1; begin loop dbms_output.put_line(v1); v1:=v1+1; exit when v1=11; end loop; end; --循环的三大组成部分:初始值,顺序,退出条件 --循环打印1-10 declare v1 ...

Tapyou的博客 1508

XSS漏洞之PDF生成:从XSS到服务端任意文件读取

XSS是最为常见的Web漏洞之一,多年来连续入选OWASP TOP10,相信大家都耳熟能详。 它是一种代码注入类的攻击,是一种客户端侧的攻击,攻击者通过在Web应用中注入恶意JavaScript代码,通过点击URL,最终在受害者浏览器端执行的一种漏洞。主要有反射型XSS、存储型XSS、基于DOM的XSS三类。XSS一些比较常规的危害大概有:重定向浏览器、窃取Cookie、浏览器劫持等。本文章侧重于发现XSS后的进一步利用。 主要介绍在某次实际测试过程中,发现XSS漏洞之后,如何进一步的利用,最终通过XSS达

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 3777

全网最全-DA14531-全球最小-BLE从入门到精通开发教程

本教程主要适用于低功耗产品,DA14531它体积小,非常适用于对体积敏感的设备,如无线可穿戴、传感器、助听器等设备。本文经过作者发大量时间来记录开发项目的调试方法,里面有许多笔者开发心得体会,旨在让读者工程师快速上手,减少摸索时间,提高软件质量。读者对象本文档主要适用以下工程师:嵌入式系统工程师单片机软件工程师IOT固件工程师BLE固件工程师。

hejinwu1314的博客 5137

PLSQL 循环游标 cursor loop fetch into

PLSQL 循环游标 cursor 的一点心得体会set serveroutput on---------------打印输出信息,默认是FALSEdeclare --------------------申明变量,分号结束v_pages number;v_numberPerPage number;v_totalPages number;v_cur sys_refcurso...

ywl470812087的博客 14万+

在 SAP HANA 里为视图创建 Analytic Privilege,真正把同一份数据按角色切开

摘要:本文介绍了SAP HANA中基于业务角色的动态数据权限控制方法。通过Analytic Privilege技术,可以在同一视图上为不同角色设置不同的数据访问范围,实现行级安全控制。核心机制包括:1) 创建带有STRUCTURED PRIVILEGE CHECK的视图;2) 建立授权对象和用户映射表;3) 开发条件提供过程动态生成过滤条件;4) 创建结构化权限对象绑定条件提供器。这种设计使权限规则与业务数据解耦,便于维护变更,适合销售区域、财务数据等多角色访问控制场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2390

PLSQL 循环游标 cursor loop fetch into【转载】

PLSQL 循环游标 cursor loop fetch into【转载】 PLSQL 循环游标 cursor 的一点心得体会  编辑 文章分类:数据库  set serveroutput on---------------打印输出信息,默认是FALSE  declare --------------------申明变量,分号结束  v_pages number;  v_n

wguoyong的专栏 5839

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

plsql游标、循环排错

declare   v_orgid varchar2(20);   v_count BINARY_INTEGER;   cursor c_Orgid is     select hou.organization_id from hr_operating_units hou; begin   open c_Orgid;   loop     fetch c_Orgid into v_

x_xiaoge的专栏 481

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

4. PLSQL中的游标

1.5 PLSQL中的游标1.5.1游标的概念 1.5.1游标的概念 游标(cuscor)可以看作私有sql区的句柄或名称,在sql语句执行过程中保存解析后的语句和其他信息 1.隐式游标与显式游标 游标分为隐式游标和显式游标 1)隐式游标 当运行DML与SELECT INTO语句时,PLSQL会打开一个隐式游标,隐式游标自动打开,自动关闭,无法人工干预 2)显示游标 用户在代码中定义的游标,并由用户在程序中控制打开,检索,关闭 ----》操作分为4步:定义游标,打开游标,检索游标,关闭游标 ----》只能指

weixin_46760148的博客 1442

Day42_PLSQL 游标、循环、DML

2013年11月28日 星期四 09时37分57秒 一、PLSQL 中如何使用sql语句   1.select 语句     select 语句要和into结合使用     select id,first_name into 变量 from s_emp where id=1;   2.dml语句(insert delete update)     tcl语句(commit rol

但求有朝一日,风起云涌,笑看苍穹 953

oracle PLSQL cursor和循环结合使用

oracle PLSQL cursor和循环结合使用 /*for循环和cursor*/ declare v_empno number(5); v_ename varchar2(100); cursor e_cur is select empno, ename from scott.emp; begin open e_cur; loop --进行循环 fet...

Martin201609的博客 1922

PLSQL 循环游标 cursor 的一点心得体会

set serveroutput on---------------打印输出信息,默认是FALSE declare --------------------申明变量,分号结束 v_pages number;v_numberPerPage number;v_totalPages number;v_cur        sys_refcursor; diy_id  number;diy_name...

panshunchang 612

Oracle的游标使用方法 三种循环遍历游标方法(即plsql三种循环方法)

  Oracle的游标使用方法 三种循环 2017年03月31日 23:24:07 嶶風 阅读数:8664 标签: oracle 更多 个人分类: oracle 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/S630730701/article/details/68938837 例: 游标 LOOP循环游标   SET SERVERI...

许恒的博客 2万+

mysql plsql循环语句吗,Oracle PLSQL 在游标中用while循环实例程序

Oracle PLSQL 在游标中用while循环实例程序Oracle PLSQL 在游标中用while循环实例程序Oracle PLSQL 在游标中用while循环实例程序declarecursor emp_cur is select * from emp;v_emp emp%rowType;beginopen emp_cur;while emp_cur%notfound --while肯定要跟...

weixin_42519985的博客 167

plsql中写的for循环游标

从ID列中找出不连续的ID号,并打印出来。 DECLARE   V_ID         VARCHAR2(20);   V_NAME       VARCHAR2(20);   V_DATE       DATE;   V_STARTVALUE NUMBER; BEGIN   V_STARTVALUE := 1;   FOR IN_DEPT_USERNUM IN (SELECT ID     ...

qinshihuanglove2的专栏 1913

oracle 游标循环 while,Oracle PLSQL 在游标中用while循环实例程序

declarecursor emp_cur is select * from emp;v_emp emp%rowType;beginopen emp_cur;while emp_cur%notfound --while肯定要跟loop一起用的 且是控制循环体的loopfetch emp_cur into v_emp;dbms_output.put_line(v_emp.ename);end loo...

weixin_42338883的博客 504

oracle 游标三种循环 不同,Oracle的游标使用方法 三种循环遍历游标方法(即plsql三种循环方法)...

Oracle的游标使用方法 三种循环2017年03月31日 23:24:07嶶風阅读数:8664标签:oracle更多版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/S630730701/article/details/68938837例: 游标 LOOP循环游标SET SERVERIUTPUT ONDECLARER_emp EMP%RO...

weixin_35945980的博客 304

PLSQL入门与精通(第11章:游标双循环处理)

一般情况下,数据要以一栏和明细的形式在画面上显示。这种程序相对会复杂一些。 例如,首先有一行是部门的数据,在部门下方需要显示多行该部门的员工的信息。然后,再显示下一个部门的数据,再显示部门所属的员工信息;然后。。 重复同样的处理。 这样的表示在简单的SELECT语句中很难,即使是编程,也必须在标题(部门)的循环处理中记述细节(社员)的循环处理。 也就是说,需要双重循环构造,所以编程会变得复杂。 但是,如果使用游标FOR循环句,即使是双重循环结构,也很简单。 请看下面的例子。仅8行执行双循环处理。 SQL&g

niusr_1980_01的博客 676
上一篇: PLSQL之触发器
下一篇: 数据库之左外连接、右外连接、全外连接
eplusing
博客等级 码龄12年 45粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值