已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、针对oracle数据管理针对各种类型,如index,table,view,SYNONYM,comments等objects都有各自对应的管理表,如all_indexs user_indexs dba_indexs等字段其中tab表,主要管理当前用户下(及user)下的table,view,及synonym信息左右连接另外写法select * from cr_corp_inf,cr_xd where cr_corp_inf.cifno=cr_xd.cifno(+);select * from cr_corp_inf,cr_xd where cr_corp_inf.cifno(+)=cr_xd.cifno;没有(+)内容需要全部展现同义词create synonym du for dual;创建同义词成功后,可以照常在同义词上update,insert,select内容。同样可以在同一词上面创建索引。其索引其实是建在真正表上面。删除表时,该表上的索引系统会一同被drop掉。但synonym不会被自动drop掉。需要用户自己drop表上创建约束条件create table parts( pcode char(2) primary key,pname varchar2(10) not null,color varchar2(10) constraint jk check( color in (RED,CREEN,BLUE),QQH number(4) ,ROL number(4),City varchar2(15) not null,Weight number(2);-create table orders( Orderno number(2) primary key,Scode char(2) constraint jk1 references supplier(scode),pcode char(2) constraint jk2 references parts(pcode),qty_supplied number(4) constraint jk3 check(qty_supplied =0),order_date date);-说明,此references约束条件中。则supplier或者parts表中的scode或者pcode必须为primary key 唯一主键的前提下,-该约束条件才能建立成功,不然会报此列表的唯一关键字或者主键不匹配的错误create table price(scode char(2),pcode char(2),price number(7,2),primary key (scode,pcode);-联合主键删除主键命令alter table parts drop constraint jk;alter table parts add constraint jk check (color in (RED,GREEN,BLUE);-存储过程重定向输出到某个文件或者log日志-先修改或添加init.ora的UTL_FILE_DIR参数 例如: utl_file_dir=G:oracletemp declare file_handle UTL_FILE.FILE_TYPE; begin file_handle := UTL_FILE.FOPEN( /tmp , 文件名 , w ); UTL_FILE.PUTF(file_handle, 写入的信息n ); UTL_FILE.FCLOSE(file_handle); Exception WHEN utl_file.invalid_path THEN raise_application_error(-20000, ERROR: Invalid path for file or path not in INIT.ORA. ); end; -PutF()过程用来以指定格式把文本写入一个文件 -Put_Line()过程把一个指定的字符串写入文件并在文件中开始新的一行 在pl-sql 下面打开dbms_output.put_line()命令set serveroutput on;set serveroutput off;-存储过程或者程序快中循环的使用declarev_empno number(4);beginselect max(empno)+1 into v_empno from emp;for i in 1.100 loopinsert into emp(empno) values (v_empno+i);end loop;commit;end;-接受两个数相除并且显示结果。如果第二个数为0,-则显示消息didnt your mother tell you not to dibide by zero;declarex number(4);y number(4);z number(4);beginx:=&n1;y:=&n2;z:=x/y;exceptionwhen zero_divide then -dbms_output.put_line(didnt your mother tell you not todivide by zero);end;-编写一个PL/SQL 程序块以提升两个资格最老的职员为-高级职员;declarecursor c1 is select * from emp order by hiredate;beginfor rec in c1 loopupdate emp set job=MANAGER whereempno=rec.empno;exit when c1%rowcount=2; -end loop;commit;end;-编写一个PL/SQL 程序块,对所有雇员按他们基本薪水的10%给他们加薪.如果所增加的薪水大于5000卢布,则取消加薪。declarecursor c1 is select * from emp order by hiredate;beginfor rec in c1 loopif rec.sal*0.1 5000 thennull; -elseupdate emp set sal=sal+sal*0.1 whereempno=rec.empno;end loop;commit;end;-如果薪水在此范围内,则显示消息Salary is ok“,否则,-更新薪水为该范围内的最小值.create or replace function test_function(vempno number) return number isv_job varchar2(12);v_hig number;v_low number;v_sal number;beginselect job,sal into v_job,v_sal from emp where empno=vempno;if v_job=CLERK thenv_low :=1500;v_hig :=2500;end if;if v_job=SALESMAN thenv_low :=2501;v_hig :=3500;end if;if v_job=ANALYST thenv_low :=3501;v_hig :=4500;end if;if v_job not in (CLERK,SALESMAN,ANALYST) thenv_low :=4500;end if;if v_sal =v_low and v_sal=v_hig thendbms_output.put_line(salary is ok);commit;return 1; -elseupdate emp set sal=v_low where ename=v_mc;commit;return 0; -end if;end;-编写一个数据包,它有两个函数和两个过程以操作EMP表-该数据包要执行的任务为:-插入一个新雇员。-删除一个现有雇员。-显示指定雇员的整体薪水。-显示指定雇员的部门名称。create or replace package test asprocedure insrec(empno in number,ename in varchar2);procedure delrec(empno in number);function salsum(empno in number) return number;function getdname(empno in number) return varchar2;end;create or replace package body test asprocedure insrec(empno in number,ename in varchar2) isbegininsert into emp(empno,ename) values (empno,ename);dbms_output.put_line(1 rows inserted);end;procedure delrec(empno in number) isbegindelete emp where empno=empno;dbms_output.put_line(1 rows deleteed);end;function salsum(empno in number) return number isv_sal number;beginselect nvl(comm,0)+sal into v_sal from emp;return v_sal;end;function getdname(empno in number) return varchar2 isv_dname varchar2(12);beginselect b.dname into v_dname from emp a ,dept bwhere a.deptno=b.deptno and a.empno=empno;return v_dname;end;end;-编写一个数据库书呆子被教导追求正确答案,而受欢迎的小孩被教导讨人喜欢以显示任何时候雇员加薪时的加薪情况.create or replace trigger mytriafter update on empfor each rowbegindbms_output.put_line(:old.sal| |:new.sal);end;-编写一个数据库触发器,它允许用户只在上午9.00到下午-5.00之间执行DML 任务.create or replace trigger mytribefor update or delete or insert on empfor each rowbeginif to_char(sysdate,HH24)17 thenraise_application_erro(-20011,sorry); -end if;end;-编写一个数据库触发器以检查某个组织中不能有两个总裁.create or replace trigger triafter insert or update on empdeclaren1 number;beginselect count(job) into n1 from emp where job=PRESIDENT;if n1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025重庆京剧院人才招聘笔试历年典型考点题库附带答案详解试卷3套
- 2026-2031中国能源管理系统市场竞争状况分析及前景发展策略研究报告
- 2026-2031中国石墨电极行业深度研究与未来发展趋势报告
- 2026-2031中国生长激素市场集中度现状及十五五产业投资评估报告
- SAP业务流程顾问虚拟团队协作管理技巧
- 国家电力投资集团限公司2025年下半年暑期实习生招募易考易错模拟试题(共500题)试卷后附参考答案
- 四川青川县部分事业单位2025年下半年下半年招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- Go开发工程师技术培训课程大纲
- 南充发展投资(控股)限责任公司2025年下半年下半年招聘易考易错模拟试题(共500题)试卷后附参考答案
- 北京交通发展研究中心招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年消防应急预案
- 精神科康复技能训练
- 银质针松解术治疗的护理
- 第10课 公共场所言行文明 第2课时(课件)2025-2026学年道德与法治三年级上册统编版
- 声控技术原理讲解
- 小儿上呼吸道感染护理查房
- 灵芝菌菌种管理办法
- 中储粮薪酬管理办法
- 科技创新赋能医养健康新生态
- 银行旺季营销表态发言稿范文
- 大理石基础知识培训课件
评论
0/150
提交评论