PL/SQL学习

1.第四代编程语言

PL/SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对Oracle数据库进行访问。由于该语言继承于数据库服务器中,所以PL/SQL代码可以对数据记性快速搞笑的处理。

SQL是先进的第四代程序设计语言,使用这种语言只需对要完成的任务进行描述,而不必指定实现任务的具体方法。

比如一个删除操作用SQL:

 

delet from student where condition

 

然而要是应用第三代的编程语言,C、java都需要进行循环实现的。

2.为什么要提出PL/SQL

     SQL作为第四代编程语言使用起来非常的简单,对数据的具体处理完全由该类语言的运行时系统进行实现。而某些情况下,第三代语言使用的过程结构在表达某些程序过程来说是非常有用的。

     PL/SQL是将第四代语言的枪法功能和灵活性与第三代语言的过程结构的优势融为一体。

     PL/SQL代表面向过程化的怨言与SQL语言的结合。它实现了将过程结构和Oracle SQL的无缝集成。

3.PL/SQL实现循环插入

 

declare 
LoopCounter NUMBER(12):=1000;
v_createDate DATE:=to_date('<st1:chsdate w:st="on" year="2007" month="7" day="12" islunardate="False" isrocdate="False">2007-7-12</st1:chsdate>','yy-mm-dd');
v_sts CHAR(1):='A';
v_stsDate DATE:=to_date('<st1:chsdate w:st="on" year="2007" month="7" day="12" islunardate="False" isrocdate="False">2007-7-12</st1:chsdate>','yy-mm-dd');
begin
loop
insert into project(project.project_id,create_date,sts,sts_date) values(LoopCounter,v_createDate,v_sts,v_stsDate);
commit;
LoopCounter:=LoopCounter+1;
exit when(LoopCounter>1010);
end loop;
end;

 这个是一个利用

 

PL/SQL实现向project表中循环插入10条记录的sql代码。

 

 

 利用for来实现上面的例子:

 

 

Begin

For LoopCounter in 1000..1010 loop

insert into project(project.project_id,create_date,sts,sts_date) values(LoopCounter,v_createDate,v_sts,v_stsDate);
commit;

End

 

 

 

4.游标的使用

带参数的游标

  与存储过程和函数相似,可以将参数传递给游标并在查询中使用。这对于处理在某种条件下打开游标的情况非常有用。它的语法如下:

CURSOR cursor_name[(parameter[,parameter],...)] IS select_statement;

  定义参数的语法如下:

Parameter_name [IN] data_type[{:=|DEFAULT} value]

  与存储过程不同的是,游标只能接受传递的值,而不能返回值。参数只定义数据类型,没有大小。

  另外可以给参数设定一个缺省值,当没有参数值传递给游标时,就使用缺省值。游标中定义的参数只是一个占位符,在别处引用该参数不一定可靠。

  在打开游标时给参数赋值,语法如下:

OPEN cursor_name[value[,value]....];

  参数值可以是文字或变量。

参数值可以是文字或变量。

  例:

 

DECALRE
CURSOR c_dept IS SELECT * FROM dept ORDER BY deptno;
CURSOR c_emp (p_dept VARACHAR2) IS
SELECT ename,salary
FROM emp
WHERE deptno=p_dept
ORDER BY ename
r_dept DEPT%ROWTYPE;
v_ename EMP.ENAME%TYPE;
v_salary EMP.SALARY%TYPE;
v_tot_salary EMP.SALARY%TYPE;
BEGIN
OPEN c_dept;
LOOP
FETCH c_dept INTO r_dept;
EXIT WHEN c_dept%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Department:'|| r_dept.deptno||'-'||r_dept.dname);
v_tot_salary:=0;
OPEN c_emp(r_dept.deptno);
LOOP
FETCH c_emp INTO v_ename,v_salary;
EXIT WHEN c_emp%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Name:'|| v_ename||' salary:'||v_salary);
v_tot_salary:=v_tot_salary+v_salary;
END LOOP;
CLOSE c_emp;
DBMS_OUTPUT.PUT_LINE('Toltal Salary for dept:'|| v_tot_salary);
END LOOP;
CLOSE c_dept;
END;

 

 

5. PL/SQL中属性的类型:

%type引用数据库列.。

%rowtype 代表表中的行。

6.存储过程的编写

存储过程是一种运行在服务器端的,sql语句的集合。可以处理一个完整的业务,而其执行是在数据库服务器端的。

下面就Oracle中实现存储过程的编写和调用进行讲解:

下面写了一个删除项目信息的存储过程:

 

 

下面是调用代码:


 

SQL> begin

  2  deleteProjec(1001);

  3  commit;

  4  end;

  5  /




begin


p project%rowtype;

select * into p from project where project.project_id=1001;

Dbms_Output.put(p.project_id);

end;

 7.

 

包

一个包中可以编写多个过程或者函数。

8. 动态SQL

借助于动态SQL,一个PL/SQL应用可以在运行期间构造并执行SQL语句。

9. 对象类型

10. 集合

11.java 中调用存储过程

 

12.触发器

12.1.DML触发器

12.2.替代触发器

12.3创建触发器 

 

WordPress主题开发实战:从零开始手把手教你创建自定义主题(含常用函数大全) 本文是一份WordPress主题开发实战指南,从零开始手把手教你创建自定义主题。内容涵盖主题核心文件结构、模板层级与循环机制、函数与钩子的运用,并附有详细的常用函数大全,帮助开发者彻底掌握主题开发的核心技能,实现从使用者到创造者的转变。 阅读详情

相关推荐

别再瞎猜了!Fluent瞬态计算时间步长到底设多少?一个公式+实战案例搞定

