![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle
文章平均质量分 68
zw7534313
这个作者很懒,什么都没留下…
展开
-
Oracle外键级联删除和级联更新
Oracle外键级联删除和级联更新Oracle在外键的删除上有NO ACTION(类似RESTRICT)、CASCADE和SET NULL三种行为。1.1 NO ACTIONNO ACTION指当删除主表中被引用列的数据时,如果子表的引用列中包含该值,则禁止该操作执行。现在学生外键级联删除是NO ACTION,执行删除班级操作Oracle会提示违反完整性约束: ORA-0229...原创 2016-01-16 11:51:04 · 243 阅读 · 0 评论 -
ORACLE 左连接 left join
ORACLE 左连接:1.使用(+)表示:SELECT A.OID, A.VALUE, A.NE_TYPE_OID, NVL(B.STATUS, '1') STATUS, A.TYPE, A.STARTTIME START_TIME FROM ALARM_E A, ALARM_E_CLEAR_TIME B WHERE A.OID = B...原创 2011-02-11 18:05:26 · 1755 阅读 · 0 评论 -
用EXISTS替换DISTINCT
Oracle SQL 性能优化技巧 1.选用适合的ORACLE优化器 ORACLE的优化器共有3种 A、RULE (基于规则) b、COST (基于成本) c、CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS 。 你当然也在SQL句级或...原创 2011-02-09 12:24:26 · 1094 阅读 · 0 评论 -
ORACLE的analyze使用简介
ORACLE数据库的PL/SQL语句执行的优化器 http://blog.sina.com.cn/s/blog_4c705ccb0100cf4n.html ORACLE--性能优化http://blog.sina.com.cn/s/blog_4c705ccb0100cfq3.html原创 2010-11-04 10:25:44 · 170 阅读 · 0 评论 -
如何创建oracle函数索引
DBA在SQL语句调优的过程中遇到的一个很常见的问题就是,如何优化那些在WHERE子句中使用了函数的语句。因为在以前,在WHERE子句中使用函数会使在这个表上创建的索引没法利用,从而难以提高这个语句的性能。 例子: 使用基于成本的优化器,索引为标准的B树索引,建立在SURNAME列上。 SQL>create index non_fbi on sale_contacts (surname); ...原创 2010-11-04 10:02:38 · 171 阅读 · 0 评论 -
列转行 sql
如表ROW2COLUMN2有以下数据:名字 课程 分数1 张三 语文 80 2 张三 数学 86 3 张三 英语 754 李四 语文 785 李四 数学 856 李四 英语 78想变成下面记录:名字 语文 数学 英语1 李四 78 85 782 张三 80 86 75代替: 名字 课程 分数 A A1 80...原创 2010-12-24 15:15:17 · 98 阅读 · 0 评论 -
Exists 和In
3原创 2010-12-17 13:28:25 · 84 阅读 · 0 评论 -
Oracle 数组
固定数组 declare type type_array is varray(10) of varchar2(20); --一维数组,字符串类型 var_array type_array:=type_array('ggs','jjh','wsb','csl','dd','bb'); begin for i in 1..var_array.coun...原创 2010-09-01 11:03:35 · 256 阅读 · 0 评论 -
Oracle 定时任务
DBMS_JOB系统包是Oracle“任务队列”子系统的API编程接口。DBMS_JOB包对于任务队列提供了下面这些功能:提交并且执行一个任务、改变任务的执行参数以及删除或者临时挂起任务等。 设置初始化参数来进行的。下面就是该参数:JOB_QUEUE_PROCESSES = n 其中,n可以是0到36之间的任何一个数。 名称 类型 描述 DBMS_...原创 2010-09-01 10:10:39 · 166 阅读 · 0 评论 -
Oracle 数据库逻辑备份
数据库逻辑备份方法 ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。 表模式 备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。 若备份到本地文件,使用如下命令: exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=...原创 2010-08-31 09:09:24 · 267 阅读 · 0 评论 -
汉字首字母转拼音 ascii()
select pinyin('张伟') from dual;select user_id,username from t_user order by pinyin(username) 按首字母排序create or replacefunction pinyin(hz in varchar2) return varchar2 iszm varchar2(1);tmp integer;b...原创 2010-08-30 10:11:33 · 326 阅读 · 0 评论 -
oracle 对日期的操作
求模:select mod(7,2) from dual;1.oracle日期时间格式:年: yy 两位年 显示值:07 yyyy四位年 显示值:2007月: mm 两位月 显示值:11 month/mon 显示值:11月 日: dd 当月第几天 显示值:02 ddd 当年第几天 显示值:02...原创 2010-08-20 16:07:16 · 88 阅读 · 0 评论 -
oracle 去重复,¥货币,保留小数点后两位,测试SQL语句执行时间
1.去重复数据:select * from b a where id > (select min(id) from b b where a.name=b.name)2.测试SQL语句执行时间的方法和步骤:SQL> set timing on; 步骤:1. alter system flush shared_pool; --刷新一下shared_pool 2. set...原创 2011-02-17 15:38:17 · 160 阅读 · 0 评论 -
oracle多列子查询的实现
oracle多列子查询是oracle数据库中的一种查询方式: 多列子查询:oracle子查询一般都是返回单列,实际上数据库对此并没有进行限制,子查询也可以返回多列.oracle多列子查询的例子:检索每种产品在其类型中价格最低的产品:步骤:1.通过分组查询,统计每类产品的最低价格:select product_type_id,min(Price) from products...原创 2011-02-17 15:42:06 · 798 阅读 · 0 评论 -
Oracle数学函数和SQL数学函数的区别
Oracle数学函数和SQL Server中的数学函数不太一样。 ①绝对值 S:select abs(-1) value O:select abs(-1) value from dual②取整(大) S:select ceiling(-001) value O:select ceil(-001) value from dual③取整(小)...原创 2011-02-21 09:22:46 · 117 阅读 · 0 评论 -
Oracle Job
声明一个job: declare jobno number; begin dbms_job.submit(jobno, 'procedure_test;', //存储过程procedure_test名称后加分号 ...原创 2015-06-11 22:27:35 · 96 阅读 · 0 评论 -
procedure 不能编译,数据库死锁
一、数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。二、死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。三、死锁的定位方法通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。1)...原创 2012-03-05 21:17:57 · 119 阅读 · 0 评论 -
temporary table ,hint,over(),imp
create global temporary table CLTBALANCE( AMOUNT NUMBER(21,6), DEDATE DATE, ECONTRACTENDDATE DATE, ECONTRACTSTARTDATE DATE)on commit preserve rows; 用Hint 提示减...原创 2012-03-05 21:10:46 · 113 阅读 · 0 评论 -
PL/SQl 死循环,死锁
查找死循环:select * from v$session where sid in (select session_id from v$locked_object)解决死循环:alter system kill session 'sid,serial' Immediate; --立即杀掉原创 2012-02-20 19:23:48 · 180 阅读 · 0 评论 -
PL/SQL批绑定 FORALL
批绑定: PL/SQL语名块中的SQL语句被送往SQL引擎执行:FOR v_count IN 1..500 LOOP INSERT INTO tab values(v_count);END LOOP; 运行这个语句块之后,就向tab中插入500行。但是每个INSERT语句都是单个执行的,这就需要在PL/SQL和SQL之间进行500次文本交换。可以一次将整个PL/...原创 2012-02-01 11:12:03 · 85 阅读 · 0 评论 -
PL/SQL 联合数组,集合类型
自定义Type: create Type arr_Type IS Table of varchar2(128); 使用: v_arr arr_type; v_arr:=arr_type(); --初始化 v_arr.extend; --增加一个空间 v_arr(...原创 2012-01-05 14:16:49 · 114 阅读 · 0 评论 -
oracle数据库的游标Cursor和存储过程 PL/SQL
oracle数据库的游标和存储过程spool abc.log --开始记录日志create or replace procedure db.PROC_FIRST(FLAG OUT INTERGER, T_DATE IN VARCHAR2)AS varno varchar2(20); varprice varchar2(20); C...原创 2012-01-05 14:03:42 · 130 阅读 · 0 评论 -
Oracle 遇到的一些问题
1.ORA-08002:序列s_seq.currval沿未在此进程中定义 2.insert into student(id,name) values(student_seq.nextval,'张伟'),(student_seq.nextval,'李四'); 插入多条语句 3.raw类型 4.timestamp类型 yyyy-mm-dd 如何在数据库里保存yyyy-mm-d...原创 2010-11-15 21:39:42 · 103 阅读 · 0 评论 -
Oracle 优化
http://www.iteye.com/topic/508161原创 2010-11-08 16:01:35 · 63 阅读 · 0 评论 -
对Oracle数据库中的大表管理的简化--分区表
为了简化Oracle数据库中的大表管理,因而Oracle8推出了分区选项。分区主要是将表分离在N个不同的相关表空间上。将大表分割成较小的分区可以改善表的维护、备份、恢复、事务及查询性能。针对当前社保及电信行业的大量日常业务数据,分区的优点:1 、增强可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的分区仍然可以使用;2 、减少关闭时间:如果系统故障只影响表的一部分分区,那么只...原创 2011-02-21 09:27:24 · 128 阅读 · 0 评论 -
Oracle分页查询 效率高
1.Oracle分页查询:SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM tab) A WHERE ROWNUM <= 40 ) WHERE RN >= 21;这个分页比下面的执行时间少,效率高。 2.select * from ...原创 2011-02-21 09:25:56 · 356 阅读 · 0 评论 -
PL/SQL Developer
报告窗口: 打开一个新的报表窗口后,输入一个查询语句,执行报表,布局将使用默认风格属性。为精制标准布局,切换到布局(版面)(Layout)标签页,如果定义字段属性后,需要刷新字段列表键。 显示(displayed): 最左侧的复选框列控制布局项是否被显示描述(description): 改变列的标题样式(style): 样式控制布局项的...原创 2010-08-19 10:54:09 · 84 阅读 · 0 评论 -
PL/SQL Developer (2)
1.实例模式查询(query by example mode) 执行完一个select 语句后,如果你想查找其中的一个特殊记录,可以点击结果集上方的实例查询.在显示的表格中,输入条件。 2.关联查询(Linked Queryies) 当你想查看与这一条记录相关联的其他表的内容里,可以点击连接查询。关联查询将在同一个SQL窗口中执行,除非你允许S...原创 2010-08-18 11:05:28 · 195 阅读 · 0 评论 -
oracle 创建用户
-- oracle 安装在windows 系统 建立表空间语句 (输入 SQL, PL/SQL 和 SQL*Plus 语句。 )create tablespace test_service datafile 'E:\oracle\oradata\ora92\test_service01.dbf' size 100M REUSE LOGGING ONLINE PERMANENT ...原创 2009-12-18 08:56:25 · 59 阅读 · 0 评论 -
高性能 Oracle JDBC 编程
http://www.oracle.com/technology/global/cn/pub/articles/vasiliev-oracle-jdbc.html http://www.oracle.com/technology/global/cn/obe/11gr1_db/appdev/sqldev/sqldev.htm sqldeverloper原创 2009-12-17 14:41:08 · 79 阅读 · 0 评论 -
Oracle (group by, order by)
1.GROUP BY主要用来对一组数进行统计SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno; DEPTNO COUNT(*) SUM(SAL)--------- --------- --------- 10 3 8750 20 ...原创 2009-12-17 10:54:38 · 89 阅读 · 0 评论 -
Oracle 函数(处理Date)
1.TO_DATE(string,'format')将字符串转化为ORACLE中的一个日期2.SYSDATE用来得到系统的当前日期SQL> select to_char(sysdate,'dd-mm-yyyy day') from dual;TO_CHAR(SYSDATE,'-----------------09-05-2004 星期日trunc(date,fmt)按照给出的要求...原创 2009-12-17 10:38:28 · 102 阅读 · 0 评论 -
Oracle 函数(处理Number)
1.AVG(DISTINCT|ALL)all表示对所有的值求平均值,distinct只对不同的值求平均值SQLWKS> create table table3(xm varchar(8),sal number(7,2));语句已处理。SQLWKS> insert into table3 values('gao',1111.11);SQLWKS> insert into tab...2009-12-17 10:36:13 · 186 阅读 · 0 评论 -
Oracle 函数(处理String)
1.CONCAT连接两个字符串;SQL> select concat('010-','88888888')||'转23' 高乾竞电话 from dual;高乾竞电话----------------010-88888888转23 2.LENGTH返回字符串的长度;SQL> select name,length(name),addr,length(addr),sal,leng...原创 2009-12-17 10:15:02 · 257 阅读 · 0 评论 -
Oracle 执行计划
总结:SQLPLUS 下的自动显示功能,在看执行计划中其语句还是会被执行的。尤其在执行UPDATE/DELETE语句时请千万注意,ORACLE是先执行脚本同时显示执行计划的,即使使用set autotrace on traceonly explain;这个时候推荐使用EXPLAIN PLAN FOR来看或者PL/SQL等第三方工具 3、第三工具来看执行计划 如果在PL/SQL中...2010-03-09 10:05:46 · 60 阅读 · 0 评论 -
oracle 一段时间内有几个工作日(天数)
create or replaceFUNCTION GETWORKDAY3( sdate IN DATE, edate IN DATE) RETURN NUMBER AS holidays number:=0; st Date; en Date;BEGIN for h in (select holiday_id hid from T_ATTE_HOLIDAYS) loop select DA...2010-03-06 14:37:01 · 715 阅读 · 0 评论 -
Oracle 自定义函数
http://www.oracle.com.cn/archiver/?tid-17996.html 1.在一段时间内的工作日(天数)create or replace FUNCTION WORKDAYS( startd IN DATE, endd IN DATE) RETURN NUMBER ASdays number;BEGIN select (trunc(endd-startd)...原创 2010-03-05 13:53:39 · 101 阅读 · 0 评论 -
Blob Clob
1.EMPTY_BLOB()和EMPTY_CLOB()这两个函数都是用来对大数据类型字段进行初始化操作的函数 2.BFILENAME(dir,file)指定一个外部二进制文件(它是File类型)SQL>insert into file_tb1 values(bfilename('lob_dir1','image1.gif')); Blob类型读取: Bl...原创 2009-11-26 16:03:41 · 81 阅读 · 0 评论 -
String转化成CLOB并插入Oracle
PreparedStatement ps = conn.prepareStatement("INSERT INTO CLOBTABLE VALUES (?)");oracle.sql.CLOB newClob = oracle.sql.CLOB.createTemporary(conn, false, oracle.sql.CLOB.DURATION_CALL);newClob.putString...原创 2009-11-13 16:48:55 · 1533 阅读 · 0 评论 -
oracle Blob对象的读写
select student_seq.nextval from dual // 每执行一次都不一样(不管数据库插没插入数据) public class OracleConnection { String url="jdbc:oracle:thin:@localhost:1521:orcl"; String user="zw"; String password="pass"; public...2009-12-18 11:54:24 · 105 阅读 · 0 评论