随笔分类 -  oracle案例

1 2 下一页
oracle connect by用法
摘要:先用scott用户下的emp表做实验.emp表有个字段,一个是empno(员工编号),另一个是mgr(上级经理编号)下面是表中所有数据1select * from emp start with empno=7698 connect by mgr=prior empno;执行结果如下:得到的结果是empno=7698的数据,以及会得到mgr=7698的数据。它是向下递归的, 即我们从empno=7698开始遍历,去找出mgr=7698的所有数据S(用S代表查出的所有数据.), 然后在从S中的empno的值去匹配查找是否还有满足,mgr in (s.empno)的数据。一直遍历进去到没有数据为止。 阅读全文
posted @ 2013-06-24 16:12 Ruthless 阅读(55386) 评论(0) 推荐(8) 编辑
Oracle 树操作(select…start with…connect by…prior)
摘要:oracle树查询的最重要的就是select…start with…connect by…prior语法了。依托于该语法,我们可以将一个表形结构的以树的顺序列出来。在下面列述了oracle中树型查询的常用查询方式以及经常使用的与树查询相关的oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等。1、准备测试表和测试数据12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364--菜单目录结构 阅读全文
posted @ 2013-06-24 16:07 Ruthless 阅读(90511) 评论(13) 推荐(21) 编辑
关于oracle with as用法
摘要:with as语法–针对一个别名with tmp as (select * from tb_name)–针对多个别名with tmp as (select * from tb_name), tmp2 as (select * from tb_name2), tmp3 as (select * from tb_name3), …123456789--相当于建了个e临时表with e as (select * from scott.emp e where e.empno=7499)select * from e;--相当于建了e、d临时表withe as (select * from scott. 阅读全文
posted @ 2013-06-24 16:06 Ruthless 阅读(108756) 评论(0) 推荐(14) 编辑
Oracle DBA常用查询
摘要:–1. 查询系统所有对象select owner, object_name, object_type, created, last_ddl_time, timestamp, statusfrom dba_objectswhere owner=upper('scott')–2. 查看系统所有表select owner, table_name, tablespace_name from dba_tables–3. 查看所有用户的表select owner, table_name, tablespace_name from all_tables–4. 查看当前用户表select ta 阅读全文
posted @ 2013-06-24 16:05 Ruthless 阅读(3687) 评论(0) 推荐(0) 编辑
oracle中斜杠(/)的含义
摘要:斜杠就是让服务器执行前面所写的sql脚本。如果是普通的select语句,一个分号,就可以执行了。但是如果是存储过程,那么遇到分号,就不能马上执行了。这个时候,就需要通过斜杠(/)来执行。12345set serveroutput on;begindbms_output.put_line('Hello World!');end;/执行运行结果:123Hello World!PL/SQL procedure successfully completed 阅读全文
posted @ 2013-06-24 16:03 Ruthless 阅读(10820) 评论(0) 推荐(0) 编辑
oracle系统包—-dbms_output用法
摘要:dbms_output包主要用于调试pl/sql程序,或者在sql*plus命令中显示信息(displaying message)和报表,譬如我们可以写一个简单的匿名pl/sql程序块,而该块出于某种目的使用dbms_output包来显示一些信息。涉及到的知识点如下:1、enable:在serveroutput on的情况下,用来使dbms_output生效(默认即打开)2、disable:在serveroutput on的情况下,用来使dbms_output失效3、put:将内容写到内存,等到put_line时一起输出4、put_line:不用多说了,输出字符5、new_line:作为一行的 阅读全文
posted @ 2013-06-24 16:01 Ruthless 阅读(36601) 评论(0) 推荐(2) 编辑
oracle系统包——dbms_job用法(oracle定时任务)
摘要:用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务。一、dbms_job涉及到的知识点1、创建job:variable jobno number;dbms_job.submit(:jobno, —-job号 'your_procedure;',—-执行的存储过程, ';'不能省略 next_date, —-下次执行时间 'interval' —-每次间隔时间,interval以天为单位);–系统会自动分配一个任务号jobno。2、删除job: dbms_job.remove(jobno);3、修改要执行的操作: jo 阅读全文
posted @ 2013-06-24 15:59 Ruthless 阅读(29170) 评论(0) 推荐(2) 编辑
oracle系统包——DBMS_PIPE用法
摘要:DBMS_PIPE包用于在同一例程(实例)的不同会话之间进行通信;注意,如果用户要执行包dbms_pipe中的过程和函数,则必须要为用户授权。sql>conn sys/oracle as sysdba;sql>grant execute on dbms_pipe to scott;一、管道:1)、公有管道:所有数据库用户可访问。2)、私有管道:只能建立管道的数据库用户可访问。二、DBMS_PIPE包的过程和函数解析CREATE_PIPE:用于建立公用管道或私有管道。如果将参数private设置为TRUE,则建立私有管道;如果设置为FALSE,则建立公用管道。eg:declarefa 阅读全文
posted @ 2013-06-24 15:58 Ruthless 阅读(11109) 评论(0) 推荐(1) 编辑
oracle系统包——dbms_alert用法
摘要:oracle内部提供的在数据库内部和应用程序间通信的方式有以下几种:1.警报,就是DBMS_ALERT包提供的功能;2.管道,由DBMS_PIPE提供;3.高级队列,这个就很复杂,当然提供的功能也是很高级的。当然还可以使用外部过程,比如用PL/SQL封装外部的基于C的DLL或JAVA也能实现数据库和应用程序间的通信。 要使用这些功能,必须知道各个功能的特点,根据需要选用。警报和事务相关的,是异步发送的;管道是与事务无关的,是同步发送的。dbms_alert用于生成并传递数据库预警信息。使用包DBMS_ALERT,则必须以SYS登陆,为该用户授予执行权限。sql>conn sys/orac 阅读全文
posted @ 2013-06-24 15:55 Ruthless 阅读(4830) 评论(0) 推荐(1) 编辑
oracle系统包——dbms_transaction用法
摘要:用于在过程,函数和包中执行sql事务处理语句.1.read_only用于开始只读事务,其作用与sql语句set transaction read only完全相同2.read_write用于开始读写事务3.advise_rollback用于建议回退远程数据库的分布式事务4.advise_nothing用于建议远程数据库的分布式事务不进行任何处理5.advise_commit用于建议提交远程数据库的分布式事务6.user_rollback_segment用于指定事务所要使用的回滚段7.commit_comment用于在提交事务时指定注释.8.commit_force用于强制提交分布式事务.9.c 阅读全文
posted @ 2013-06-24 15:53 Ruthless 阅读(2797) 评论(0) 推荐(0) 编辑
oracle系统包——dbms_random用法
摘要:oracle中随机数的包的源文件目录:{oracle_home}\rdbms\admin\dbmsrand.sql1.返回0~1间的随机数(包括0和1)sql> select dbms_random.value from dual;2.返回10~20间的随机数(包括10和20)sql> select dbms_random.value(10,20) from dual;3.随机返回一个numbersql> select dbms_random.normal from dual;注意:normal函数返回从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值 阅读全文
posted @ 2013-06-24 15:51 Ruthless 阅读(2966) 评论(0) 推荐(1) 编辑
oracle存储过程中is和as区别
摘要:在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别;在视图(VIEW)中只能用AS不能用IS;在游标(CURSOR)中只能用IS不能用AS。 阅读全文
posted @ 2013-06-24 15:46 Ruthless 阅读(19338) 评论(1) 推荐(4) 编辑
SQL Cookbook—查询、排序
摘要:涉及到的问题1、在select语句中使用条件逻辑2、限制返回的行数3、从表中随机返回n条记录4、将空值转换为实际值5、对字母和数字混合的数据排序6、处理排序空值7、根据数据项的键排序–8、从一个表中查找另一个表没有的值–9、在一个表中查找与其他表不匹配的记录–10、向查询中增加联接而不影响其他联接–11、检测两个表中是否有相同的数据–12、从多个表中返回丢失的数据–13、在运算和比较时使用null值–1、在select语句中使用条件逻辑select ename, sal, case when sal=4000 then 'OVERPAID' else 'OK' 阅读全文
posted @ 2013-06-24 15:45 Ruthless 阅读(1096) 评论(0) 推荐(1) 编辑
SQL Cookbook—插入、更新与删除
摘要:涉及到的问题–1、从一个表向另外的表中复制行–2、复制表定义(包含表记录)–3、一次向多个表中插入记录–4、–5、当相应行存在时更新–6、用其他表中的值更新–7、删除违反参照完整性的记录–1、从一个表向另外的表中复制行insert into dept_test (deptno, dname, loc) select deptno, dname, loc from dept where deptno=10–2、复制表定义(包含表记录)create table dept_test as select deptno, dname, loc from dept where deptno=10–3、一次 阅读全文
posted @ 2013-06-24 15:43 Ruthless 阅读(729) 评论(0) 推荐(0) 编辑
SQL Cookbook—数字、日期
摘要:1、计算不包含最大值和最小值的均值2、把字母数字串转换为数值3、更改累计和中的值–显示存款或取款后的值4、加减日、月、年5、计算两个日期之间的天数6、确定两个日期之间的工作日数目表EMP中,计算BLAKE和JONES的hiredate(聘用日期)之间的工作日数(除去星期六、星期天)7、确定两个日期之间的月份数或年数例如:EMP表中,求第一个员工和最后一个员工之间相差的月份数,以及这些月折合的年数8、确定两个日期之间的秒、分、小时数例如:EMP表中,求ALLEN和WARD的hiredate(聘用日期)之间相差的时间,分别用秒、分、小时表示9、计算一年中周内各日期的次数10、确定当前记录和下一条记 阅读全文
posted @ 2013-06-24 15:40 Ruthless 阅读(1162) 评论(0) 推荐(0) 编辑
oracle insert两个关联表
摘要:现有一张老师学生表(tb_tea_cou),由于业务需要,需把老师学生表tb_tea_stu拆分成两张表(tb_tea、tb_cou),并把记录insert到这两张子表中(tb_tea、tb_cou为关联的两张表)。表结构如下:tb_tea_cou( id, //pk name, //任课老师 zc, //职称 course //课程),老师表:tb_tea( tid, //pk tname, //任课老师 zc //职称),课程表:tb_cou( cid, //pk course, //课程 tea_id //fk,tb_tea id)插入数据INSERT INTO tb_tea_cou ( 阅读全文
posted @ 2013-06-24 15:34 Ruthless 阅读(6308) 评论(0) 推荐(0) 编辑
PL/SQL Developer使用技巧、快捷键
摘要:1、类SQL PLUS窗口:File->New->Command Window,这个类似于oracle的客户端工具sql plus,但比它好用多了。2、设置关键字自动大写:Tools->Preferences->Editor,将Keyword case选择Uppercase。这样在窗口中输入sql语句时,关键字会自动大写,而其它都是小写。这样阅读代码比较容易,且保持良好得编码风格,同理,在Tools->Preferences->Code Assistant(助手)里可以设置代码提示延迟时间、输入几个字符时提示、数据库对象的大写、小写,首字母大写等;3、查看执 阅读全文
posted @ 2013-06-24 15:28 Ruthless 阅读(109713) 评论(4) 推荐(11) 编辑
oracle sqlplus命令详解
摘要:涉及到的知识要点a、带有一个&的替换变量的用法b、带有两个&的替换变量用法c、define命令用法d、accept命令用法e、定制SQL*Plus环境f、在glogin.sql文件中保存定制结果g、sqlplus编辑命令a、带有一个&的替换变量的用法1)、使用带有一个&号的变量值来提示用户输入一个值。eg、SQL> SELECT empno, ename, sal, deptno FROM emp WHERE empno = &empno;输入 empno 的值: 7369原值 1: SELECT empno, ename, sal, deptno 阅读全文
posted @ 2013-06-24 15:16 Ruthless 阅读(8761) 评论(0) 推荐(0) 编辑
sqlplus column命令用法
摘要:column是sqlplus里最实用的一个命令,很多时候sql语句输出的列宽度不合适而影响查看,都需要用到这个命令来更改select语句中指定列的宽度和标题。大部分时候,我们可以简写column为col即可,主要有以下用法:a)、修改列宽度col c1 format a20 –将列c1(字符型)显示最大宽度调整为20个字符col c1 format 9999999 –将列c1(number型)显示最大宽度调整为7个字符b)、修改列标题col c1 heading c2 –将c1的列名输出为c2c)、设置列的对齐方式SQL> col ename justify left/right/cen 阅读全文
posted @ 2013-06-24 15:13 Ruthless 阅读(11714) 评论(0) 推荐(1) 编辑
oracle set命令详解
摘要:SQL>set colsep '|'; //输出分隔符eg、SQL> set colsep '|';SQL> select * from dept; DEPTNO|DNAME |LOC———-|————–|————- 10|ACCOUNTING |NEW YORK 20|RESEARCH |DALLAS 30|SALES |CHICAGO 40|OPERATIONS |BOSTONSQL>set echo off; //显示start启动的脚本中的每个sql命令,缺省为onSQL>set echo on; //设置运行命令是否显示语 阅读全文
posted @ 2013-06-24 15:03 Ruthless 阅读(15385) 评论(1) 推荐(0) 编辑

1 2 下一页