- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ORACLE国家中级 练习
Oracle数据库编程:
SET SERVEROUTPUT ON --显示输出 --匿名块
DECLARE --定义:变量 变量名 变量类型 %type表示和该字段数据类型一致 %rowtype表示和类表结构一致
MYSAL SCOTT.EMP.SAL%TYPE;
CURSOR MYCUR IS SELECT * FROM SCOTT.EMP WHERE SAL MYSAL; --游标 1:定义2:打开3:取值4:关闭
RECORD1 MYCUR%ROWTYPE;
BEGIN --执行部分
MYSAL:=500;
OPEN MYCUR;
FETCH MYCUR INTO RECORD1;
DBMS_OUTPUT.PUT_LINE(工作证件:||RECORD1.EMPNO);
DBMS_OUTPUT.PUT_LINE(姓名:||RECORD1.ENAME);
DBMS_OUTPUT.PUT_LINE(职业:||RECORD1.JOB);
DBMS_OUTPUT.PUT_LINE(销售额:||RECORD1.SAL);
END;
create or replace procedure showavgsal(p_deptno number) --标题部分 --过程内参 in out inout 默认为in
as --命名块 as 代替 declare --声明部分
v_sal number(6,2);
begin --执行部分
select avg(sal) into v_sal from scott.emp where deptno=p_deptno; --在程序设计中 select 后往往跟 into
dbms_output.put_line(v_sal); --在显示表结构时 select后跟 from
end;
execute showavgsal(10);
--输出单行的用变量+select into 的用法 多行输出 用游标+for循环
--select into 只能查询一个记录的信息 如果没有查询到 no_data_found异常 如果查询到多个 too_many_rows异常
--select into后的变量个数,顺序必须的与查找字段相匹配
declare
v_emp emp%rowtype;
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
select ename,sal into v_ename,v_sal from emp where deptno=9090;
dbms_output.put_line(v_ename|| ||v_sal);
exception
when no_data_found then dbms_output.put_line(lalalla);
end;
declare
v_deptno.scott.emp.deptno%type;
v_increment number(4);
v_empno scott.emp.empno%type;
begin
v_empno:=x;
select deptno into v_deptno from scott.emp where empno=v_empno;
if v_deptno=10 then v_increment:=100;
elsif v_deptno=20 then v_increment:=150;
elsif v_deptno=30 then v_increment:=200;
else v_increment:=300;
end if;
update scott.emp set sal=sal+v_increment where empno=v_empno;
end;
提取数据
declare
cursor mycur is select ename,sal from scott.emp where sal3000;
begin
for abc in mycur loop
dbms_output.put_line(abc.ename|| ||abc.sal);
end loop;
exception when others then
null;
end;
算平均工资
declare
cursor mycur is select deptno,avg(sal) avsal from scott.emp group by dept
您可能关注的文档
最近下载
- 《机械识图》(第四版)完整版教学课件全书电子讲义(最新).pptx VIP
- 2024年10月全国自考03708中国近代史纲要真题试卷及详细答案.docx VIP
- 五金手册换算.pdf VIP
- A2E游艇操作人员理论知识考试题及答案(完整版).docx VIP
- 标签打印软件如何制作卷烟标价签模板.doc VIP
- (新版)游艇帆船(A2F)理论知识考试题(附答案).doc VIP
- wifi万能钥匙 wifi万能钥匙下载 wifi密码查看器 360免费wifi..doc VIP
- 中石化考试题库及答案.doc
- 毕业设计-带式输送机毕业设计.doc VIP
- 2025年全国自考4月03708中国近代史纲要真题及答案汇总.doc VIP
文档评论(0)