oracle学习与实践
iteye_7048
这个作者很懒,什么都没留下…
展开
-
oracle加 行锁
加锁是为了防止一些操作而进行的,比如说共享锁,可以防止别的事务加上排他锁,如果多个事物对同一张表都加上共享锁的话,也就都不能修改了,可以进行读操作。如果只有一个事物加上共享锁,是可以修改的。而排他锁呢,则是不能增加任何共享锁和排他锁,因此,只要获得了排他锁,就可以去进行修改,不会被任何别的事物打搅到。DML 操作的是表里面的数据行;DDL 操作的是表的元数据(表结构);---隐...原创 2012-06-13 13:19:50 · 698 阅读 · 0 评论 -
oracle备份命令 imp exp
[size=medium]oracle备份命令用于oracle备份及恢复,下面就为您详细介绍如何使用oracle备份命令实现oracle备份的过程,希望可以让您对oracle备份命令有更深的认识。导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP ROWS=N //不保存数据; 导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DM...原创 2011-03-28 07:57:30 · 136 阅读 · 0 评论 -
oracle数据库被锁 解决办法 查找原因
在登陆时被告知test用户被锁 1、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 SQL> alter session set nls_date_format=’yyyy-mm-dd hh24:mi:ss’; Session altered. 2、查看具体的被锁时间 SQL> select username,lock_date from db...原创 2011-03-28 01:55:58 · 416 阅读 · 0 评论 -
oracle修改用户名密码
[size=medium]Oracle提供两种验证方式,一种是OS验证,另一种密码文件验证方式,如果是第一种方式用以下方法修改密码: sqlplus /nolog; connect / as sysdba alter user sys identified by ; alter user system identified by ; 如果...原创 2011-03-27 00:45:55 · 225 阅读 · 0 评论 -
SQL语句 单引号 双引号 Oracle10g
今天碰到了一个麻烦的问题,向数据库中插入语句时,String的变量中有单引号,导致插入失败,竟在网上查看得到了解决方案。以下是解决方案:使用如下的更新语句不行:update device set dept='select * from message where name='tom' ' ; 解决方法: update device set dept='selec...2011-03-23 15:14:24 · 129 阅读 · 0 评论 -
truncate,delete,drop的异同点
注意:这里说的delete是指不带where子句的delete语句 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存...原创 2011-03-16 14:55:25 · 77 阅读 · 0 评论 -
关于ORACLE_HOME IS NULL
使用oracle10g的时候遇到,ORACLE_HOME IS NULL的问题,找了好多资料没解决,最后在系统里设置上ORACLE_HOME的环境变量就解决了。ORACLE_HOME IS NULL可能导致的问题:1 监听服务起不来2 SQLPLUS等一系列的工具起不来...原创 2011-03-15 20:47:22 · 298 阅读 · 0 评论 -
for update和for update nowait
锁定表的所有行,排斥其他针对这个表的写操作。确保只有当前事务对指定表进行写操作。for update 和 for update nowait的区别是,别的事务要对这个表进行写操作时,是等待一段时间还是马上就被数据库系统拒绝而返回。...原创 2011-03-13 15:29:26 · 90 阅读 · 0 评论 -
win7下安装和卸载oracle 10g
将oralce 10G的安装镜像解压都硬盘,找到\stage\prereq\db\ 下的refhost.xml文件添加如下内容:<!--Microsoft Windows 7--><OPERATING_SYSTEM><VERSION VALUE="6.1"/></OPERATING_SYSTEM> 再到install目录...原创 2011-02-25 20:02:41 · 86 阅读 · 0 评论 -
解决temp01表不断变大的方法
重启Shutdown immediate;startup;就会释放temp表空间 select * from dba_temp_files; alter database tempfile 'C:\oracle\product\10.2.0\oradata\FMISETL\TEMP01.DBF' autoextend off...原创 2011-02-24 21:32:20 · 370 阅读 · 0 评论 -
Oracle的UNDOTBS01.DBF文件太大的解决办法
UNDOTBS01.DBF这个表空间主要就是为了undo -- 撤销、回滚 -- ,只要有DML操作等,就会产生undo inforOracle的UNDOTBS01.DBF文件太大的解决办法三种解决办法:1.升级到92052.禁止undo tablespace自动增长该数据文件的自动扩展打开(autoexten on)了,关掉了就可以了 sql>alter ...原创 2011-02-24 10:27:00 · 475 阅读 · 0 评论 -
Oracle数据库的几种启动和关闭方式
有以下几种启动方式:1、startup nomount非安装启动,这种方式启动下可执行:重建控制文件、重建数据库读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。2、startup mount dbname安装启动,这种方式启动下可执行:数据库日志归档、数据库介质恢复、使数据文件联机或脱机,重新定位...原创 2011-02-24 10:26:21 · 132 阅读 · 0 评论 -
oracle 定时备份 方法
[size=medium]利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE备份。:1、建立批处理文件backup.batexp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\or...原创 2011-03-28 08:03:58 · 90 阅读 · 0 评论 -
sybase启动时出现 java.lang.NullPointerException
你的系统是Win7,或者Server 2008,太高级了,sybase不支持 修改==>是win7的主题渲染sybase不支持。你把主题改为Win7 Basic就可以了==》还有一种方法,右键->兼容模式->Vista sp2,也可以正常运行 ...原创 2011-04-13 14:15:28 · 274 阅读 · 0 评论 -
Can't open a connection to site 'SYB_BACKUP' 解决办法
把可能遇到的情况总结一下:1、出错该错误可以先检查一下Sybase BCKServer服务有没有启动2、在dsedit看能否ping通备份服务3、检查master库sysservers表的配置,select * from sysservers 如果是backserver不一致,sp_dropserver SYB_BACKUP gosp_addserver SYB_...原创 2012-02-08 10:56:35 · 988 阅读 · 0 评论 -
JAVA 程序中使用ORACLE 绑定变量( bind variable )
1、为什么要使用绑定变量 (1)SQL语 句硬分析(Hard Parse)太多,严重消耗CPU资源,延长了SQL语句总的执行时间 SQL语句的执行过程分几个步骤:语法检查、分析、执行、 返回结果。其中分析分为硬分析(Hard Parse)和软分析(Soft Parse)。一条SQL语句通过语法检查后,Oracle 会先去shared pool 中找是否有...原创 2012-08-17 10:45:26 · 320 阅读 · 0 评论 -
update多列更新
再ETL的时候,经常会遇到列转换的问题,再对照转换中出现多列更新的时候,一下是我总结的一些:当update多列时有如下几种选择1.)教科书式写法update t_table a set f1=(select f1 from testz b where a.id=b.id), f2=(select f2 from testz b where ...2012-04-05 16:06:33 · 1543 阅读 · 0 评论 -
oracle数据库间数据快速 复制
一种利用dblink模式:1 Create public database link xxxx connect to xxxx identified by xxxxusing 'xxxx';--select 'drop table '||trim(xxxx)||';' from dt_tabinfo where dw_sysid = '0005' --2 select ...2012-03-26 15:59:53 · 585 阅读 · 0 评论 -
oracle字符串转换
今天看代码,看到不少代码显示的时候拼接字符串用的是substr之后再||,感觉这样效率比较低。 现在有两种思路: 1 在程序中取出来后在前台处理,这样处理对于服务器的性能有不小的提升。 2 select to_char(to_date(f_time, 'yyyy-mm-dd hh24:mi:ss'), 'hh24miss') from XXXX order by f_...2011-05-04 20:03:10 · 169 阅读 · 0 评论 -
java oracle clob string 大字符串存储
这几天在在往数据库里更新一个大字符串,忙了好几天终于试出来一个好方法,现在拿出来分享下:[code="java"]public class ClobTest { static String url = "jdbc:oracle:thin:@10.12.10.18:1521:orcl"; static String user = "cwbe1_9999"; static String...2011-05-03 20:04:41 · 429 阅读 · 0 评论 -
UNION替换OR效率测试及总结
大家在做SQL优化的过程中,可能都知道一个事实:某些情况下使用UNION替换OR可以提高SQL的运行效率。您知道这个“某些情况”指的是什么么?解释一下,“某些情况”指的是:使用的表字段要有索引。这个实验,给大家展示一下这个结论1.创建测试表sec@ora10g> drop table t;Table dropped.sec@ora10g> cre...原创 2011-11-09 17:11:50 · 782 阅读 · 0 评论 -
update 多表更新
在开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件让开发人员很头痛的事情.本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法.我也试了SQLite数据库,都没成功,不知是不支持多表更新还是咋的. 在本例中: 我们要用表gdqlpj中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当la...原创 2011-11-09 15:35:06 · 103 阅读 · 0 评论 -
ora-00957:duplicate column name
ora-00957:duplicate column name很显然有个行的名字重复了,仔细耐心的查看了下果然。。。两个同名的column。改了名字,ok。编译成功。原创 2011-11-07 16:49:20 · 1875 阅读 · 0 评论 -
Oracle: ORA-01000: 超出打开游标的最大数问题
java.sql.SQLException: ORA-01000: 超出打开游标的最大数ORA-01000: 超出打开游标的最大数ORA-06512: 在"SYS.DBMS_LOB", line 521ORA-06512: 在line 1 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) at...原创 2011-11-02 09:53:21 · 234 阅读 · 0 评论 -
几种常用的数据库分页
1.oracle数据库分页select * from (select a.*,rownum rc from 表名 where rownum=startrow2.DB2数据库分页Select * from (select rownumber() over() as rc,a.* from (select * from 表名 order by 列名) as a) where rc be...原创 2011-11-01 22:33:51 · 356 阅读 · 0 评论 -
sybase备份 不同平台下
[size=medium]当遇到介质故障时(如磁盘老化损坏),仅当你有数据库的定期备份及后继的事务日志备份的情况下才可恢复该数据库。要完全恢复,必须定期使用dump database 命令备份数据库并结合 dump transaction命令备份日志。Dump database命令允许动态执行,即转储/备份数据库期间允许其他用户对该数据库中的数据进行更改,这使得定期备份数据库更加方...原创 2011-04-14 09:44:14 · 82 阅读 · 0 评论 -
oracle数据库备份与恢复
--导入数据imp username/password@sid file=D:\backname.dmp FULL=Y IGNORE=Y log = D:\1.txt --导出数据不带日志 exp username/password@sid file=D:\backname.dmp 带日志 exp username/password@sid file=D:\backna...原创 2011-02-15 15:29:16 · 67 阅读 · 0 评论 -
关于syabse的锁
锁的类型:S锁:共享锁。提供读操作,一般是SELECT操作,在读的时候加锁,不允许进行写操作。直到S锁释放,X锁才能进行修改操作。X锁:排它锁。在DELETE,INSERT,UPDATE操作时使用X锁。U锁:更新锁。U锁是建立在页级上的,当一个更新操作获得,需要修改这些页面时,S锁会升级为U锁。 Sybase封锁原理: 数据共享和数据一致性是一对不可调和的矛盾,...原创 2010-08-07 15:23:18 · 114 阅读 · 0 评论 -
oracle flashback闪回技术
今天在操作数据库的时候,由于登陆的时候没有认真看数据库名,导致登陆上去,把重要的数据删掉了,一共80多个G,欲哭无泪啊。。。接着用语句查了查表空间,及各个表的大小,发现表空间并未减小,而各个表的大小也未减小,只是原来的名字不见了,换成了一些BIN$b+XkkO1RS5K10uKo9BfmuA==$0这样的名称。接着我就去网上查了查,去群里问了问,接着想到了oracle闪回的技术。查找ora...原创 2011-07-21 16:13:13 · 77 阅读 · 0 评论 -
oracle flashback闪回技术
今天在操作数据库的时候,由于登陆的时候没有认真看数据库名,导致登陆上去,把重要的数据删掉了,一共80多个G,欲哭无泪啊。。。接着用语句查了查表空间,及各个表的大小,发现表空间并未减小,而各个表的大小也未减小,只是原来的名字不见了,换成了一些BIN$b+XkkO1RS5K10uKo9BfmuA==$0这样的名称。接着我就去网上查了查,去群里问了问,接着想到了oracle闪回的技术。查找ora...原创 2011-07-21 16:13:12 · 95 阅读 · 0 评论 -
oracle临时表空间
以下是在学习中学到的一些关于临时表空间的语句:--1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图) select tablespace_name,file_name,bytes/1024/1024 "file_size(M)",autoextensible from dba_temp_files; select status,enabled, ...原创 2011-07-20 15:57:58 · 112 阅读 · 0 评论 -
导入导出csv文件(PL/SQL Developer)
[size=large]在运用与数据库有关的操作时,总是会与数据的导入导出打交道。因此,对数据导入导出的熟悉很重要,这会对我们的操作节省很多时间,不必在这方面花费过多的时间。我们知道,PL/SQL Developer 可以导入或者导出CSV文件。下面就来讲解一下这个步骤: 导入CSV文件步骤: 1、选择tools->text importer.... 2、选择第二个Data to or...原创 2011-07-13 19:13:01 · 432 阅读 · 0 评论 -
经典MSSQL语句
下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库CREATE DATAB...原创 2009-09-19 22:29:09 · 128 阅读 · 0 评论 -
SQL查询原理及执行顺序
一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。 3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。 4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。5)选择优化器,不同的优化器一般产生不同的“执行计划” 6)选择连...原创 2011-07-06 16:00:55 · 170 阅读 · 0 评论 -
oracle基本结构
Oracle服务器=Oracle实例+数据库(物理组件)a.用户与数据库的对应关系:一个数据库可以有多个用户,一个用户属于一个数据库b.用户与表空间的关系:表空间是数据库逻辑对象的容器,用户是数据库逻辑对象的拥有者。用户可以创建表空间,也可以为其它用用户分配在表空间的限额;c.实例与数据库的对应关系:一个实例只能对应一个数据库,一个数据库有可能对应多个实例,除非使用并行Orac...原创 2011-06-29 19:59:33 · 73 阅读 · 0 评论 -
解决sql server挂起
解决SQL Server安装挂起 在安装sql server时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。 参考有关资料后,以下步骤基本可以解决: 1)添加/删除程序中彻底删除sql server。 2)将没有删除的sql server目录也删除掉。 3)打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\...2010-03-28 15:21:10 · 106 阅读 · 0 评论 -
Oracle dba和sysdba的区别
[size=large]之前老是把dba和sysdba混为一体,今天看到论坛在讨论两者的区别,特记录如下:SYSDBA不是权限,当用户以SYSDBA身份登陆数据库时,登陆用户都会变成SYS。sysdba身份登陆可以打开,关闭数据库,创建SPFILE,对数据库进行恢复操作等,而这些是DBA角色无法实现的;sysdba 是系统权限,dba是用户对象权限;sysdba,是管理oracle...原创 2011-05-18 16:42:12 · 129 阅读 · 0 评论 -
oracle优化技巧
我觉得主要应该从5个方面进行调整: 1.去掉不必要的大型表的全表扫描 2.缓存小型表的全表扫描 3.检验优化索引的使用 4.检验优化的连接技术 5.尽可能减少执行计划的Cost 现在简单的举几个例子 Where子句中有“!=”将不使用索引 select account_name from test where amount != 0 (不使用) select account_name from ...原创 2010-10-17 13:10:24 · 104 阅读 · 0 评论 -
触发器和游标的一个小例子
1、触发器。 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。(SQL Server 2000定义了新的触发器,这里不提) 我为什么要使用触发器?比如,这么两个表: Create...原创 2010-09-06 09:36:59 · 179 阅读 · 0 评论 -
查看当前数据库全表扫描的SQL
在大数据操作表的时候经常会遇到查询慢的问题,有的时候的确是数据库的问题,但有的时候,是由于写的SQL不当,进行了全表扫描。[code="SQL"]select a.sid,a.serial#,a.username,a.status,a.program,a.machine,c.sql_textfrom v$session a,v$session_wait b,v$sql cwhere a...原创 2011-07-22 16:07:32 · 781 阅读 · 0 评论