
Oracle
皓月如我
这个作者很懒,什么都没留下…
展开
-
【数据库】数据库单表对比
需求:对比网络隔离的两个数据库DB1和DB2中,同名表的数据差异。以表tab为例,对比其中col列的区别。步骤1:在DB1中按照表tab的结构创建表tab1;步骤2:将DB1中tab的数据复制到tab1上:insert into tab1 select * from tab;步骤3:在DB2中按照表tab的结构创建表tab2;步骤4:将DB2中tab的数据复制到tab2上:inser...原创 2019-04-13 11:48:08 · 1724 阅读 · 0 评论 -
Oracle中启动和关闭的各种方式
shutdown 命令 SHUTDOWN有四个参数:NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。缺省不带任何参数时表示是NORMAL。 SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。 SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。 SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等原创 2010-11-12 16:49:00 · 1085 阅读 · 0 评论 -
平时少用到的sql query
<br /><br />查找第三个字符是'i'的结果:<br />select col_1 from tab_1 where col_1 like '__i%';<br /> <br />查找在1到7之间的结果:<br />select col_1 from tab_1 where col_1 between 1 and 7;<br /> <br />在where中使用select语句:<br />select col_1 from tab_1 where col_2 = (select count(*)原创 2010-11-12 11:11:00 · 767 阅读 · 0 评论 -
case语句在select中的用法,以及,insert和select和case合用的例子
SQL> select tag_name,tp_name,value from ins_dynamic;TAG_NAME TP_NAME VALUE---------------- --------------- --------------a NoString 1b NoString 2SQL> select (case when value='1' then 'value=1' when原创 2011-02-25 14:17:00 · 6456 阅读 · 0 评论 -
oracle触发器高级教程
【转自】http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7004.htm#i2153503CREATE TRIGGERPurposeUse the CREATE TRIGGER statement to create and enable a database trigger, which is:A stored PL/SQL block associated with a table, a schema,转载 2011-02-25 16:40:00 · 4787 阅读 · 0 评论 -
ORACLE中对LONG类型进行处理的方法
<br />1.在block中处理:<br /> <br />不过PL/SQL代码只能处理不超过32K的数据,超过这个限制,就无法通过PL/SQL来处理。<br />SQL> SET SERVEROUT ON<br />SQL> BEGIN<br />2 FOR I IN (SELECT * FROM T_LONG) LOOP<br />3 IF INSTR(I.LONG_COL, 'WORLD') > 0 THEN<br />4 DBMS_OUTPUT.PUT_LINE(I.ID);<br />5 END转载 2011-02-25 16:55:00 · 2647 阅读 · 0 评论 -
ORACLE审计初步入门
<br />【转自】http://space.itpub.net/9240380/viewspace-6140291,术语简解<br />dbms_fga包是oracle本身自具功能强大的pl/sql包,实现表级各种select,insert ,delete,update操作的日志记录<br /> <br />dbms_fga包适用于oracle cbo优化器模型.(注:从oracle 9i后,oracle默认就是采用cbo优化器模型,rbo模型基本已经f废弃)<br /> <br />Dbms_fga包含转载 2011-03-04 17:24:00 · 1121 阅读 · 0 评论 -
oracle专用服务器模式与共享服务器模式
<br />【转自:http://bbs.51testing.com/thread-173827-1-4.html】<br /> 一、共享服务器模式。<br /> 共享服务器模式,也叫做多线程服务器模式。在这种模式下,Oracle数据库允许多个用户进程共享非常少的服务器进程。所以,可以同时实现用户并发访问的人数也就大大的增加。如果使用专用服务器模式,则每个用户连接数据库时,每个用户进程需要他自己的专用服务器进程。也就是说,客户端进程与服务器端进程是一一对应的。<br /> 而如果采用共享服务器模式的转载 2011-02-14 10:53:00 · 982 阅读 · 0 评论 -
Oracle执行SQL语句的过程
<br /><br />【转自:http://blog.youkuaiyun.com/wzy0623/archive/2009/09/27/4599615.aspx】<br />当我们提交一条sql语句时,oracle会做哪些操作呢? <br />Oracle会为每个用户进程分配一个服务器进程:service process(实际情况应该区分专用服务器和共享服务器),当service process接收到用户进程提交的sql语句时,服务器进程会对sql语句进行语法和词法分析。 <br />名词解释: <br />语法分转载 2011-02-14 11:12:00 · 1074 阅读 · 0 评论 -
使用 Oracle GoldenGate 进行实时数据集成
【转自】http://blog.chinaunix.net/u1/53677/showart_2314585.html使用 Oracle GoldenGate 进行实时数据集成<br />了解如何安装、设置和配置 Oracle GoldenGate 以轻松实现 Oracle Database 10g 和 11g 之间数据的无缝复制。 <br />作者:Porus Homi Havewala<br />2010 年 4 月发布<br />Oracle GoldenGate 用于在各种企业系统间以亚秒级速度复制转载 2010-10-28 14:24:00 · 8466 阅读 · 3 评论 -
缩小数据文件尺寸报ORA-03297的处理办法
<br />【转自】http://space.itpub.net/48361/viewspace-253106<br /> <br />最近历史数据库磁盘空间不足,而有一个表空间有50个G容量,但是实际只占100m的空间,<br />使用ALTER TABLE table SHRINK SPACE CASCAD后大部分数据文件可以调整,当试图调整其中一个数据文件尺寸的时候报<br />RA-03297: file contains used data beyond requested RESIZE valu转载 2010-10-27 16:10:00 · 8632 阅读 · 0 评论 -
对比SQL Server和Oracle的关键参数
<br />既然原作者明确指出不能转载,那我只好放出链接了……<br />http://www.searchdatabase.com.cn/showcontent_36515.htm?lg=t转载 2010-06-25 18:43:00 · 913 阅读 · 0 评论 -
ORACLE导入导出后发生中文乱码的原因及解决办法
[oracle@kf15-1]:/users/oracle>$ exp iscs/naritech@192.1.101.215/i1000 tables=alarm_backup file=alarm_backup_unix.dmp satistics=none buffer=1000000Export: Release 10.2.0.4.0 - Production on 星期四 8月 26 16:37:08 2010Copyright (c) 1982, 2007, Oracle. All right原创 2010-08-26 17:34:00 · 21353 阅读 · 0 评论 -
“无法删除正在连接的用户”解决办法
sqlplus sys/platform as sysdba<br />SQL> select username, sid, serial# from v$session where username='ISCS';<br />USERNAME SID SERIAL#<br />------------------------------ ---------- ----------<br />ISCS 154 41<br /><br /原创 2010-09-01 17:35:00 · 2114 阅读 · 0 评论 -
查看数据库中的错误
<br />select * from dba_errors;原创 2010-08-31 19:32:00 · 929 阅读 · 0 评论 -
Linux下完全卸载ORACLE 10G的方法
<br />【转自】http://www.linuxidc.com/Linux/2007-07/5977.htm<br />1. 运行 $ORACLE_HOME/bin/localconfig delete<br />2. rm -rf $ORACLE_BASE/*<br />3. rm -f /etc/oraInst.loc /etc/oratab<br />4. rm -rf /etc/oracle<br />5. rm -f /etc/inittab.cssd<br />6. rm -f /usr/l转载 2010-09-14 20:10:00 · 1218 阅读 · 0 评论 -
Oracle存储过程中执行DDL操作
<br />Create Or Replace Procedure My_Proc As<br />Sqlddl Varchar2(1000);<br />Begin<br />Sqlddl := 'create table MyTable(ID Number(5), Name Varchar2(20))';<br />Dbms_Output.Put_Line(Sqlddl);<br />Execute Immediate Sqlddl;<br />End;转载 2010-11-28 14:49:00 · 4353 阅读 · 0 评论 -
ORACLE获取文件大小
<br />set serveroutput on<br /><br />DECLARE<br /> ex BOOLEAN;<br /> flen NUMBER;<br /> bsize NUMBER; <br />BEGIN<br /> utl_file.fgetattr('ORALOAD', 'test.txt', ex, flen, bsize);<br /><br /> IF ex THEN<br /> dbms_output.put_line('File Exists');<br转载 2010-12-09 18:42:00 · 1189 阅读 · 0 评论 -
ORACLE网络连接配置与文件:listener.ora、sqlnet.ora、tnsnames.ora
<br />【转自】http://www.chinaunix.net/jh/19/594396.html<br /> <br />最近看到好多人说到tns或者数据库不能登录等问题,就索性总结了下面的东东。 <br />首先来说oracle的网络结构,往复杂处说能加上加密、LDAP等等。。这里不做讨论,重点放在基本的网络结构也就是我们最常用的这种情况 <br /><br />三个配置文件 <br />listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME转载 2010-10-25 14:40:00 · 1344 阅读 · 0 评论 -
PL/SQL中的数据类型隐式转换规则
【转自】http://blogold.chinaunix.net/u4/120270/showart_2383431.html 1) During INSERT and UPDATE operations, Oracle converts the value to the datatype of the affected column.<br />对于INSERT和UPDATE操作,oracle会把插入值或者更新值隐式转换为字段的数据类型。如<br />假如id列的数据类型为number<br />upda转载 2011-03-07 16:22:00 · 2456 阅读 · 0 评论 -
在dbca建库的时候报ORA-27125错误的解决方法
<br /><br />ORA-27125:unable to create shared memory segment<br />1.确定安装oracle所使用的用户组<br />在oracle用户下执行命令id<br />可以看到oracle组dba id 107<br />2.修改内核参数 <br />echo "107" >/proc/sys/vm/hugetlb_shm_group<br />就可以了,搞了一下午,连metalink都查过了,最后还是在这里终于找搞了这个方法可行<br />htt原创 2011-05-11 20:09:00 · 3429 阅读 · 0 评论 -
Oracle管理拾遗(长期更新)
1. 查看某用户的SQL执行历史:select * from v$sqlarea t where PARSING_SCHEMA_NAME in ('USER_MUST_UPPER_CASE') and LAST_ACTIVE_TIME > to_date('2016-01-08 16:15:00','yyyy-mm-dd hh24:mi:ss') order by LAST_ACTIVE_T原创 2016-01-08 16:42:20 · 525 阅读 · 0 评论 -
分段查询
相比Oracle,PostgreSQL中分段查询的区别在以下几点:1. 没有rownum项,而是用ROW_NUMBER() OVER()表示;2. 子查询必须加别名,例如“as aa”,否则语法检查不通过;另外分段查询的一个注意事项:rownum只能做“”、“>=”、“between”的时候,起始值只能是0或1。因为rownum仅对查询结果排序生效,当写出“>1”时,第一条记录原创 2016-03-31 14:13:24 · 1267 阅读 · 0 评论 -
Select SQL查询效率优化原则
1.尽量避免where中包含子查询; 2.where条件中,过滤量最大的条件放在where子句最后; 3.采用绑定变量有助于提高效率; 4.在索引列上使用计算、改变索引列的类型、在索引列上使用!=将放弃索引; 5.运算符效率:exists高于in高于or,(not exists高于not in); (这里指出:in和or都是效率较低的运算,但是in的效率:O(logn)仍然比or的效率:O原创 2016-08-18 15:39:45 · 8254 阅读 · 3 评论 -
select max(id)优化
没什么说的,添加索引(可以是唯一索引,也可以是普通索引),可以提高成千上万倍。原创 2016-08-18 15:42:25 · 7468 阅读 · 0 评论 -
Transaction中的SQL死锁
试考察以下SQL语句:declare a_var integer; begin select col_a into a_var from tab_a where id = 1; update tab_a set col_b where id = 1; end;第一句select执行时需要一个“Shared Lock”共享锁,而共享锁是允许过得session同时进入的。 第二句原创 2016-08-18 16:30:09 · 1929 阅读 · 4 评论 -
Insert SQL Query插入效率优化
主要针对PostgreSQL,其中部分原则也可以其他数据库: 1. 使用Transaction,减少提交次数。(副作用是难以获取执行进度) 2. (仅)PG中可以使用独有的copy方法。 3. 使用unlogged table。(副作用是降低数据库安全性) 4. (仅)PG中使用插入组,即insert into table_a(col_a, col_b) values(val_a1, val原创 2016-08-18 16:44:04 · 1395 阅读 · 0 评论 -
选择主键:自然键还是代理键?
【转自】http://blog.youkuaiyun.com/haiross/article/details/21388997 【原文地址】http://www.agiledata.org/essays/keys.html本文概述关系数据库中为表指定主键的策略。主要关注于何时使用自然键或者代理键的问题。有些人会告诉你应该总是使用自然键,而另外一些人会告诉你应该总是使用代理键。这些人总是被证明是错误的,通常他们转载 2017-05-22 15:50:35 · 3496 阅读 · 0 评论 -
SQL语句遍历树结构的数据表
[转自]:肆尾葱的博客《SQL语句遍历树结构的数据表》一、创建树结构的数据库表-- 数据库为 SQL Servercreate table treeTest( id int, parentId int, info varchar(10))-- 插入数据insert into treeTest(id,parentId,info) values(1,nul...转载 2018-08-01 19:34:03 · 3991 阅读 · 1 评论 -
数据泵用法详解
转自:http://www.qqread.com/oracle/2008/07/u421371.html EXPDP和IMPDP使用说明EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库 元数据(对象定义)和数据快速移动到另一个oracle数据库 中.转载 2009-12-17 09:32:00 · 1355 阅读 · 1 评论 -
分区表创建与截断
创建:CREATE TABLE EVENT_TABLE( NAME VARCHAR2(100 BYTE) NOT NULL, OCCUR_TIME DATE NOT NULL, MSECOND NUMBER(10) NOT原创 2015-12-29 11:50:21 · 1237 阅读 · 0 评论 -
SELECT ANY DICTIONARY
<br />在客户端使用OEM就不能连接了,但是使用sqlplus可以连接。报错是:您必须具有SELECT ANY DICTIONARY权限才能运行此应用程序,请要求DBA为您授予此权限。<br /><br />我使用的是LIX用户,发现此问题后又登陆SQLPLUS授权:<br />SQL> grant select any dictionary to lix with admin option;<br /> Grant succeeded<br /> <br />试验成功!原创 2011-05-12 20:32:00 · 6280 阅读 · 0 评论 -
PL/SQL加密
<br />例如我有一个pl/sql文件:test.sql<br /> <br />现在OS的终端下执行:wrap iname=test.sql<br /> <br /><br />[oracle@hostname]:/users/oracle>$ wrap iname=test.sql<br /> <br />PL/SQL Wrapper: Release 10.2.0.4.0- Production on 星期一 3月 28 10:08:04 2011<br /> <br />Copyright (c原创 2011-03-28 10:31:00 · 1582 阅读 · 0 评论 -
【IMPDP】当导入数据时遭遇表已存时的应对手段——TABLE_EXISTS_ACTION参数
[转自:http://space.itpub.net/519536/viewspace-631445]当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:a.忽略(SKIP,默认行为);b.在原有数据基础上继续增加(APPEND);c.先DROP表,然后创建表,最后完成数据插入(REPLACE);d.先TRUNCATE,再完成数据插入(T转载 2012-03-07 15:20:18 · 21158 阅读 · 0 评论 -
分区表导入导出[未完]
[EXP/IMP]导出分区:exp iscs/naritech_zhjkb tables=di_change_event:P4,di_change_event:P5 file=d:/partition_p4.dmp log=d:/partition_p4.log使用imp工具生成创建分区表的DDL语句:imp iscs/naritech_zhjkb tables=di_change原创 2012-03-07 16:16:56 · 1111 阅读 · 0 评论 -
Oracle中日期Date类型格式的转化
转成long型:select (FIRSTARRIVALTIME - to_date('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')) *24*60*60 from ats_plat_time_info;select (sysdate - to_date('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:原创 2012-03-21 15:07:35 · 2197 阅读 · 0 评论 -
index on view
It is not possible in a view but Index can be created on Materialized View.You should understand that view is nothing but a mask on a table with certain restriction, which will have pointers to th原创 2012-11-30 17:06:44 · 840 阅读 · 0 评论 -
有待试用,查看是谁锁住了我的数据库
1. 查看使用中的Session select sid||','||serial# from v$session 2. 查看Lock Session select * from DBA_DML_LOCKS 3. 查看Lock Session ID select a.sid||','||a.serial#,a.machine from v$session a,DBA_D原创 2012-12-10 15:07:47 · 684 阅读 · 0 评论 -
对象统计信息锁定的解决办法(ORA-20005/ORA-38029)
转自:http://blog.itpub.net/29867/viewspace-730902/解决办法很明确,就是解锁。 可以从两个层面去处理: A、解锁Schema DBMS_STATS.UNLOCK_schema_STATS(user);B、解锁单个对象 1)先查出被锁定的表select table_name from user_tab_statistics where stattyp转载 2015-11-19 15:15:05 · 4898 阅读 · 0 评论 -
数据库中视图的作用
转自:http://database.e800.com.cn/articles/2009/719/1248015564465_1.html 视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透转载 2010-05-26 17:10:00 · 34667 阅读 · 1 评论