实验五 PLSQL编程

news2024/11/28 10:51:45

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢阅读!!!

文章目录

  • 实验五 PL/SQL编程
    • 【实验目的】
    • 【实验内容】
      • 一、本地子程序的编写及调试
      • 二、函数的编写及调试
      • 三、触发器程序的编写及调试
    • 【实验总结】

实验五 PL/SQL编程

【实验目的】

  1. 熟悉PL/SQL的数据类型和书写规则
  2. 熟悉控制结构和游标的使用
  3. 编写和运行函数、过程和触发器

【实验内容】

编写脚本文件,调试运行脚本文件,并记录结果。

一、本地子程序的编写及调试

  1. 编写一个PL/SQL块,功能用于打印学生信息。整个程序的具体要求如下:
  • 在DECLARE部分完成:
    1. 自定义学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。每个元素均为可变长字符类型

  1. 定义学生信息记录变量stu_record

  1. 编写带一个形参的本地过程:学生信息打印过程PrintStuRecord(x stu_record_type),把形参x定义为(1)中记录类型。这个过程的代码用于实现将形参x的每个元素打印输出(提示:用dbms_output.put_line过程)。

  • 在BEGIN…END部分完成:
    1. 为stu_record变量的各个元素赋值如下:
学号:‘2001001’
姓名:’李新’				
性别:‘m’		
籍贯:‘黑龙江省哈尔滨市’
学习成绩:‘Excellent’			
活动成绩:‘Good’
  1. 调用本地过程,用stu_record变量作为实参

  1. 运行这个PL/SQL程序,查看并记录运行结果


注:本地子程序只在块内使用,不能存在共享缓冲区中,要多次使用需要多次编译

二、函数的编写及调试

  1. 编写一个函数f_pjgz,有一个数值型参数v_deptno,根据函数调用时输入部门号,来查询scott用户下emp表中该部门所有员工的平均工资,这个平均工资作为函数的返回值。
    1. 登录scott用户

  1. 编写程序

  1. 创建函数

  1. 用select语句调用该函数,用来查询部门号为10的员工平均工资

三、触发器程序的编写及调试

  1. 建立对bookinfo表的DML触发器,一旦bookinfo表发生了任何变化,立即触发,对bookinfo表的数据进行统计,结果存储在数据统计表中
    1. 如果没有则建立bookinfo表,选择建立在scott用户下,表结构为
(
  bookno  varchar2(36) Primary key,
  bookname  varchar2(40) not null,
  authorname  varchar2(10) not null,
  publishtime  date,
  bookprice  float
)

  1. 建立数据统计表major_stats,包含两个字段:书的总数和作者的总数

  1. 向其中插入数据

  1. 创建触发器UpdateMajorStats,完成在bookinfo表中插入、删除和修改记录之后,对bookinfo表进行统计,结果存储在(2)建立的major_stats表中
  • 编写触发器程序

  • 创建触发器

  1. 在bookinfo表中分别进行插入、删除和更新操作,每种操作执行后再查看bookinfo表和major_stats表中数据的变化
    1. 插入


  1. 删除

  1. 修改

这里我没有再修改了,其实修改作者名才是更好的选择,因为可以引起major_stats的变化

【实验总结】

一、本地子程序的编写及调试:
在本地子程序的部分,我们成功地完成了以下任务:

  1. 定义了学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。
  2. 定义了学生信息记录变量stu_record。
  3. 编写了带一个形参的本地过程PrintStuRecord,用于打印学生信息。

在BEGIN…END部分,我们完成了以下任务:

  1. 为stu_record变量的各个元素赋值。
  2. 调用了本地过程,将stu_record变量作为实参传入。

成功运行这个PL/SQL程序后,我们查看并记录了运行结果。通过这个实验,我们熟悉了PL/SQL的数据类型和书写规则,以及掌握了本地子程序的编写和调试方法。

