PL/SQL程序设计入门

PL/SQL

起步鼻祖:hello World

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

declare
 v_string varchar2(20);
begin
    v_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;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

录大大i

如果文章有用,还请鼓励一下作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值