
Oracle相关
文章平均质量分 69
caoshichaocaoshichao
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PLSQL基本知识
PLSQL基本结构*****************************************基本数据类型变量 1. 基本数据类型 Number 数字型 Int 整数型 Pls_integer 整数型,产生溢出时出现错误 Binary_integer 整数型,表示带符号的整数 Char 定长字符型,最大255个字符 Varchar2 变原创 2010-05-11 18:30:00 · 1086 阅读 · 0 评论 -
truncate delete drop 区别
1.truncate delete 都是删除数据,不删除表结构,DROP删除数据和表结构。2.delete 是DML语句,会产生undo数据,需要提交事物后生效,可以回滚,并且触发TRIGGER;而 truncate ,drop是DDL 立即生效,不可以回滚,不触发TRIGGER。3.delete 不影响所占用的EXTENT,HWM保持不变。drop 会释放全部空间。truncate 会释原创 2010-03-12 12:06:00 · 521 阅读 · 0 评论 -
自己写的oracle dbms_sql 函数包例子
create or replace procedure pro_insert_dbmsiscid number;cid_DDL number;selectsql varchar2(1000);ddlsql varchar2(1000);row_count number;nofrows integer;lrowid rowid;d原创 2010-03-05 15:34:00 · 1223 阅读 · 0 评论 -
oracle plsql 存储过程常用例子
Author:qinyangzhao describe:PL/SQL记录记录 (type is record) *************原创 2010-03-05 15:31:00 · 2723 阅读 · 0 评论 -
杀进程
1.查哪个过程被锁查V$DB_OBJECT_CACHE视图: SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER=过程的所属用户 AND LOCKS!=0; 2. 查是哪一个SID,通过SID可知道是哪个SESSION.查V$ACCESS视图: SELECT * FROM V$ACCESS WHERE OWNER=过程的所属用户 AND原创 2010-03-02 16:32:00 · 737 阅读 · 1 评论 -
dbms_sql包例子
这个专门的方法用内部用了 dbms_sql包来实现insert 语句的操作。这样避免连接字符等麻烦。充分利用oracle 的特性.方便维护。下面是我用dbms_sql 做更新和查询的试验示例。 declarev_cursor number; --定义光标v_string varchar2(2999);v_row number; beginv_cursor:=dbms_sql.open_cu原创 2010-02-26 09:57:00 · 672 阅读 · 0 评论 -
ORACLE JOBS
一、设置初始化参数 job_queue_processes sql> alter system set job_queue_processes=n;(n>0) job_queue_processes最大值为1000 查看job queue 后台进程 sql>select name,description from v$bgprocess; 二,dbms_job package 用原创 2009-12-18 12:36:00 · 578 阅读 · 0 评论 -
自己写的oracle存储过程会用到
create or replace procedure prc_statistic_declare(table_name varchar2 ,table_name_pass varchar2 ,not_exist varchar2,not_exist_record varchar2)--eg:t_statistic_bianyuanhu_month,t_statistic_bianyuanhu原创 2010-02-26 10:19:00 · 518 阅读 · 0 评论 -
DBMS_SQL包实现动态SQL
.在查询中会遇到 UNION ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,而union all不会,所以从效率上,union all 会高一点.2.union all 是按原先顺序排列的,union 把两张表中的重复数据去掉后还进行了重新排序声明:此文来源于网路!内容摘要:在PL/SQL开发过程中,使用SQL,PL/SQL可以实现大部原创 2010-02-26 10:03:00 · 511 阅读 · 0 评论 -
ORACLE 常用查询大全
oracle常用经典SQL查询 常用SQL查询: 1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_nam原创 2009-12-16 13:50:00 · 2538 阅读 · 0 评论 -
Oracle优化
1. 访问Table的方式ORACLE 采用两种访问表中记录的方式:a. 全表扫描全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描.b. 通过ROWID访问表你可以采用基于ROWID的访问方式情况,提高访问表的效率, ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(原创 2009-12-05 15:33:00 · 2690 阅读 · 0 评论 -
CMD下创建Oracle数据库(以Oracle10g为例)
一、在Unix下创建数据库 1.确定数据库名、数据库实例名和服务名 关于数据库名、数据库实例名和服务名,我之前有专门用一篇来详细介绍。这里就不再说明了。2.创建参数文件 参数文件很确定了数据库的总体结构。Oracle10g有两种参数文件,一个是文本参数文件,一种是服务器参数文件。在创建数据库时先创建文本参数文件,在数据库创建后,可以由文件参数文件创建服务器参数文件。文本参数文件的取名原创 2009-11-30 22:44:00 · 3252 阅读 · 0 评论 -
数据库内存参数调优技术的总结
实例结构 oracle实例=内存结构+进程结构 oracle实例启动的过程,其实就是oracle内存参数设置的值加载到内存中,并启动相应的后台进程进行相关的服务过程。 进程结构 oracle进程=服务器进程+用户进程 几个重要的后台进程: DBWR:数据写入进程. LGWR:日志写入进程. ARCH:归档进程. CKPT:检查点进程(日志切换;上一个检查点之后,原创 2010-01-21 21:14:00 · 637 阅读 · 0 评论 -
Oracle 插入总结
Oracle 向一个表中插入数据的两种方式: Conventional Insert Operations:传统插入会优先使用高水位之下,会保证数据应用完整性:高水位之下是指:删除之后的剩余空间,高水位之上是指:从来没有用过的处女块。 Direct-path Insert Operations:数据插入会利用高水位之上,不用高水位之下。采用Appends追加方式、不经过Bu原创 2009-11-18 23:01:00 · 1696 阅读 · 0 评论 -
Oracle 批量导入Sequence
select create sequence ||sequence_name|| minvalue ||min_value|| maxvalue ||max_value|| start with ||last_number|| increment by ||increment_by||原创 2009-11-13 10:34:00 · 2428 阅读 · 0 评论 -
DBMS_SCHEDULE
您是否厌倦了在 dbms_job 中手工管理时间间隔的繁琐,需要数据库内部有个新调度系统? 让我们就着眼于数据库本身来解决这个问题。你们中的一部分人可能广泛使用 dbms_job 程序包来将数据库作业提交到后台运行,控制运行的时间或时间间隔,报告故障等等。 然而,我感觉你们中的大部分人不会这么做。 这个程序包存在的问题是它只能够处理 PL/SQL 代码段 — 仅能处理匿名程序块和存储程原创 2010-03-12 17:03:00 · 1401 阅读 · 0 评论 -
用户资源管理DBMS_RESOURCE_MANAGER
用户资源管理DBMS_RESOURCE_MANAGER用户资源管理涉及到的数据包主要有两个:DBMS_RESOURCE_MANAGER和DBMS_RESOURCE_MANAGER _PRIVS。其中包DBMS_RESOURCE_MANAGER主要是用于建立资源计划,建立资源用户组,建立资源分配方法等用户资源相关的管理;而DBMS_RESOURCE_MANAGER _PRIVS的主要用途是进原创 2010-03-12 17:32:00 · 1500 阅读 · 0 评论 -
Oracle index 的运用
1 查看某张表的index的详细信息。(column_position代表选择顺序)select table_name, index_name, column_name, column_position from user_ind_columns where table_name = T_BASE_DATA_DICTIONARY order by table_name, index_na原创 2009-12-29 13:19:00 · 933 阅读 · 0 评论 -
DATABASE LINK
物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单一的大型数据库,用户可以通过网络对异地数据库中的数据进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的,开发人员无需关心网络的链接细节、数据在网络节点中的具体分布情况和服务器间的协调工作过程。 数据库之间的链接建立在DATABASE LINK上。要创建一个DATABASE LINK,必须首先在建立链接的数据转载 2010-05-12 12:52:00 · 564 阅读 · 0 评论 -
提高数据更新效率(UPDATE/INSERT)
有多种方法可以提高更新的效率.简单说来:1、暂停索引,更新后恢复.避免在更新的过程中涉及到索引的重建.2、批量更新,每更新一些记录后及时进行提交动作.避免大量占用回滚段和或临时表空间.3、创建一临时的大的表空间用来应对这些更新动作.=========================================================================不同看法如果UPDAT转载 2010-05-11 13:11:00 · 23120 阅读 · 0 评论 -
SQL、PL/SQL学习笔记
1.SQL并行查询 alter session enable parallel dml execute immediate alter session enable parallel dml; --修改会话并行DML select /*+parallel(a,4)*/ * from table_name a select /*+parallel(原创 2010-05-10 13:25:00 · 1123 阅读 · 1 评论 -
修改Oracle数据库表的表空间
Oracle实际应用中,很多人可能会遇到这样的问题。处于性能或者其他方面的考虑,需要改变某个表或者是某个用户的所有表的表空间。通常的做法就是首先将表删除,然后重新建表,在新建表时将表空间指定到我们需要改变的表空间。如果该用户已经保存了大量数据,这种办法就就显得不是很方便,因为有大量数据需要提前备份出来。下面介绍一种利用数据库的导出/导入功能来实现重新组织数据库表空间的方法。 下面是一个简单原创 2010-04-24 23:44:00 · 1608 阅读 · 0 评论 -
用最简单的方法复制或迁移Oracle数据库
在DBA的日常工作中,经常需要重装或在新机器上安装Oracle,但每次安装所浪费的时间、精力以及失败的挫折都在考验着DBA的承受能力,本文着重介绍了一个简单的复制和迁移Oracle数据库的方法,详细内容请参考下文。 复制迁移的步骤如下: ◆1、首先,复制原Oracle数据库的安装目录到新机器或系统中的安装目录,注意目录要一致,盘符也要一致。 ◆2、假如Oracl原创 2010-04-24 17:03:00 · 1515 阅读 · 0 评论 -
如何确定Oracle数据库表中重复的记录
作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示ORA-01452:不能创建唯一索引,发现重复记录。 下面我们以表code_ref为例来讨论这个问题及其解决办法。 ERROR位于第1行: ORA-01452: 无法 CREATE UNIQUE INDEX;找到重复的关键字 Oracle系统提示原创 2010-04-25 00:20:00 · 964 阅读 · 0 评论 -
Oracle经验谈:删除DUAL表后的处理
Oracle系统中dual表是一个“神秘”的表,网上有很多网友都对该表进行了测试,该表只有一行一列,其实该表和系统中的其他表一样,一样可以执行插入、更新、删除操作,还可以执行drop操作。但是不要去执行drop表的操作,否则会使系统不能用,数据库起不了,会报Database startup crashes with ORA-1092错误。 此时也不要慌乱,可以通过执行以下步骤来进行恢复。原创 2010-04-25 00:10:00 · 813 阅读 · 0 评论 -
Oracle数据库几种不同的数据库启动和关闭方式
Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。 一、启动和关闭Oracle数据库 对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager。从Oracle 8i以后,系统将Server Manager的所有功能都集中到了SQL*Plus中,原创 2010-04-24 23:33:00 · 2662 阅读 · 0 评论 -
探讨Oracle数据库存储过程的若干问题
1.在oracle中,数据表别名不能加as,如: select a.appname from appinfo a;-- 正确 select a.appname from appinfo as a;-- 错误 也许,是怕和oracle中的存储过程中的关键字as冲突的问题吧 2.在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利用游标的话就另当别论原创 2010-04-24 22:06:00 · 700 阅读 · 0 评论 -
大型Oracle数据库迁移解决方案
大型Oracle数据库迁移解决方案 大型Oracle数据库的迁移需求和挑战 随着业务的不断拓展,我们经常需要对系统进行调整,比如:存储系统升级、服务器升级、平台的迁移、数据库版本升级等等,这些情况我们都需要借助数据迁移工作来完成。在迁移过程中,我们经常会遇到一些很难解决的问题。因为,如果是在相同的操作系统平台、或相同的数据库平台之间做数据库的迁移,会原创 2010-04-24 18:11:00 · 16174 阅读 · 0 评论 -
Oracle查询 rownum和rowid的区别
在Oracle中,有一个很有趣的东西,那就是rownum。当你从某个表中查询数据的时候,返回的结果集中都会带有rownum这个字段,而且有时候也可以使用rownum进行一些条件查询。 在查询中,我们可以注意到,类似于“select xx from table where rownum 1)这样的查询是有正确含义的,而“select xx from table where rownum =原创 2010-04-24 22:40:00 · 573 阅读 · 0 评论 -
用存储过程定期分割表
Oracle数据库里存放着各种各样的数据,其中有一些数据表会随着时间的推移,越来越大。如交友聊天的日志、短信收发的日志、生产系统的日志、动态网站发布系统的日志等等。这样的信息又和时间紧密相关,有没有办法让这些日志表能按时间自动分割成历史年月(如log200308,log200309)的表呢? 请看看我用存储过程定期分割表的方法吧。 一、问题的引出 1.初学数据库时只知道用delete来删除表里原创 2010-04-23 10:54:00 · 529 阅读 · 0 评论 -
Oracle 在window下自动备份
1、确定你的计算机上装有oracle的客户端,如果没有,请安装oracle客户端2、确定有你的oracle服务里有你要需要备份的数据库的服务名。 3、制作一个批处理文件(oracleBackup.bat),具体方法:打开“记事本”,保存为oracleBackup.bat, 此时保存的文件类型选择为“所有文件”。我的保存目录为:d:/oracleBackup.bat。oracle客户端安装原创 2010-01-13 13:26:00 · 3029 阅读 · 0 评论 -
Spring+Hibernate中处理Oracle的BLOG和CLOG字段
对于BLOG和CLOB字段,大部分数据库提供了较为透明的支持,但Oracle比较特殊一些,在用Spring和Hibernate操作时,需要作一些特殊的处理,以CLOB为例,基本有下面几个步骤:1、在Spring的配置文件中加入以下几个Bean的定义 2、在sessionFactory这个Bean中加入一个属性的引用3、在需要clob的JavaBean对应的hbm.xml中,改对原创 2010-03-19 16:16:00 · 2382 阅读 · 0 评论 -
ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
1.得到一个表的ddl语句:SET SERVEROUTPUT ONSET LINESIZE 1000SET FEEDBACK OFFset long 999999 ------显示不完整SET PAGESIZE 1000 ----分页 EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSI原创 2009-11-13 16:27:00 · 812 阅读 · 0 评论 -
Oracle 基础
sqlplus /nolog; conn / as sysdba;//链接 startup;//读参数文件 clear scr;清屏 col name format a20;//设置显示格式col value format a20; select name,value from parameter ;//查看参数 或show parameter原创 2009-11-14 13:51:00 · 528 阅读 · 0 评论 -
查看没有主键的表
SELECT table_name FROM User_tables t WHERE NOT EXISTS (SELECT table_name FROM User_constraints c WHERE constraint_type = P AND t.table_name = c.table_name)原创 2009-11-11 21:22:00 · 503 阅读 · 0 评论 -
Oracle监听口令及监听器安全
Oracle的监听器一直存在着一个安全隐患,假如不设置安全措施,那么能够访问的用户就可以远程关闭监听器。 相关示例: D:/>lsnrctl stop eygle LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-11月-2007 10:02:40原创 2009-10-08 21:51:00 · 633 阅读 · 0 评论 -
Oracle11g SQL新功能pivot/unpivot
1. 11g以前的行列转换 领袖又说了:“温故而知新”。那就让我们先看看11g以前是怎么实现地。行列转换一直当作甄别老手和新手的试金石,面试的时候面试官不问这个都不好意思张嘴。Itpub的Oracle开发版更是每隔十天半个月就有人问这个,你说重要不重要。 假设有表emp_phone如下: NAME TYPE P原创 2009-10-08 21:34:00 · 717 阅读 · 0 评论 -
Oracle数据库中利用索引表提高查询速度
在索引表的ROWID中存储的病不是记录的实际物理地址,而是逻辑的物理地址。故有些数据库管理员把索引表中的ROWID列称为ROWID伪主键列,他存放的是表的主键信息。 一、索引表与标准表的差异 索引表与标准表的差异主要体现在四个方面。 一是索引表中的ROWID列存放的时主键信息,使逻辑的物理地址。而在标准表的ROWID伪列中则存储的是真实的物理地址。这是两者之间最本质原创 2009-09-26 21:03:00 · 1407 阅读 · 0 评论 -
在Oracle下开发Java程序的经典问题解答
问题一:如保加载JDBC驱动程序: 正常我们加载驱动程序有三个途径: 1.Class.forName(String)这想当于classLoader一个String指定的类,在装载时把该驱动程序的静态内容都初始化,其实这时驱动程序类调用了DriverManager.registerDriver(driver)方法。 2.使用系统属性:System.getPrope转载 2009-09-23 15:09:00 · 374 阅读 · 0 评论 -
ORACLE Sysdba权限认证管理
1 概述 在ORACLE中有一种特殊级别权限——sysdba权限,sysdba权限拥有ORACLE系统的最高权限,有打开数据库、关闭数据库、恢复数据库等高级权限,我们在工程安装和日常维护中经常涉及到的sys用户就有sysdba权限。sysdba是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在。以sysdba身份登陆,装载数据库、打开数据库。只有数据原创 2009-09-23 00:09:00 · 551 阅读 · 0 评论