本文详细解析了Fluent瞬态计算中时间步长的设置方法,通过黄金公式和实战案例,帮助工程师准确确定时间步长,避免计算发散和资源浪费。文章还介绍了动态调整策略和典型工程场景的参数优化,提升仿真效率和精度。

weixin_42638178的博客 427

数据库中游标的使用

数据库中游标的使用 1游标和游标的优点                      在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置

wt591902680的专栏 4392

【IxNetwork】史上最全IxNetwork测试仪使用精讲(一),图文教程超赞超详细!!!

IXIA使用的是Server-client模式,Server端在测试仪表的主机上,在开机后会随着主机内的操作系统的启动而自动启动,一般情况下不需要人为的手工启动。因此在通常不需要为主机配置专用的显示器和键盘。client端包括两个测试软件: Ixia Explorer和ScriptMate。这两个软件一般安装在测试用计算机上,在仪表自带的主机中也有这两个软件。根据测试项目的不同来选择使用不同的软件。Ixia Explorer主要提供数据流的测试,针对设备的功能进行测试;

风云说通信 2057

从输入网址到页面呈现

注:以下内容是笔者作为读书笔记的总结,理解和表述肯定过于简单或错误的地方,读者觉得不对的地方,希望指出,会及时纠正。谢谢!!! 应用层 输入网址后,浏览器会会将域名发给DNSDomain Name System:域名系统服务器,获得对应的ip地址。之后建立TCP连接后,发送请求。 传输层 TCP层发送每个报文的时候,都需要加上自己的地址(源地址)和它想要去的地址(目标地址),将这两个信息放...

weixin_34270606的博客 149

SAP-ABAP:SAP中的用户确认对话框:深入理解与实践POPUP_TO_CONFIRM

本文深入介绍了SAP中的用户确认对话框函数POPUP_TO_CONFIRM,包括其核心参数配置、返回值处理、应用场景和最佳实践。该函数是SAP二次开发中重要的交互工具,用于关键操作前获取用户确认,防止误操作。文章详细解析了参数设置技巧,强调必须全面处理所有可能的返回值,并提供了删除数据、批量操作等典型应用场景的代码示例。同时对比了其他类似弹出函数,帮助开发者选择合适工具。正确使用该函数可提升系统安全性、改善用户体验并符合SAP设计规范。

baidu_35680696的博客 970

(四)C++自制植物大战僵尸游戏启动流程

鼠标左键单机VS2022上方工具栏中进行项目启动。第一次启动项目需要编译项目中所有代码文件,编译生成需要一定的时间。不同性能的电脑需要消耗的时间差别可能较大,通常在几分钟到几十分钟之间。编译成功后会自动启动运行游戏。qi编译成功后自动启动运行游戏如下图。

尔灵尔亿的博客 2466

Python Numpy data-type dtype 自定义数据类型

一、实例 BIG-ENDIAN和LITTLE_ENDIAN区别 数据类型定义: &gt;&gt;&gt; dt = np.dtype('&gt;i4') 定义一个big-endian int 4*8=32位的数据类型 &gt;&gt;&gt; dt dtype('&gt;i4') &gt;&gt;&gt; dt.byteorder //字节顺序:&gt;为big-edian &l...

心之所向 5万+

【Android 11】使用Android Studio调试系统应用之Settings移植(五):编译Settings 模块、解决编译错误

基于Andorid 11,系列第5篇文章,本章开始,终于轮到解决正主Settings的编译问题了,使用android studio编译出Settings.apk,能看到这一章的同学,也着实不容易了,再接再厉

上周的博客 3919

oracle存储过程显式游标,存储过程静态游标、隐式游标、显式游标、动态游标、游标遍历...

存储过程游标解析:1. 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义,从表中检索出结果集,从中每次指向一条记录进行交互的机制。由于游标指示结果集中的当前位置 ,就像计算机屏幕上的光标指示当前位置一样,“游标”由此得名。2. 游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样...

weixin_39721000的博客 559

Motoman机器人离线编程——Motocom32开发简介

欢迎关注Jungle的Motoman机器人离线编程专栏系列文章: Motoman机器人离线编程——Motocom32开发简介 Motoman机器人离线编程——Visio Studio环境配置 Motoman机器人离线编程——Motocom32库函数的使用与封装 Motoman机器人离线编程——Motocom32参考文献及注意事项 Motoman机器人离线编程——MotocomES介绍 ...

冯Jungle的个人博客 8714

Xilinx DDR3 MIG IP核设计--汇总导航

快速上手Xilinx DDR3 IP核----汇总篇

孤独的单刀 2万+

PL/SQL工具学习

  1、PL/SQL学习教程: PL/SQL学习教程   2、PL/SQL安装参考网址:         (2.1)、https://jingyan.baidu.com/article/546ae185d6969e1149f28ce6.html         (2.2)、https://jingyan.baidu.com/article/8275fc8662762b46a03cf604...

dear_Alice_moon的专栏 452

基于STM32的智慧农业大棚监测与控制系统设计与实现

摘要:本文设计了一种基于STM32F103C8T6单片机的智慧农业大棚监测与控制系统,集成多参数环境监测、智能控制和远程管理功能。系统可实时采集光照、CO2、温湿度和土壤湿度等参数,通过OLED显示并采用双模式控制机制:自动模式下根据阈值调节设备,手动模式下支持APP或按键控制。通过ESP8266模块接入机智云平台实现数据云存储和远程控制。测试表明系统具有高精度(温度±0.5℃、CO2±50ppm)、快速响应(<2s)和稳定运行(30天无故障)等特点,有效解决了传统大棚调控不及时等问题。创新点包括多参

3254968421的博客 485

PL/SQL 学习文档

PL/SQL 学习文档

ktc7000的专栏 187

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 联动----续
下一篇: Hibernate调用存储过程
Versatiless
博客等级 码龄21年 4粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值