当前位置: 首页 > news >正文

PL/SQL编程

一、Oracle常用函数

  • concat:用于连接两个字符串。
    • CONCAT('Oraok', '.com')   -- Result: 'Oraok.com'

  • ceil:小数点向上取整。

    • secect ceil(7.3) from dual   --Result: 8  dual表是oracle系统为计算设计的一张临时表

  • select sysdate as 系统日期 from dual; 获取系统日期

二、PL/SQL

2.1 PL/SQL简介

2.1.1 概念

PL/SQL是Oracle在数据库中引入的一种过程化编程语言。PL/SQL构建于SQL之上,可以用来编写包含SQL语句的程序。

2.1.2 程序块

2.1.3 PL/SQL基本语法

 2.1.4 变量

语法:变量名 数据类型 [长度:=初始值 ]

PL/SQL中未初始化的变量值为null。

dbms_output.put_line是类似java的输出函数,运行后,在Output框可以看到对应数据。

2.1.5 常量

语法:常量名 constant 数据类型:=常量值

week_day constant integer := 7;

2.2 基本数据类型

2.2.1 数值类型

数值型包括NUMBER、PLS_INTEGER和BINARY_INTEGER

NUMBER类型可以存储整数或浮点数,而其他两种类型只能存放整数。

NUMBER(m,n)其中m表示总的位数,n表示小数位数。

例:NUMBER(5,2) 123.36

2.2.2 字符类型

字符类型主要包括VARCHAR2、CHAR、LONG、NCHAR和NVARCHAR2等类型,这些类型的变量用来存储字符串和字符数据。

VARCHAR2(m) m<32767

2.2.3 日期类型

日期类型只有DATE类型。存储日期和时间。DATE使用一个字节存储世纪、年、月、天、小时、分、秒。

2.2.4 布尔类型

布尔类型只有BOOLEAN,用于程序流程控制和业务逻辑判断,其变量可以是TRUE、FALSE、NULL的一种。

2.2.5 %TYPE类型

下图表示定义一个var_name 类型与student.sname相同。

下图表示在student表里查出数据,插入到声明的两个变量里面。

2.2.6 RECORD类型

2.2.7 ROWTYPE类型

把student表作为rowvar_stu的类型,查出来的数据插入这张表。

2.3 异常处理

a := &a  :表示由用户输入一个值,当输入10/10时报错,除数不能为0,此时指定异常进行处理。

2.4 选择和循环

2.4.1 if-then语句

满足尖括号中的条件执行plsq_sentence;

例:

2.4.2 loop语句

2.4.3 while ... loop 语句

2.4.4 for循环

下图中100表示包括100

2.4.5 case语句

用户输入一个季节,显示季节的月份

 2.5 显式游标和隐式游标

2.5.1 显式游标

 

2.5.2 隐式游标

相关文章:

  • 【SpringBoot3+Vue3】四【实战篇】-前端(vue基础)
  • 使用Jupyter Notebook调试PySpark程序错误总结
  • 度小满:人工智能在金融行业中的创新应用
  • 数据双向 双向数据绑定
  • Java业务场景(一):实现屏蔽手机号码功能 用户手机号隐私功能 字符串截取 || 拼接
  • 【小沐学GIS】电子海图OpenCPN源代码编译和运行(VS2017 + Win10)
  • Appium移动自动化测试--安装Appium
  • 【周报2023-11-10】
  • Linux下查看pytorch运行时真正调用的cuda版本
  • 搞科研、写论文,如何正确使用GPT?AIGC技术解析、提示词工程高级技巧、AI绘图、ChatGPT/GPT4应用
  • 庖丁解牛:NIO核心概念与机制详解 02 _ 缓冲区的细节实现
  • 数学建模值TOPSIS法及代码
  • Linux(Ubuntu)安装JDK环境
  • Flink和Kafka连接时的精确一次保证
  • 文字的力量
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 4. 路由到控制器 - Laravel从零开始教程
  • ERLANG 网工修炼笔记 ---- UDP
  • js
  • Laravel 实践之路: 数据库迁移与数据填充
  • Meteor的表单提交:Form
  • Spring Boot快速入门(一):Hello Spring Boot
  • Vultr 教程目录
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 简析gRPC client 连接管理
  • 前端代码风格自动化系列(二)之Commitlint
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 新书推荐|Windows黑客编程技术详解
  • 译自由幺半群
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (07)Hive——窗口函数详解
  • (pytorch进阶之路)扩散概率模型
  • (二)fiber的基本认识
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • . Flume面试题
  • ./configure,make,make install的作用(转)
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .Net Core与存储过程(一)
  • .NET Remoting学习笔记(三)信道
  • .NET 的程序集加载上下文
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .net6 webapi log4net完整配置使用流程
  • .NetCore 如何动态路由
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • 。Net下Windows服务程序开发疑惑
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • [ 手记 ] 关于tomcat开机启动设置问题