oracle plsql基本语法
2024-10-10 00:18:12
oracle plsql 基本语法
--plsql默认规则:plsql赋值用":=" plsql判断用"=" plsql输入用"&"
--输入输出
declare
v_str varchar2(20);
begin
-- Dbms_Output.put('hello');
-- Dbms_Output.put('xxxxxxxxxxxxxxxxxx');
-- Dbms_Output.put_line(''); put_line('')才会最终输出,put只会在缓存中
v_str:='&str';
Dbms_Output.put_line(v_str);
end;
--plsql的判断if句式
declare
v_age number:=0;
begin
v_age:='&age';
if(v_age<18) then
Dbms_Output.put_line('未成年');
elsif(v_age>18 and v_age<28) then
Dbms_Output.put_line('青年');
else
Dbms_Output.put_line('其他年龄');
end if;
end;
--plsql的判断case句式
declare
v_empno scott.emp.empno%type;
v_sal scott.emp.sal%type;
begin
v_empno:='&empno';
select sal into v_sal from scott.emp where empno=v_empno;
case--case开始
when v_sal<1000 then
Dbms_Output.put_line('底层员工');
when v_sal>=1000 and v_sal <=2000 then
Dbms_Output.put_line('普通员工');
when v_sal>2000 and v_sal <=3000 then
Dbms_Output.put_line('中级骨干');
when v_sal>3000 then
Dbms_Output.put_line('管理层');
else --默认
Dbms_Output.put_line('未知级别');
end case;--case结束
end;
--练习 输入职员编号 判断该职业叫做king则输出老板,叫做scott输出作者,其他输出普通员工
declare
v_empno scott.emp.empno%type;
v_ename scott.emp.ename%type;
begin
v_empno:='&empno';
select ename into v_ename from scott.emp where empno=v_empno;
case
when v_ename='KING' then
Dbms_Output.put_line('老板');
when v_ename='SCOTT' then
Dbms_Output.put_line('作者');
else
Dbms_Output.put_line('其他员工');
end case;
end;
select * from emp;
--简化case句式 直接是一条sql查询语句
select empno,
case ename
when 'KING' then '老板'
when 'SCOTT' then '作者'
else '普通职员'
end 身份
from emp;
--plsql 循环while句式:从1累加到100
declare
v_i number:=1;
v_sum number:=0;
begin
while(v_i<=100) loop
v_sum:=v_sum+v_i;
v_i:=v_i+1;
end loop;
Dbms_Output.put_line('累加结果为:'||v_sum);
end;
--plsql 循环do ... while句式:从1累加到100
declare
v_i number:=1;
v_sum number:=0;
begin
while(1=1) loop
v_sum:=v_sum+v_i;
v_i:=v_i+1;
exit when(v_i>100); --像java中的break
end loop;
Dbms_Output.put_line('累加结果为:'||v_sum);
end;
--plsql 循环for句式:从1累加到100
declare
v_i number:=1;
v_sum number:=0;
begin
for v_i in /*reverse*/ 1..100 loop
Dbms_Output.put_line('v_i:'||v_i);
v_sum:=v_sum+v_i;
end loop;
Dbms_Output.put_line('累加结果为:'||v_sum);
end;
--练习 使用while循环输出* ,打印出如下图形
declare
v_triLength number;
v_i number:=1;
v_j number:=1;
begin
v_triLength:='&边长';
while( v_i<=v_triLength) loop
v_j:=1;
--打空格
while(v_j<=v_triLength-v_i) loop
Dbms_Output.put(' ');
v_j:=v_j+1;
end loop;
--打星星
v_j:=1;
while(v_j<=v_i) loop
Dbms_Output.put('*'||' ');
v_j:=v_j+1;
end loop;
Dbms_Output.put_line('');
v_i:=v_i+1;
end loop;
end;
最新文章
- Tiddlywiki 维基程序使用手册
- html5的新标签
- 高校手机签到系统——第一部分Authority权限系统(下)
- c/c++ 常用的几个安全函数
- 546A. Soldier and Bananas
- 更改VS的运行主窗体
- Java中Map遍历的四种方案
- 从源代码上分析ListView的addHeaderView和setAdapter的调用顺序
- Levenshtein distance 编辑距离
- js高程(二)-----继承
- 如何在工程中使用axis2部署webservice
- CentOS 6.4 配置 Hadoop 2.6.5
- Redis学习——详解Redis配置文件(三)
- Android人脸检测1(静态图片)
- Django 的路由层 视图层 模板层
- pip 指定版本
- LOJ-10100(割点个数)
- Python基础【day03】:字符转编码操作(五)
- Anaconda canda 安装 Python3 配置
- 【树莓派】在树莓派的Android系统中安装APK应用