Oracle
文章平均质量分 76
王四勇
这个作者很懒,什么都没留下…
展开
-
数据库分页
Mysql分页采用limt关键字select * from t_order limit 5,10; #返回第6-15行数据 select * from t_order limit 5; #返回前5行 select * from t_order limit 0,5; #返回前5行Mssql 2000分页采用top关键字(20005以上版本也支持关键字rownum)...原创 2012-05-03 22:55:35 · 87 阅读 · 0 评论 -
Oracle dblink远程调用存储过程、函数、序列
一、dblink远程调用procedure: 1、写了一个调用远端sayHello存储过程的存储过程,远端sayHello存储过程如下: -- 远端 sayHello 定义如下:create or replace procedure sayHello(currentTime out varchar) isbegin select 'Hello World' into c...原创 2012-11-16 10:46:32 · 5252 阅读 · 0 评论 -
Oracle dblink小结备忘
1.查看数据库的global_name SELECT * FROM GLOBAL_NAME; 2.查看global_name参数是true还是false show parameter global_name 如果为true,本地建立的dblink名称必须与远程的global_name一致才行。 3.创建dbli...原创 2012-11-16 10:48:58 · 190 阅读 · 0 评论 -
Oracle dblink远程调用序列时应注意的几点
在一条语句中如果同时包括数据库链和序列,就会出现潜在的问题,而Oracle的文档在这里并没有描述清楚。下面通过一个例子对同时包括数据库链和序列的几种情况分别进行说明。 首先,构造一个测试的环境(两个数据库的GLOBAL_NAMES均为TRUE):SQL> conn scott/tiger@yangtk已连接。SQL>...原创 2012-11-19 13:55:58 · 1499 阅读 · 0 评论 -
Oracle数据库GLOBAL_NAMES参数的详细研究
Oracle数据库GLOBAL_NAMES参数的相关知识是本文我们主要要介绍的内容,当GLOBAL_NAMES参数设置为TRUE时,使用DATABASE LINK时,DATABASE LINK的名称必须与被连接库的GLOBAL_NAME一致。下面做一个测试,在测试中,创建数据库链接的库为XJ(WINDOWS 2003 ORACLE 10g 10.2.0.1),被链接的库为DMDB(LINUX...原创 2012-11-19 14:00:44 · 91 阅读 · 0 评论 -
row_number() over()分析函数用法
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码。 row_num...原创 2013-05-10 16:12:05 · 211 阅读 · 0 评论 -
Oracle树查询及相关函数
Oracle树查询的最重要的就是select...start with... connect by ...prior 语法了。依托于该语法,我们可以将一个表形结构的中以树的顺序列出来。在下面列述了Oracle中树型查询的常用查询方式以及经常使用的 与树查询相关的Oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等。 以我做过的一个项目中的表为例,表结...原创 2012-04-20 16:04:36 · 61 阅读 · 0 评论 -
Oracle触发器总结
1.触发器定义:触发器是数据库中由一个时间触发的特殊的存储过程,他不是由程序条用也不是手工启动的。触发器的执行可以由对一个表的insert,delete, update等操作来触发,触发器经常用于加强数据的完整性约束和业务规则等等。 2.触发器作用:触发器可以对其他表进行查询,也可以包含复杂的SQL语句。他么主要用于强制服从复杂的业务规则或者要求。例如可以利用触发器根据客户当前的帐户状...原创 2013-06-05 10:34:44 · 295 阅读 · 0 评论 -
group by高级用法
一、如何理解group by 后 带 rollup 子句所产生的效果group by 后 带 rollup 子句的功能可以理解为:先按一定的规则产生多种分组,然后按各种分组统计数据(至于统计出的数据是求和还是最大值还是平均值等这就取决于SELECT后的聚合函数)。因此要搞懂group by 后 带 rollup 子句的用法主要是搞懂它是如何按一定的规则产生多种分组的。另group by ...原创 2012-09-07 16:17:10 · 1201 阅读 · 0 评论 -
ORACLE纯SQL实现多行合并一行
项目中遇到一个需求,需要将多行合并为一行。表结构如下:NAME Null Type------------------------ --------- -----N_SEC_CODE NOT NULL CHAR(6)C_RESEARCHER_CODE NOT NULL VAR...原创 2013-06-08 16:06:10 · 139 阅读 · 0 评论 -
MySql,Mssql,Oracle三种数据库性能优缺点及异同
MySql优点 MySql是一个快速、多线程、多用户的SQL数据库服务器。几乎是免费的,支持正规的SQL查询语言和采用多种数据类型,能对数据进行各种详细的查询等。 MySql的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySql能很容易充分利用CPU。 MySql可运行在不同的操作系统下。简单地说,My...原创 2013-07-01 09:48:54 · 525 阅读 · 1 评论 -
Oracle创建用户,授权
1.用system,sys账户登录2.创建用户create user userName identified by pwd default tablespace users;创建用户userName,密码pwd,并分配表空间。3.授权给某个用户grant connect,resource to userName;(只有用户有了connect 和 resource后才能操作其他表)4....原创 2013-07-01 09:56:36 · 73 阅读 · 0 评论 -
Oracle 冷备份和冷恢复
阅读说明1.参数说明 COLD_BACK_DIR: 冷备份目录SCRIPT_FILE: 此代码所生成的批处理文件路径及文件名称LOG_FILE: 备份日志文件存放路径及文件名称INT_PWD: internal用户的口令保存生成的sql文件。2.在实际生产环境中参数根据实际情况而定3.执行cmd cd 到保存生成sql文件的指定目录4.sqlplus 用户名/密码@数据库实例 @...原创 2013-07-01 13:37:22 · 96 阅读 · 0 评论 -
Oracle11g 导出数据库
在运行中输入exp.exe,或者在dos命令中输入exp.exe即可方便的进行导出数据库操作。 可能出现的错误1:未装载数据库 EXP-00056: 遇到 ORACLE 错误 1034 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist EXP-00005:...原创 2013-07-01 13:37:51 · 125 阅读 · 0 评论 -
Oracle sql语句执行顺序
sql语法的分析是从右到左 一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。5)选择优化器,不同的优化器一般产生不同...原创 2013-07-05 09:53:05 · 1650 阅读 · 0 评论 -
Oracle中GOTO的用法
Oracle中没有continue关键字,在loop中可以用goto语句实现同样的效果。create or replace procedure dd is i pls_integer;begin i := 0; loop <<top>> i := i + 1; if i > 10 then e...原创 2013-12-03 14:37:31 · 2654 阅读 · 0 评论 -
oracle分页所遇到的rownum问题:要增加order by的唯一性
昨天做完项目后让测试测试了一把,测试说分页查询貌似不起作用,翻到第4页以后,看到的数据结果都是相同的。当时我就觉得很纳闷,不可能啊,分页组件应该是好的,咋可能有问题呢。带着疑问,我打开了自己的ide,在自己的机器上跑了一把,果然有问题。有问题就要找问题:首先把2条查询结果相同的sql打印出来到数据库中执行: sql1:select * from (select t...原创 2013-12-04 17:04:15 · 229 阅读 · 0 评论 -
Oracle常用函数笔记
1. substr SUBSTR(c1,n1[,n2]) 截取指定长度的字符串。n1=开始长度;n2=截取的字符串长度,如果为空,默认截取到字符串结尾; 如果n1>0,则oracle从左向右确认起始位置截取;如果n1<0,则oracle从右向左数确认起始位置;如果n1>c1.length则返回空; Sql代码 ...原创 2012-04-17 17:58:57 · 86 阅读 · 0 评论 -
Oracle中 length 和 lengthb 区别
PurposeThe LENGTH functionsreturn the length ofchar. LENGTH calculates length usingcharacters as defined by the inputcharacter set. --返回以字符为单位的长度.LENGTHB usesbytes instead of chara...原创 2012-04-17 17:56:05 · 214 阅读 · 0 评论 -
Oracle drop、delete和truncate区别
oracle中可以使用drop、delete和truncate三个命令来删除数据库中的表,网上有许多文章和教程专门讲解了它们之间的异同,我说简单点如下: 1. delete和truncate都是删除表中的内容而不能删除表的结构,而drop则是删除表的结构和内容(表将不复存在);2. delete可以删除整个表的数据也可以有选择性地删除某一条或多条数据,而truncate则是一次性...原创 2012-04-17 10:33:20 · 208 阅读 · 0 评论 -
oracle基本操作
在SQLPLUS下,实现中-英字符集转换 alter session set nls_language='AMERICAN'; alter session set nls_language='SIMPLIFIED CHINESE'; 主要知识点: 一、有关表的操作 1)建表 create table test as select * from dept; --从已知表复制数据和结构 create ...原创 2012-05-08 09:41:11 · 107 阅读 · 0 评论 -
TOAD常用使用技巧
1 .把鼠标停在sql所在行,然后ctrl+Enter直接执行当前sql。 2 .解决Toad对中文显示乱码问题: 系统环境变量加 NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 3 .toad中自动提示功能,就像plsql developer那样: 输入表名前几个字母,然后用Ctrl + .就可以弹出,如你输入select *...原创 2012-05-22 22:12:27 · 595 阅读 · 0 评论 -
数据库中提取随记数据
在MySQL里可以用rand()、ORACLE里可以用dbms_random.value、MSSQL里可以用rand或newID(不是随机函数,但也可以用它达到目的).例如:MYSQL里随机提取USERS表里的20条记录select * from USERS order by rand() limit 20 ORACLE里则可以写成1.select * from U...原创 2012-06-06 21:33:47 · 167 阅读 · 0 评论 -
Oracle中随机抽取N条记录
一、Oracle取随机数据 1、Oracle访问数据的基本方法: 1)、全表扫描(Full table Scan):执行全表扫描,Oracle读表中的所有记录,考查每一行是否满足WHERE条件。Oracle顺序的读分配给该表的每一个数据块,且每个数据块Oracle只读一次.这样全表扫描能够受益于多块读. 2)、采样表扫描(sample table scan):扫描返回表中随机采样数据,这...原创 2012-06-06 22:00:04 · 109 阅读 · 0 评论 -
行列转换总结
这篇文章是我偶然在asktom上看到的,当时有人问子查询合并(subquery coalescing),TOM给出了这篇文章的链接:http://www.vldb.org/pvldb/2/vldb09-423.pdf我花了大约一周时间翻译,有很多术语找不到相关翻译就只好自己杜撰一个,根据自己的理解对一些难懂的地方做了注释。如果你发现了错误请不吝指正。文中的例子非常值得一读,目前我没有时间...原创 2012-06-19 23:08:12 · 371 阅读 · 0 评论 -
Oracle学习笔记整理之游标篇
转自:http://www.itpub.net/thread-1394528-1-1.html游标分为隐式、显式、REF三种游标。而隐式游标和显式游标又都属于静态游标,REF游标属于动态游标。静态游标和动态游标的最大区别在于静态游标是在运行前将游标变量和SQL关联,而动态游标恰恰相反是在运行后将游标变量和SQL进行关联。隐式游标是由Oracle自动管理,也称sql游标。所有的DML都被Orac...原创 2012-06-20 16:00:41 · 115 阅读 · 0 评论 -
Oracle创建用户、表空间、导入导出命令
//创建临时表空间create temporary tablespace test_temp tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf' size 32m autoextend on next 32m maxsize 2048mextent management local;...原创 2012-03-03 20:51:46 · 76 阅读 · 0 评论 -
oracle表空间操作详解
建立表空间 8 9CREATE TABLESPACE data01 10DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M 11UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k 12 13删除表空间 14 15DROP TABLESPACE data01 INCLUDING CO...原创 2012-03-03 20:55:28 · 79 阅读 · 0 评论 -
Oracle SQL性能优化
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉...原创 2012-11-06 16:12:36 · 79 阅读 · 0 评论 -
oracle复制表数据,复制表结构
1.不同用户之间的表数据复制 对于在一个数据库上的两个用户A和B,假如需要把A下表old的数据复制到B下的new,请使用权限足够的用户登入sqlplus:insert into B.new(select * from A.old);如果需要加条件限制,比如复制当天的A.old数据insert into B.new(select * from A.old where date=GMT); ...原创 2012-08-03 15:39:32 · 126 阅读 · 0 评论 -
怎样将Excel内准备的数据用PLSQL Developer导入到Oracle表
PLSQL Developer中表的数据拷贝到Excel中,鼠标右击选择Copy to Execl,就可以把表中的所有数据拷贝到Excel 将Excel内准备的数据用PLSQL Developer导入到Oracle表分以下几个步骤:1.在Excel中准备好数据。具体技巧是:在Excel文档中,把第一列设置为空列,第二列以后的列应按照要导入的数据表的字段依次来排列(为导入方便)。2.登录上P...原创 2012-04-12 17:32:31 · 150 阅读 · 0 评论 -
UNION 和 UNION ALL 的用法
UNION 指令的目的是将两个 SQL 语句的结果合并起来,可以查看你要的查询结果. 例如: select cpid from eps_cp union select cpid from eps_cpcms_user union用法中,两个select语句的字段类型匹配,而且字段个数要相同 select cpid ,ISAVAILABLE from eps_cp union all select ...原创 2012-04-16 14:43:54 · 171 阅读 · 0 评论 -
Oracle常用日期操作
--Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-182.select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天....原创 2012-11-12 16:33:19 · 84 阅读 · 0 评论 -
Oracle job操作注意事项
创建一个简单的JOB实列1、创建测试表SQL> create table a(a date,b varchar2(10));表已创建。2、创建一个自定义过程SQL> create or replace procedure test1 as begininsert into a values(sysdate,'start');begindbms_sta...原创 2012-11-13 10:40:36 · 133 阅读 · 0 评论 -
Oracle job问题解决汇总
一、job的运行频率设置1.每天固定时间运行,比如早上8:10分钟:Trunc(Sysdate+1) + (8*60+10)/24*602.Toad中提供的:每天:trunc(sysdate+1)每周:trunc(sysdate+7)每月:trunc(sysdate+30)每个星期日:next_day(trunc(sysdate),'SUNDAY')每天6点:t...原创 2012-11-13 10:42:10 · 318 阅读 · 0 评论 -
ORACLE 10g下载|ORACLE 10g下载地址|ORACLE 10g官网下载地址
ORACLE 10g下载地址oracle 下载还需要用户名我自己注册了个方便大家使用下载user:wangdetian168@gmail.compass:2NFB6Hj9Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (32-b...原创 2012-08-09 23:09:27 · 169 阅读 · 0 评论 -
Oracle左连接与右连接区别
数据表的连接有: 1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2、外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制) 3、自连接(连接发生在一张基表内) select a.studentno, a.studentname, b.classname from st...原创 2013-10-28 19:12:12 · 901 阅读 · 0 评论