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

PL/SQL程序设计入门

PL/SQL程序设计

  • PL/SQL
    • 起步鼻祖:hello World
    • 语法分析
    • 声明部分
      • 举例
    • 应用
      • 举例

PL/SQL

起步鼻祖:hello World

先举个例子,用PL/SQL打印输出hello world

declarev_string varchar2(20);
beginv_string:='hello world';dbms_output.put_line(v_string);-- 该语句为sql中的打印输出语句
end;--开启屏幕打印:  set serveroutput on
--关闭打印服务:  set serveroutput off

语法分析

declare --声明部分: 定义变量、常量、游标、数据类型等
begin --执行部分 : 这是块的主要功能实现,该部分不能省略
exception–异常处理部分:程序中有可能出现的错误
end; --结束标志

声明部分

变量声明: variable_name [constant] datatype[:=value1|default value2];数据类型(dataType):number,char,varchar2,date,boolean(true false null),lob (clob,blob);标识符命名规则:通常以字母开头,最长不超过30个字符:v_   c_   rec_   cur_ ;注:[ ]中的部分为可省略部分!!!

举例

写一个PL/SQL程序,通过定义变量,分别输出班级信息(v_bjxx)和个人姓名(v_name)
declare v_bjxx varchar2(30); v_name varchar2(20); 
begin v_bjxx:='abc';v_name:='a';dbms_output.put_line('班级信息:'||v_bjxx||'  '||'姓名:'||'  '||v_name);
end;

应用

哪些SQL语句可以用在PL/SQL 中? select into from ; DML,commit,rollback等
(其中select into from 是查询语句中的属性值赋值给定义的变量)。

  1. %type类型: 声明一个变量与已有变量或者已有列数据类型一致。
    1.1 格式:变量名 已有变量名%type;
  2. %rowtype类型(记录类型):定义一个记录变量与已有记录类型或者表结构保持一致。
    2.1 记录变量名 表名%rowtype;

举例

写一个PL/SQL程序,查询emp表中empno = 7788员工的姓名(ename)和工资(sal)。

select ename,sal from emp where empno=7788;
-- 常规类型
declare v_ename varchar2(10);v_sal   number(7,2);
begin select ename,sal into v_ename,v_sal from emp where empno=7788;dbms_output.put_line('7788姓名是:'||v_ename||'  '||v_sal);
end;
--%type类型
declare v_ename emp.ename%type;v_sal   emp.sal%type;
begin select ename,sal into v_ename,v_sal from emp where empno=7788;dbms_output.put_line('7788姓名是:'||v_ename||'  '||v_sal);
end;
--%rowtype类型(适用于获取所有属性)
declare rec_emp emp%rowtype;
begin select * into rec_emp from emp where empno=7788;dbms_output.put_line('7788姓名是:'||rec_emp.ename||'  '||rec_emp.v_sal);
end;
http://www.lryc.cn/news/440687.html

相关文章:

  • 一、Numpy入门
  • 自动化测试框架设计核心理念——关键字驱动
  • GO GIN SSE DEMO
  • GEE教程:1950-2023年ECMWF数据中积雪的长时序统计分析
  • 【React Native】路由和导航
  • Linux环境基础开发工具---vim
  • python AssertionError: Torch not compiled with CUDA enabled
  • Pandas的入门操作-Series对象
  • 自然语言处理系列六十八》搜索引擎项目实战》搜索引擎系统架构设计
  • H5依赖安装
  • MatchRFG:引领MemeCoin潮流,探索无限增长潜力
  • 2024/9/18 模型的存储与读取
  • 在 fnOS上安装 KVM 虚拟化,并使用 Cockpit 网页管理虚拟机
  • VUE实现刻度尺进度条
  • ZYNQ FPGA自学笔记~点亮LED
  • 攻击者如何在日常网络资源中隐藏恶意软件
  • 《深度学习》深度学习 框架、流程解析、动态展示及推导
  • “中秋快乐”文字横幅的MATLAB代码生成
  • 【Node.js】RabbitMQ 延时消息
  • 前后端分离Vue美容店会员信息管理系统o7grs
  • 初学Linux(学习笔记)
  • 新增的标准流程
  • WebSocket 协议
  • [mysql]mysql排序和分页
  • 开源 AI 智能名片 S2B2C 商城小程序中的全渠道供应策略
  • 一次渲染十万条数据:前端技术优化(上)
  • springboot实训学习笔记(5)(用户登录接口的主逻辑)
  • python中网络爬虫框架
  • GEC6818初次连接使用
  • 解释下不同Gan模型之间的异同点