oracle
HelloBoat
just do IT.
展开
-
rowid高速分页解析
--分页第一步 获取数据物理地址select t.rowid rid, t.lastdate from t_test t order by t.lastdate desc;--分页第二步 取得最大页数select rownum rn, rid from (select t.rowid rid, t.lastdate from t_online06 t原创 2014-07-03 10:20:38 · 3490 阅读 · 2 评论 -
oracle分割字符串后以单列多行展示
原始的sql:select substr(field1, instr(field1, '|', 1, rownum) + 1, instr(field1, '|', 1, rownum + 1) - instr(field1, '|', 1, rownum) - 1) as field2原创 2014-11-20 11:58:48 · 5145 阅读 · 0 评论 -
oracle 换行
chr(10)原创 2014-11-20 17:37:43 · 2497 阅读 · 0 评论 -
ORA-06547: INSERT, UPDATE 或 DELETE 语句必须使用 RETURNING 子句
产生这个错误的原因:returning into子句作用于insert,update,delete,上而select则不行,应该用into。报错的存储如下:create or replace procedure p_stu_info(s_id number, s_name varchar2) is v_name varchar2(10); v_age number原创 2014-11-25 09:30:35 · 2763 阅读 · 0 评论 -
oracle 判断一个表是否已存在
用如下sql语句即可判断:select t.* from user_tables t where upper(t.TABLE_NAME)=upper('conectbytestbymine');原创 2014-12-03 10:15:56 · 1616 阅读 · 0 评论 -
oracle 判断某一个存储是否存在
用如下sql语句即可:SELECT distinct name FROM USER_SOURCE WHERE TYPE = 'PROCEDURE' and name = 'CONTINUEHISORDERPROCESS';原创 2014-12-03 10:24:07 · 1730 阅读 · 0 评论 -
oracle dbms_random.value
dbms_random是一个可以生成随机数值或者字符串的程序包。包中value()的用法有两种第一种无参,会返回一个具有38位精度的数值,范围从0.0到1.0,但不包括1.0:第二种value带有两个参数,第一个指下限,第二个指上限,将会生成下限到上限之间的数字,不包含上限:例1:无参用法、输出1到99之间的随意10个数SQL> set serverout on SQL>原创 2015-02-04 10:26:41 · 5190 阅读 · 0 评论 -
Oracle 修改默认的最大连接数
oracle的最大连接数缺省值是100,建库时默认值是150,主要受processes这个系统参数(实际还应受操作系统限制),这是个静态参数,修改后必需重启数据库才能生效,如果权限不够,需要以管理员身份登陆 alter system set processes=200 scope=spfile;原创 2014-12-10 15:40:01 · 2962 阅读 · 0 评论 -
oracle 防止插入重复数据
有时候用oracle的数据库,插入数据的时候需要判断一下该条数据是否已经存在。我们的第一思路如下,首先执行下面这个sql: select count(*) isExists from t_test_lll; 然后判断isExists等于0与否,如果等于0,则执行insert。上面这样写,也可以,但是多写很多代码,不利于后期维护。其实oracle可以内置在insert语句原创 2014-11-27 09:57:29 · 14176 阅读 · 1 评论 -
ORA-01659 无法分配超出1(XXX)的MINEXTENTS
ALTER DATABASE DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\book.dbf' AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED;或ALTER TABLESPACE test AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;原创 2015-03-26 09:32:34 · 11420 阅读 · 1 评论 -
ORACLE 单列查询变单行显示
SELECT substr(sys_connect_by_path(dutywork, ';'), 2) FROM (select dutywork,rownum rn from t_test) WHERE connect_by_isleaf = 1 START WITH rn = 1CONNECT BY prior rn = rn - 1;查询表t_t原创 2015-03-10 14:54:48 · 2064 阅读 · 0 评论 -
oracle 随机获取表中记录
select * from (select rownum, c.empno, c.ename, c.job from (select * from scott.emp order by dbms_random.value) c where rownum 随机获取前六条原创 2015-12-12 11:14:23 · 722 阅读 · 0 评论 -
oracle 删除重复记录
平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。下面总结一下几种查找和删除重复记录的方法(以表schoolclass为例):表schoolclass的结构如下:SQL> desc schoolclass;Name Type Nullable Default Comments原创 2016-04-07 20:54:06 · 569 阅读 · 0 评论 -
oracle分页
分页前端显示:<% int i = 1; int numPerPage = 14;//每页数据量 String pages = request.getParameter("page") ; int currentPage = 1; currentPage = (pages==null)?1:Integer.parseInt(pages); sql = "select coun原创 2016-04-14 14:28:58 · 876 阅读 · 0 评论 -
oracle 行转列,列转行
一、行转列主要原理是利用decode函数、聚集函数(sum),结合group by分组实现的例:--查看表是否存在select * from T_TEST_GRADE T;--新建测试表create table T_TEST_GRADE( GRADE_ID VARCHAR2(10) not null, USER_NAME VARCHAR2(20), COURSE原创 2016-04-15 11:46:14 · 1574 阅读 · 0 评论 -
存在一个表而不在另一个表的数据
435转载 2016-06-11 23:09:16 · 537 阅读 · 0 评论 -
oracle面试题
5454转载 2016-06-11 23:08:42 · 1682 阅读 · 0 评论 -
Oracle数据库备份与恢复之完全攻略
一、导出/导入(Export/Import)利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。1、简单导出数据(Export)和导入数据(Import)Oracle支持三种方式类型的输出:(1)表方式(T方式),将指定表的数据导出。(2)用户方式(U方式),将指定用户的所有对象及数据导出。(3)全库方式(Full方式),瘵...原创 2016-08-14 00:59:54 · 603 阅读 · 0 评论 -
oracle 表数据恢复
对于表数据恢复,误删了表中数据时,一般不要再操作这个表了,按照下面的处理,即可把表中数据恢复过来。场景:假设误删了表tabletest中的数据,则可用如下方法恢复表中数据第一中方式:创建一个备份表,存放三小时前的数据create table tabletest_2014bak nologging as select * from tabletest as of timestamp...原创 2014-12-30 18:02:39 · 1548 阅读 · 0 评论 -
oracle恢复已经删除的数据
insert into tablerestore select * from tablerestore as of timestamp to_Date('2014-8-8 15:00:00','yyyy-mm-dd hh24:mi:ss')参数解释:tablerestore 要恢复数据的表后面的时间是恢复截止到某个点的数据...原创 2014-08-08 18:18:56 · 1590 阅读 · 1 评论 -
用pl/sql导出、导入用户的表、存储
选择 工具-->导出用户对象,然后在列表中选择需要导出的用户对象,输出文件处选择要导出的位置,点击导出即可导出用户对象,导出文件为*.sql格式;选择 文件-->打开-->SQL脚本,然后选择刚才导出的文件,点击打开即可导入用户表;...原创 2014-03-05 16:01:38 · 2717 阅读 · 0 评论 -
Oracle 11g必须开启的服务及服务详细介绍
成功安装Oracle 11g数据库后,你会发现自己电脑运行速度会变慢,配置较低的电脑甚至出现非常卡的状况,通过禁止非必须开启的Oracle服务可以提升电脑的运行速度。那么,具体该怎么做呢? 按照win7 64位环境下Oracle 11g R2安装详解中的方法成功安装Oracle 11g后,共有7个服务,分别为OracleORCLVSSWriterService,OracleDBConsoleo...原创 2016-08-20 00:50:23 · 707 阅读 · 0 评论 -
登陆pl/sql developer
这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files (x86)目录下,不然无法启动PL/SQL Developer。奇怪这里为什么选择不到数据库的TNS呢?我是先安装数据库,再安装PL/SQL Developer。按理说安装PL/SQL Developer时,就已经识别到了Ora...原创 2016-06-15 00:09:22 · 1745 阅读 · 0 评论 -
卸载oracle11g client
1、停用oracle服务:进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止2、在开始菜单中,找到Universal Installer,运行OracleUniversal Installer,单击卸载产品3、在产品清单窗口中,单击全部展开,除了OraDb11g_home1外,勾选其他项目,单击删除卸载完后,再删除:OraDb11g_home13、按Win...原创 2016-06-14 23:52:46 · 4688 阅读 · 0 评论 -
pl/sql连接oracle配置
首先,我们必须有下面步准备:1.安装好Oracle2.安装好PLSQL developer下面就是让PLSQL developer连接到oracle数据库的操作步骤了选择:Net Configuration Assistant(红色框所指)启动点击下一步点击下一步名字可以任意,点击下一步点击下一步点击下一步点击下一步点...原创 2016-06-14 23:31:33 · 842 阅读 · 0 评论 -
PL/SQL 连接Oracle数据库
一、监听器(LISTENER)监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。二、本地服务名(Tnsname)Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效...原创 2016-06-13 22:57:48 · 1045 阅读 · 0 评论 -
oracle的启动和关闭
一、sql*plus方式: 用sql*plus来连接到Oracle Sqlplus /nolog是以不连接数据库的方式启动sql*plus Connect /as sysdba是以DBA身份连接到oracle . 启动 Startup就可...原创 2016-06-13 22:40:38 · 667 阅读 · 0 评论 -
Oracle 11G Client 客户端安装
先将下载下来的ZIP文件解压,并运行setup.exe文件。执行到第四步之后,出现错误,直接点全部忽略就可以了。把上面的步骤执行完了,那么就该等待ORACLE的安装了。...原创 2016-06-12 23:32:46 · 887 阅读 · 0 评论 -
windows下安装oracle11g
将文件win32_11gR2_database_1of2.zip和win32_11gR2_database_2of2.zip解压。 注意:这两个文件解压到同一个目录下,即:将Components目录合并到一起 双击“setup.exe”,弹出以下安装向导。去掉“I wish to receive security updates via My Oracle Support...原创 2016-06-12 22:48:02 · 653 阅读 · 0 评论 -
oracle相关的下载地址
直接复制到迅雷进行下载Microsoft Windows (x64) 光盘 1、光盘 2 (2GB)适用于 Microsoft Windows(32 位)的 Oracle Database 11g 第 2 版 (11.2.0.1.0)http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_1of2.zi...原创 2016-06-12 22:39:54 · 466 阅读 · 0 评论 -
查看oracle sid
oracle的sid在不同的系统环境下,查看方式不相同,方法分别如下:1、windows 下查看注册表开始 输入regedit 查看HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1\ORACLE_SID就是2、linux或者unix下可以echo $ORACLE_SID注意:ORACLE_SID要大写3、在sql命令下可以查...原创 2014-11-24 19:50:40 · 6427 阅读 · 0 评论 -
ORA-12560: TNS: 协议适配器错误
装了两个版本的oracle后,sqlplus连库时,conn /as sysdba,报这个错误造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。2.database instance没有起起来。win...原创 2014-03-03 17:20:43 · 3501 阅读 · 1 评论 -
index range scan(索引范围扫描)的计划分析
一、index range scan(索引范围扫描):1、对于unique index(唯一性索引,是带唯一性约束的,普通索引则没有唯一性约束。scott.emp表是主键,带有唯一性约束,同时有索引Rowid)来说,如果where 条件后面出现了<,> ,between ...and...的时候,那么就可能执行index range scan,如果where条件后面是=,那么...原创 2016-04-15 16:17:41 · 8278 阅读 · 0 评论 -
oracle执行计划分析
基于oracle的应用系统很多性能问题,是由应用系统sql性能低劣引起的,所以,sql的性能优化很重要,分析与优化sql的性能一般通过查看该sql的执行计划。一、什么是执行计划 一条查询语句在oracle中的执行过程或访问路径的描述。二、如何查看执行计划 1、set autotrace on; 2、explain plan for sq...原创 2016-04-15 15:24:24 · 4007 阅读 · 0 评论 -
oracle执行计划
一、执行计划定义所谓执行计划,顾名思义,就是对一个查询任务,做出一份怎样去完成任务的详细方案。举个生活中的例子,我从珠海要去英国,我可以选择先去香港然后转机,也可以先去北京转机,或者去广州也可以。但是到底怎样去英国划算,也就是我的费用最少,这是一件值得考究的事情。同样对于查询而言,我们提交的SQL仅仅是描述出了我们的目的地是英国,但至于怎么去,通常我们的SQL中是没有给出提示信息的,是由...原创 2016-04-15 14:50:59 · 586 阅读 · 0 评论 -
oracle把一个表中的数据导入另一个表
首先,如果两个表结构一样:insert into 表A select * from 表B如果两个表结构不一样:INSERT INTO 表1(字段1,字段2,字段n)select 表2.字段1,表2.字段2,表2.字段n from 表2...原创 2014-05-30 12:05:00 · 7907 阅读 · 0 评论 -
把字符串按照分割符分解成不同的部分
select regexp_substr('A,B,C,D,E', '[^,]+', 1, level, 'i') as str from dualconnect by level <= length('A,B,C,D,E') - length(regexp_replace('A,B,C,D,E', ',', '')) + 1;原创 2014-06-30 16:46:04 · 1433 阅读 · 0 评论 -
sqlplus连接oracle
1.运行->cmd,输入sqlplus /nolog 回车。2.输入conn /as sysdba 回车。3.create tablespace user_data datafile '/oracle/app/oradata/jcms/user_data.dbf' size 2000m autoextend on next 20m extent management local;...原创 2016-08-20 01:01:38 · 1171 阅读 · 0 评论 -
sqlplus修改oracle用户的密码和解锁用户
在sqlplus下去修改oracle用户的密码和解锁用户1、使用oracle用户登录,连接数据库[oracle@wuzj ~]$ sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on Thu Feb 26 12:06:29 2009Copyright (c) 1982, 2005, Oracle. All rights r...原创 2016-08-20 01:14:46 · 15865 阅读 · 0 评论 -
删除用户
当某个用户不再需要使用系统时,就可以从系统中删除用户drop user 用户名 [cascade]注:如果该(用户)模式包括了对象,要使用cascade子句来删除模式中的所有对象。另外,不能删除当前正在与Oracle服务器相连的用户。例如:1.SQL> drop user dog;User dropped.删除用户操作执行很慢。2.SQL> select username,defaul...转载 2016-08-11 01:06:59 · 656 阅读 · 0 评论