二、函数的编写及调试:
我们编写了一个名为f_pjgz的函数,它接收一个部门号作为参数,并根据输入的部门号查询scott用户下emp表中该部门所有员工的平均工资,然后返回这个平均工资作为函数的返回值。我们成功地创建了这个函数,并使用select语句调用了该函数来查询部门号为10的员工平均工资。

通过这个实验,我们熟悉了函数的编写和调试方法,并掌握了如何在PL/SQL中创建函数以及如何使用函数进行数据查询和处理。

三、触发器程序的编写及调试:
我们首先建立了bookinfo表和数据统计表major_stats,并向major_stats表中插入了数据。然后,我们编写了触发器UpdateMajorStats,用于在bookinfo表中插入、删除和修改记录之后,对bookinfo表进行统计,结果存储在major_stats表中。

在实验的最后阶段,我们分别进行了对bookinfo表的插入、删除和更新操作,每次操作执行后都查看了bookinfo表和major_stats表中数据的变化。通过这个实验,我们熟悉了触发器程序的编写和调试方法,以及掌握了在PL/SQL中创建触发器来实现特定功能的步骤和技巧。

总的来说,通过这次实验,我们达到了熟悉PL/SQL的数据类型和书写规则,掌握编写和运行函数、过程和触发器的目的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1399243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Arduino开发实例-MTH02温湿度传感器驱动

MTH02温湿度传感器驱动 文章目录 MTH02温湿度传感器驱动1、MTH02温湿度传感器介绍2、硬件准备及接线3、代码实现1、MTH02温湿度传感器介绍 市场上的温湿度传感器在价格、精度和测量范围等方面种类繁多。 MTH02O 是这些传感器中最小的一种。 该传感器使用数字引脚传输温度和湿度…

领略指针之妙

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

mac-hadoop3.3.6 源码构建以及踩坑记录

1. 为什么需要构建源码 因为hadoop的可执行文件 是在专门的机器上编译的 其中native库 不一定能适用于每个机器 导致在启动hadoop过程中 出现烦人的警告 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes w…

探索图像检索:从理论到实战的应用

目录 一、引言二、图像检索技术概述图像检索的基本概念图像检索与文本检索的区别特征提取技术相似度计算索引技术 三、图像检索技术代码示例图像特征提取示例相似度计算索引技术 四、图像搜索流程架构数据采集与预处理特征提取相似度计算与排名结果呈现与优化 五、实际应用图像…

探索世界,从一款好用的浏览器开始!

好用的浏览器分享 在这个数字化的时代,浏览器已经成为了我们生活中不可或缺的工具。从浏览新闻、社交媒体到工作学习,我们几乎无时无刻不在与浏览器打交道。那么,如何选择一款好用的浏览器呢?今天,我就来为大家分享几…

git中合并分支时出现了代码冲突怎么办

目录 第一章、Git代码冲突介绍1.1)什么是Git代码冲突①git merge命令介绍②代码冲突原因 1.2)提示代码冲突的两种情况①本地不同分支的文件有差异时:②本地仓库和git远程仓库的文件有差异时: 1.3)解决合并时的代码冲突…

linux sudo指令提权

sudo指令 sudo 是在linux中用于以超级用户(root)权限执行命令的命令。它允许普通用户在执行特定命令时提升其权限,以完成需要超级用户权限的任务。sudo 的名称是 "superuser do" 的缩写。 格式 接受权限的用户登陆的主机 &#xff…

【LLM问答】两阶段的对话式问答模型ChatQA思路和兼看两阶段的RAG知识问答引擎QAnything

一、ChatQA 1.1 微调 如下图,ChatQA微调包含两个阶段,Supervised Fine-tuning和Context-Enhanced Instruction Tuning 1.1.1 阶段一:SFT(Supervised Fine-tuning) 这个阶段的目标是基于LLM,通过SFT&…

虚拟歌姬学习:DiffSinger,让GitHub下载快的方法!

《三分钟上手DiffSinger》系列 ——基础篇https://www.bilibili.com/video/BV1ug4y1S7Dk/?spm_id_from333.337.search-card.all.click&vd_source124076d7d88eee393a1d8bf6fc787efa 下载DiffSinger 建议用edge浏览器还有steam,有时只是慢,但是还是…

