设为首页 收藏本站
查看: 917|回复: 0

[经验分享] PL/SQL-xianxian

[复制链接]

尚未签到

发表于 2018-10-23 11:25:40 | 显示全部楼层 |阅读模式
--第一个PL/SQL程序  
declare
  
var_empname  varchar2(20) ;
  
begin
  
select empname  into var_empname from  employee
  
    where empid=&param_empid;
  
    dbms_output.put_line(var_empname);
  
end;
  
--rowtype
  
declare
  
row_result employee%rowtype;
  
begin
  
select *  into row_result from employee where empid=&param_empid;
  
dbms_output.put_line(row_result.empid||'-'||row_result.empname||'--'||row_result.Salary);
  
end;
  

  

  
---------------------------Day1203练习-------------------------------------
  
---1. 圆周率PI 假定取常量3.14 ,让用户输入圆的半径,用PL/SQL 程序计算出圆的面积,
  
--并输出到控制台。
  
declare
  
constant_PI  number(3,2):=3.14;
  
var_r number:=&param_r;
  
begin
  
dbms_output.put_line('圆的面积是'||round(constant_PI*var_r*var_r,3));
  
end;
  

  

  
--2.用户输入的某员工号查询出该员工所在的部门,
  
--根据其所在部门的不同,修改工资。比如:如果部门编号(自己定)是10,
  
--该部门全体员工的工资工资改为1000;如果部门编号是20,工资改为1200;
  
--如果部门编号是30,工资定为1500;以此类推...如果都不满足,工资定为1800。
  
--分别用if和case语句实现
  

  
--case
  
declare
  
var_deptid employee.deptid%type;
  
row_result employee%rowtype;
  
begin
  
select * into row_result from employee where empid=&param_empid;
  
var_deptid:=row_result.deptid;
  
case var_deptid
  
  when 110 then update employee set Salary=1000 where deptid=110;
  
  when 120 then update employee set Salary=1200 where deptid=120;
  
  when 130 then update employee set Salary=1500 where deptid=130;
  
else
  
  update employee set Salary=1800 ;
  
  end case;
  
end;
  
select * from employee
  

  
--if
  
declare
  
var_deptid employee.deptid%type;
  
row_result employee%rowtype;
  
begin
  
select * into row_result from employee where empid=&param_empid;
  
var_deptid:=row_result.deptid;
  
if var_deptid=110 then
  
update employee set Salary=180 where deptid=110;
  
elsif var_deptid=120 then
  
     update employee set Salary=1200 where deptid=120;
  
elsif var_deptid=130 then update employee set Salary=1500 where deptid=130;
  
else
  
  update employee set Salary=1800 ;
  
  end if;
  
end;
  
-------------------
  
select * from employee
  

  

  

  

  

  

  
---4:属性数据类型type,if..then..else....end if
  
--根据用户用户输入的员工号,查询某个员工的工资,
  
--如果工资大于某个数(比如1000),将该员工工资减100,否则加100。
  
select * from employee
  

  
declare
  
var_sal employee.salary %type;
  
begin
  
select Salary into var_sal from employee where empname='武器大师';
  
if var_sal

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-625399-1-1.html 上篇帖子: MS_SQL的DELETE,TRUNCATE,DROP的区别!(自留) 下篇帖子: SQL2000置疑数据库修复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表