oracle
文章平均质量分 55
秋雨飘落
QQ 251807029
展开
-
oracle实现同时多表插入
<br />oracle实现同时多表插入<br /> <br />最简单的,一条SELECT结果向多个表中插入:<br /> <br />insert all<br />into test1(id,name,sex,cj)<br />into test2(id,name,sex,cj)<br />into test3(id,name,sex,cj)<br />select id,name,sex,cj from test ;<br /> <br /> <br />依据条件实现:<br /> <br />in原创 2011-02-25 18:45:00 · 3450 阅读 · 0 评论 -
使用WRAP工具对ORACLE代码进行加密
<br />我们在Oracle存储过程中所包含的商业秘密,有时不愿意被第三方人员看到,可以通过对存储过程加密来实现。<br />有两种加密存储过程的方法:使用wrap工具<br /> <br /> <br />首先创建一个名称为test1.sql的文件:<br />CREATE OR REPLACE FUNCTION get_date_string RETURN VARCHAR2 AS<br />BEGIN<br />RETURN TO_CHAR(SYSDATE, ‘DD-MON-YYYY’);<br />原创 2011-02-23 16:50:00 · 5854 阅读 · 0 评论 -
Oracle中IO
<br />数据库的作用就是实现对数据的管理和查询。任何一个数据库系统,必然存在对数据的大量读或者写或者两中操作都大量存在。IO问题也往往是导致数据库性能问题的重要原因。在这篇文章中,主要帮助大家在理解Oracle的读写操作机制的基础上,灵活解决遇到的各种常见的IO问题。1 Oracle中IO的产生<br />IO当然包括了读、写两部分,先介绍Oracle中写操作的产生。1.1 写<br />介绍写操作之前,先简单的看下Oracle的物理结构:oracle的物理文件包括以下三种文件:控制文件(Control转载 2011-03-15 19:32:00 · 7874 阅读 · 0 评论 -
oracle SQL里常用的时间函数,经典推荐
<br />常用日期型函数 <br />1。Sysdate 当前日期和时间<br />SQL> Select sysdate from dual;<br /> <br />SYSDATE<br />----------<br />21-6月 -05<br /> <br />2。Last_day 本月最后一天 <br />SQL> Select last_day(sysdate) from dual;<br /> <br />LAST_DAY(S<br />----------<br />30-6月 -05<原创 2011-03-23 21:29:00 · 1102 阅读 · 0 评论 -
oracle CLOB字段转换位VARCHAR
<br />1.实际上处理CLOB字段的时候,直接TO_CHAR,当长度超过4000的时候,会报错,提示列被截取;<br /> <br />2.直接使用SUBSTR对CLOB字段进行截取,是不能起到任何作用的;<br /> <br />3.可以使用dbms_lob.substr(clobcolumn,4000),对CLOB字段进行截取;截取的长度是4000还是2000根据存储的是汉字和数据决定长度;原创 2011-03-29 22:13:00 · 73779 阅读 · 6 评论 -
三招让Oracle表列管理更加简单
<br />Oracle数据库是目前为止最复杂的一个数据库之一。也正是这种复杂性,让Oracle数据库能够面对企业各种各样的需求。不过大部分时候,数据库管理员掌握一些技巧,可以让数据库维护工作变得简单。笔者这里就以Oracle数据库中表列的管理为例,谈谈这方面的问题。<br />一、 把列设置为UNUSED状态,代替删除。<br /> 当数据库部署完成之后,即使在数据库使用过程中,数据库管理员仍然可以对数据库的表进行维护,如删除列等等。删除列将删除表中每条记录的相应列的值,同时释放其所占用的存储空间。所以转载 2011-04-01 14:09:00 · 1015 阅读 · 0 评论 -
ORACLE中LIKE语句优化
<br /> <br /> <br /> <br />1。尽量不要使用 like '%%'<br /> 2。对于 like '%' (不以 % 开头),Oracle可以应用 colunm上的index<br />3。对于 like '%…' 的 (不以 % 结尾),可以利用reverse + function index 的形式,变化成 like '%'<br /> <br />建测试表和Index,注意,重点在于带reverse的function index。同时,一定要使用CBO才行<br />原创 2011-04-02 21:38:00 · 1863 阅读 · 1 评论 -
ORACLE rac环境配置
<br />(LOAD_BALANCE = yes)负载均衡 <br /> <br />(FAILOVER = on) 失败自动切换 ----这个参数默认就是ON,所以一般都不加的。<br /> <br />--------------------------------------------------------------------------------<br /> <br />设置本地服务命名相应的参数(LOAD_BALANCE=ON 和FAILOVER=ON 、FAILOVER_MODE参数原创 2011-04-12 22:54:00 · 1391 阅读 · 0 评论 -
MERGER INTO 10g
NERGER INTO 的新用法-----未测试,没环境--10g新特性,merge操作之后,只有匹配的update操作才可以,用delete where子句删除目标表中满足条件的行。 merge into acct a using subs b on (a.msid=b.msid) when MATCHED then update set a.areacode=b.areacode delete where (b.ms_type!=0)原创 2011-04-12 23:05:00 · 1071 阅读 · 0 评论 -
RAC 环境下序列不同步的问题
<br /> 具体的说解决办法有2个: 1.设置cache 的值为空,(通过PLSQL查看显示为0); 2.创建序列的时候,增加order属性,使用cache+order属性 ; oracle为了在rac环境下为了sequence的一致性,使用了三种锁:row cache lock、SQ锁、SV锁。row cache lock的目的是在sequence指定nocache的情况下调用sequence.nextval过程中保证序列的顺序性; cache参数告诉oracle预先分配一个sequence numb原创 2011-04-13 20:40:00 · 4163 阅读 · 0 评论 -
ORACLE 杂记
<br />1. 移动分区表的表空间,<br /> <br /> 这个需要一个一个的分区来进行移动,SQL语法为:<br /> <br /> ALTER TABLE AAAA MOVE PARTITION xxxx TABLESPACE TBS001 <br /> <br />2.关于ORDER BY 使用索引问题<br /> <br /> order by 使用索引是有条件的:<br /> 1)ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.<br />原创 2011-04-14 19:43:00 · 726 阅读 · 0 评论 -
oracle-timestamp类型处理
DATE类型转换为TIMESTAMP<br /> <br />SELECT CAST(sysdate ASTIMESTAMP) from dual;<br /> <br /> VARCHAR类型转换为TIMESTAMP<br /> <br />SELECT CAST(to_date(‘20110419010101’,’yyyy-mm-dd hh24:mi:ss’) ASTIMESTAMP) from dual;<br /> TIMESTAMP类型转换为VARCHAR<br /> <br />select t原创 2011-04-19 22:19:00 · 2082 阅读 · 0 评论 -
两个简单的循环
<br />1.<br /> <br />create or replace procedure pro_test_01 is<br />begin<br /> for aa in (select object_name from test_01)<br /> loop<br /> insert into test_02 values (aa.object_name);<br /> end loop;<br />end;<br /> <br />2.<br /> <br />create or原创 2011-04-20 23:01:00 · 796 阅读 · 0 评论 -
ORACLE动态采样
<br /> <br /> ORACLE动态采样<br />动态采样(Dynamic Sampling)技术的最初提出是在Oracle 9i R2,在段(表,索引,分区)没有分析的情况下,为了使CBO优化器得到足够的信息以保证做出正确的执行计划而发明的一种技术,可以把它看做分析手段的一种补充。当段对象没有统计信息时(即没有做分析),动态采样技术可以通过直接从需要分析的对象上收集数据块(采样)来获得CBO需要的统计信息。<br />The purpose of dynamic sampling is to i原创 2011-04-26 22:13:00 · 2045 阅读 · 0 评论 -
ORACLE中的%ROWTYPE
1.变量赋值 create or replace procedure pro_testis type v_a_count is record( a NUMBER, b varchar2(50));v_a_countInfo v_a_coun原创 2011-07-09 10:51:27 · 2338 阅读 · 0 评论 -
oracle的%type简介
%TYPE属性 在PL/SQL中可以将变量和常量声明为内建或用户定义的数据类型,以引用一个列名,同时继承他的数据类型和大小。这种动态赋值方法是非常有用的,比如变量引用的列的数据类型和大小改变了,如果使用了%TYPE,那么用户就不必修改代码,否则就必须修改代码原创 2011-07-09 10:31:33 · 1814 阅读 · 0 评论 -
ORA - 01731:出现循环的视图定义
ORA - 01731:出现循环的视图定义 建立视图的语句如下:CREATE OR REPLACE VIEW AGREEMENT ASSELECT agreement.agreement_id, agreement.agent_id, agreement.agreement_原创 2011-07-18 22:33:31 · 9232 阅读 · 0 评论 -
ORA-12547: TNS:lost contact
今天做ETL,连接源库出现错误,ORA-12547: TNS:lost contact ,网上找了一下原因,有很多种方法,不知道哪个是准确的,生产库同时又是其它厂商的,不能动, 有谁处理过类似的情况吗,使用PLSQL登陆,就是报这个错误 ORA-12547: TNS:lost原创 2011-07-18 22:08:14 · 28712 阅读 · 0 评论 -
windows服务器下杀死ORACLE进程
一个用户进程偶尔会挂起或占用过多资源而拒绝其它会话。如果 DBA 依然能够访问数据库,她通常可以发出以下查询: select s.username, s.osuser, s.sid, s.serial#, p.spid from v$session s,v$process p where s.paddr = p.addr and s.username is not null; 这个查询将返回数据库用户名、操作系统用户名、会话 ID,序列号和系统进程 ID(SPID)。然后,DBA 用户就可以发出以下原创 2011-02-20 23:00:00 · 6385 阅读 · 0 评论 -
行链接(Row chaining) 与行迁移(Row Migration)
<br /><br />行链接(Row chaining) 与行迁移(Row Migration) 摘自itpub<br />当一行的数据过长而不能插入一个单个数据块中时,可能发生两种事情:行链接(row chaining)或行迁移(row migration)。<br /><br /> 行链接<br />当第一次插入行时,由于行太长而不能容纳在一个数据块中时,就会发生行链接。在这种情况下,oracle会使用与该块链接的一块或多块数据块来容纳该行的数据。行连接经常在插入比较大的行时才会发生,如包含long原创 2011-03-10 22:13:00 · 1016 阅读 · 0 评论 -
oracle 11g 新特性---只读表
<br />根据实际业务需要,对某些重要的表设置为只读属性,<br />历史的方法,可以通过触发器等来实现<br />在 Oracle 数据库 11g 中,您可以通过一个更好的方法来实现这个目标。您只需将表设为只读,如下所示:SQL> alter table test_03 read only;<br /><br />Table altered.<br /><br />现在,当用户尝试执行如下所示的 DML 时: SQL> delete test_03;<br /><br />Oracle 数据库 11g转载 2011-02-03 00:58:00 · 1086 阅读 · 0 评论 -
sqlldr的用法总结
SQL*LOADER介绍 SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件(数据)迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。 可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。缺点就速度比较慢,另外对blob等类型的数据就有点麻烦了。SQL*LOADER用法示例 a.创建测试文件re转载 2011-02-05 22:47:00 · 1925 阅读 · 0 评论 -
ORA-01034: ORA-27101: ORA-28056 问题解决办法
<br /> <br />问题描述:<br /> <br /> 由于笔记本经常不关机,直接盖上,造成今天登录数据库报错,具体报错如下:<br /> 1。使用PLSQL登录,报错:ora-12514的错误,TNS无法识别服务名<br /> 2。在命令行下登录,报错,如下:<br />请输入用户名: sys<br />输入口令:<br />ERROR:<br />ORA-01034: ORACLE not available<br />ORA-27101原创 2011-02-06 21:40:00 · 10813 阅读 · 2 评论 -
oracle11g-----AWR报告介绍
<br />自动工作负载信息库 (AWR:Automatic Workload Repository)。Oracle 建议用户用这个取代 Statspack。AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。与 Statspack 不同,快照由一个称为 MMON 的新的后台进程及其从进程自动地每小时采集一次。为了节省空间,采集的数据在 7 天后自动清除。快照频率和保留时间都可以由用户修改。它产生两种类型的输出:文本格式(类似于 St原创 2011-02-07 20:55:00 · 5532 阅读 · 0 评论 -
oracle 裸设备
<br />1.什么叫做裸设备? <br /> 裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的非凡字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。 <br /><br /> 2.如何辨别裸设备? <br /> 在Unix的/dev 目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。 <br /> 字符设备非凡文件进行I/O操作不经过操作系统的缓冲区,而块设备非凡文件用来同外设进行定长的包传输。字符非凡文件与外设进行I/o操作时每次原创 2011-02-26 15:38:00 · 1245 阅读 · 0 评论 -
ORACLE foreign key
<br />很少用到foreign key ,网上找的资料研究下:<br /> <br />foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,能够让表与表之间的数据,更加的完整,关连性更强。<br /> <br />二,外键维护数据完整性的5种方式<br /> 1,CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行。ON DELETE CASCADE和ON UPDATE CASCADE都可用。在两个表之间,你不应定义若干在父表或子表中的同一列采取动作的ON UP原创 2011-03-01 15:17:00 · 6007 阅读 · 0 评论 -
整理的ORACLE DBA 题目
<br />1.简单描述table / segment / extent / block之间的关系<br /> <br /> table创建时,默认创建了一个 data segment<br /> 每个data segment 含有 min extents 指定的extents数<br /> 每个extents根据表空间的存储参数分配一定数量的blocks<br /><br />2.描述tablespace 和 datafile之间的关系<br /><br /> 一个tablespace 可以有原创 2011-03-01 18:38:00 · 797 阅读 · 0 评论 -
ORACLE BUFFERCACHE及清除
<br />1. buffer cache的概念<br /> <br /> 数据高速缓存区(db buffer cache),通常就叫做buffer cache。按照oracle官方的说法,buffer cache就是一块含有许多数据块的内存区域,而这些数据块主要都是数据文件里的数据块内容的拷贝。通过初始化参数:buffer_cache_size来指定buffer cache的大小。oracle实例一旦启动,该区域大小就被分配好了。 <br /> 用最简原创 2011-03-01 23:19:00 · 4456 阅读 · 0 评论 -
dbms_stats
<br /> <br /> <br />exec dbms_stats.gather_schema_stats(ownname=>'JINDU',estimate_percent=>dbms_stats.auto_sample_size,method_opt=>'for all columns size auto'); <br />作用:更新统计数据<br />原因:需要更新统计数据的可能原因:<br />1)源表结构变化;<br />2)源表数据变化量大;<br />并且一段时间内该表的映射没有运行过的时原创 2011-02-14 15:33:00 · 1236 阅读 · 0 评论 -
[转载]Oracle数据库游标使用方法(转)
<br />[转载]Oracle数据库游标使用方法(转)(2010-06-08 21:36:17)转载原文标签:转载分类:数据库原文地址:Oracle数据库游标使用方法(转)作者:点点 游标有两种类型:显式游标和隐式游标。游标一旦打开,数据就从数据库中传送到游标变量中,然后应用程序再从游标变量中分解出需要的数据,并进行处理。本文中将对游标的使用进行一下讲解,希望可以和大家共同学习进步。<br /><br />SQL是用于访问Oracle数据库的语言,PL/SQL扩展和加强了SQL的功能,它同时引入了更强的程转载 2011-02-17 14:50:00 · 1154 阅读 · 0 评论 -
oracle 根据汉字返回拼音函数
参见戴明明的博客,oracle 根据汉字返回拼音函数,由于他的博客里没有提供完整的代码,研究了一个多小时,才弄出来;上来贴代码吧。。 --------------Type Definition CREATE OR REPLACE TYPE spell_code AS OBJECT( spell varchar2(10), code Varchar2(10));-------------Create Table Type CREATE OR REPLACE TYPE t_spellcode AS TABL原创 2011-02-19 21:06:00 · 2351 阅读 · 3 评论 -
ORACLE 11G EM 配置命令及问题处理
11g装好以后,一直未用EM,昨天晚上和今天晚上终于抽时间把EM启动起来了,还遇到一点小问题,1.EM配置的一些命令 创建一个EM资料库emca -repos create重建一个EM资料库emca -repos recreate删除一个EM资料库emca -repos drop配置数据库的 Database Controlemca -config dbcontrol db删除数据库的 Database Control配置emca -deconfig dbcontrol db重新配置db control原创 2011-02-16 23:58:00 · 17495 阅读 · 0 评论 -
数据库基础环境查看
<br />select * from v$version;<br />select * from dba_registry_database;<br />select instance_name,host_name,version,status,database_status from v$instance;<br />select dbms_utility.port_string from dual;<br />-----------查看数据版本<br />select * from dba_regi原创 2011-02-18 14:36:00 · 984 阅读 · 0 评论 -
Oracle 11g 日志alter文件位置
11g以前oracle的alter文件是在bdump目录下呢。oracle 11g一改常态以XML与传统的文本两种格式提供 Alert 日志。oracle 11g新的日志的位置由Automatic Diagnostic Respository(ADR)决定。可以通过新的初始化参数DIAGNOSTIC_DEST控制ADR BASE的位置。显示DIAGNOSTIC_DEST的位置show parameter DIAGNOSTIC_DEST;查询两种日志的位置原创 2011-02-20 23:15:00 · 7040 阅读 · 0 评论 -
ORACLE自动启动方法
<br /> <br /> 前段时间整理的linux下ORACLE自动启动的方法,今天回顾一下:<br /> <br />1. Root用户登录,vi /etc/oratab <br /> orcl:/u01/app/oracle/product/10.2.0/db_1:N 改为orcl:/u01/app/oracle/product/10.2.0/db_1:Y <br />-------------------------------------------------原创 2011-02-19 10:24:00 · 757 阅读 · 0 评论 -
Oracle 10046事件
<br />如果你对oracle性能调优很感兴趣或者比较专长,那么你对oracle的10046事件一定不会陌生。10046event是oracle用于系统性能分析时的一个最重要的事件。当激活这个事件后,将通知oracle kernel追踪会话的相关即时信息,并写入到相应trace文件中。这些有用的信息主要包括sql是如何进行解析,绑定变量的使用情况等。<br />10046event 可分成不同的级别(level),分别追踪记录不同程度的有用信息。对于这些不同的级别,应当注意的是向下兼容的,即高一级的tra原创 2011-03-09 18:47:00 · 1773 阅读 · 0 评论 -
ORACLE 随机数相关问题
<br />1. 随机数包 <br />SELECT DBMS_RANDOM.VALUE <br /> FROM DUAL; <br /><br />2. 在[0..100]范围内取随机数 <br />SELECT TRUNC (DBMS_RANDOM.VALUE (0, 100)) <br /> FROM DUAL; <br /><br />3. 大于字符‘A’的10个字符随机字符串 <br />SELECT DBMS_RANDOM.STRING (’A’, 10) <br /> F原创 2011-03-08 23:45:00 · 951 阅读 · 0 评论 -
ORA 00600 [ktrexc_1]
今天使用MERGER在更新数据的时候,报错提示ORA600的错误,网上找到了一个解决办法,ORA的BUG http://sns.linuxpk.com/blog-52196-16983.html 昨天数据库在做MERGE的时候出现了一个600的错误,从网上找了很长原创 2011-10-12 19:35:53 · 2519 阅读 · 0 评论