Harmony Ble蓝牙App(四)描述符

Harmony Ble蓝牙App(四)描述符 前言正文一、优化二、描述① 概念② 描述提供者③ 显示描述符 三、源码 前言 上一篇中了解了特性和属性,同时显示设备蓝牙服务下的特性和属性,本文中就需要来使用这些特性和属性来完成一些功能。 正…

VS+QT编译环境中字符乱码问题详解

字符乱码问题详解 1 编码字符集与字符编码方式2 字符乱码原因3 字符乱码解决方案 在解释字符乱码问题之前,我们需要先理清一些基本概念 1 编码字符集与字符编码方式 编码字符集 编码字符集是所有字符以及对应代码值的集合。编码字符集中的每个字符都对应一个唯一的…

一步一步写线程之五线程池的模型之一领导者追随者模型

一、线程池的模型 在学习过相关的多线程知识后,从更抽象的角度来看待多线程解决问题的方向,其实仍然是典型的生产和消费者的模型。无论是数据计算、存储、分发和任务处理等都是通过多线程这种手段来解决生产者和消费者不匹配的情况。所以,得…

MySQL主从集群

MySQL主从集群 主从模式、集群模式,都是在一个项目中使用多个mysql节点进行存储和读取数据。 当单机模式部署,不满足安全性、高可用、高并发等需求的时候,就需要考虑主从模式或者集群模式部署。 什么是主从模式? 主从模式&…

commvault学习(5):在linux上安装cv客户端

我的环境: 服务器(同时装有CS、MA):windows server2008r2 客户端:两台centos7 1.为两台centos7配置静态ip 使得2者可以与服务器ping通 2.在两台centos7上预留出足够大的磁盘空间以存放安装文件 我是在/mnt下创建了…

十本你不容错过的Docker入门到精通书籍推荐

前言: 最近有许多小伙伴私信让我推荐几本关于Docker学习的书籍,今天花了一下午的时间在网上查阅了一些资料和结合自己平时工作中的一些学习参考资料书籍写下了这篇文章。注意以下书籍都是十分优秀的Docker学习书籍(因此排名不分先后&#xff…

tritonserver学习之三:tritonserver运行流程

tritonserver学习之一:triton使用流程 tritonserver学习之二:tritonserver编译 tritonserver学习之四:命令行解析 1、triton启动运行流程 triton功能设计全面,而且复杂,下面是triton(2.41.0)启动的整个流程&#x…

从函数角度看品牌网络推广:短期与长期的博弈

在数字营销的世界里,品牌网络推广无疑是一个复杂而多维度的领域。它不仅仅是一个简单的“投入-产出”关系,而是一个涉及到多种因素、时间和空间的动态过程。当我们尝试从函数的角度去解读品牌网络推广时,会发现它其实是一个不断变化的函数关系…

我在人工智能技术方面的发展规划

人工智能(AI)是当今科技领域最具前景和影响力的技术之一,它已经渗透到各行各业,为社会和经济发展带来了巨大的机遇和挑战。作为一名从事人工智能研究和开发的专业人士,我有必要制定一个合理的人工智能技术发展规划,以指导我的学习和工作,提高我的专业水平和竞争力,为人…

009 Linux_文件系统 | 软硬链接

前言 本文将会向你介绍文件系统与软硬链接 文章重点 本文将会先向你介绍文件是如何在磁盘上进行管理的,关于文件的管理将会从管理属性和管理内容两方面来谈,最后会向你介绍软硬链接的概念 文件在磁盘中的管理 首先,假设一个磁盘200GB&#…

softmax回实战

1.数据集 MNIST数据集 (LeCun et al., 1998) 是图像分类中广泛使用的数据集之一,但作为基准数据集过于简单。 我们将使用类似但更复杂的Fashion-MNIST数据集 (Xiao et al., 2017)。 import torch import torchvision from torch.utils import data from torchvisi…