Oracle

文章列表
一、引言  从来没有想过,删除表中的数据都会成为问题。但是,当表中的数据量非常大时,删除数据会成为一个不小的问题。  这里简单介绍一下我本人遇到的一个小问题及解决过程,仅讨论过程,不涉及SQL、存储过程� ...
  供初学者入门学习使用,以开发者常见、常用的知识为主,基本上以开发者对数据库的使用过程为主线编写相关内容,包括监听与连接、用户管理与权限、建表、增删改查、统计、函数、序列、视图、索引、闪回、备份与恢复等,无过于深奥的知识、未过于深究技术的细节。一、连接数据库1.  监听监听运行于服务器端,响应客户端(如 sqlplus、TOAD、PLSql 等)的连接请求。检查监听状态,使用如下命令:lsnrctl status关闭/启动监听命令:lsnrctl stop/start2.  本地服务名配制本地服务名,对应于数据库服务器的一套参数,包括 IP、端口、数据库名称等。使得本地的客户端 ...
create or replace type string_table is table of varchar2(2000);create or replace function splitter(p_string in varchar2,p_delimiter in varchar2) return string_table pipelinedas --功能:用于拆分字符串 --用法:select * from table(splitter('wallimn,http://wallimn.iteye.com',',')); v_length number : ...
  故障现象:  服务器本机使用sqlplus / as sysdba可以登录,数据库可以正常使用;但使用sqlplus sys/密码@orcl无法登录,长时间无响应,不显示成功,也不显示失败,卡住不动,各种WEB应用、TOAD/sqldeveloper等工具都无法连接。  使用lsnrctl status查看监听状态,也是长时间不响应。  使用Windows的服务管理功能,启动、关闭监听,都能顺利完成,很有迷惑性。  注:Windows平台、Oracle92  解决过程:  明显属于监听的问题,在服务管理里重启监听,故障依旧。看一下Oracle的告警日志,没有发现问题,再看一下监听 ...
转自:http://yanguz123.iteye.com/blog/1542369  PGA(Program Global Area 程序全局区)是一块包含一个服务进程的数据和控制信息的内存区域。它是 Oracle 在一个服务进程启动是创建的,是非共享的。一个 Oracle 进程拥有一个 PGA 内存区。一个 PGA 也只能被拥有它的那个服务进程所访问,只有这个进程中的 Oracle 代码才能读写它。因此, PGA 中的结构是不需要 Latch 保护的。  我们可以设置所有服务进程的 PGA 内存总数受到实例分配的总体 PGA ( Aggregated PGA )限制。  在专有服务器( ...
  Oracle12C,发生了较大的变化。以前熟悉的东西变得陌生了。把百度了好久的东西记下来,免得忘了。1.使用sqlplus连接Oracle,创建用户并授权--启动sqlplus,使用sysdba连接sqlplus / as sysdbaalter session set container=pdborcl;--切换会话到pdborcl,我的PDB名称--剩下的步骤与11g等版本相同create user test identified by test default tablespace users;grant connect,resource to test;2.为可插拔数 ...
1.创建数据表CREATE TABLE T_USER(  ID             VARCHAR2(32) primary key,  NAME           VARCHAR2(100),  REGISTER_DATE  DATE,  REAL_NAME      VARCHAR2(32));2.准备数据文件数据文件可以是单独的,也可以与控制文件合二为一。具 ...
  每次安装都要百度,转到自己的博客上,找起来方便,还能增加访问量,一举两得。第一点是修改在这个refhost.xml文件,在目录 10201_database_win32\database\stage\prereq\db\refhost.xml下,增加下面的文字。<OPERATING_SYSTEM><VERSION VALUE="6.1"/></OPERATING_SYSTEM>第二点是修改oraparam.ini文件到install目录中找到oraparam.ini文件,注意增加红色的文字[Certified Versio ...
下载JDBC包,解压缩这里只要mysql-connector-java-*.jar文件,将其放到sqldeveloper目录下的jlib目录下即可。然后启动Oracle SQL Developer,点击菜单栏工具->首选项按钮,展开数据库-->点开第三方JDBC,然后点击添加条目按钮,找到刚刚加入到jlib的jar文件,选择添加即可。成功后会出现如下图的mysql选项卡。在连接前,一定要让Mysql授权用户远程访问,如下sql>GRANT ALL PRIVILEGES ON *.* TO wallimn@127.0.0.1 IDENTIFIED BY '123456' W ...
备份/恢复策略1. 要定期做 mysql备份,并考虑系统可以承受的恢复时间。2. 确保 mysql 打开log-bin,有了 binarylog,mysql才可以在必要的时候做完整恢复,或基于时间点的恢复,或基于位置的恢复。3. 要经常做备份恢复测试,确保备份是有效的,并且是可以恢复的。冷备份备份:1. 停掉 mysql服务,在操作系统级别备份 mysql的数据文件。2. 重启 mysql服务,备份重启以后生成的 binlog。恢复:1. 停掉 mysql服务,在操作系统级别恢复 mysql的数据文件。2. 重启 mysql服务,使用 mysqlbinlog恢复自备份以来的 ...
引自:http://www.cnblogs.com/highriver/archive/2011/08/02/2125043.html引言  这篇文章不错,最后的方法解决了我的一个问题。原来使用H2数据库,使用Merge into,能自动实现更新或插入,到了Oracle的merge into,用起来不一样,同样的语句,在两个库中不是解决一个问题的。   Oracle中该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSERT 关键词,ORACLE 10g 做了如下改动。1,insert 和update是可 ...
1:64位win 7操作系统控制面板中“ODBC数据源”可执行程序(控制面板64位,SysWOW64下的是32位的,64位的兼容版本) 查看32位ODBC驱动:启动 C:/Windows/SysWOW64/odbcad32.exe 查看64位ODBC驱动,启动 C:/WINDOWS/system32/odbcad32.exe 或者去控制面板2:ORACLE ODBC驱动程序  系统安装ORACLE 64位服务端32位客户端(PLSQL兼容关系),ODBC驱动程序是依赖于客户端即SQORA32.DLL (位于客户端下)是32位的。结论草案1:64位ODBC + 64位驱动:2: 3 ...
--建立连接--进入cdbsqlplus /nologconn sys/sys as dba--//sqlplus sys/sys@localhost:1521/orcl as sysdba--进入pdb(pdb可以通过alter session set container=nameOfPdb进入,也可以直接通过tns方式(如下)登录)sqlplus sys/sys@localhost:1521/pdborcl as sysdba ...
  今天装备安装Oracle12C体验一下,结果遇到问题:请确保当前用户具有访问临时位置所需的权限,无法继续安装,上网查了一下,解决方案如下:第一步:  控制面板>所有控制面板项>管理工具>服务>SERVER 启动第二步:  控制面板>所有控制面板项>管理工具>计算机管理>系统工具>共享文件夹>共享  右键单击“共享”>新建共享>  点击“下一步”>  单击“浏览”>  选择"本地磁盘(C:)">确定  “共享名”输入 "C$" >" ...
朋友的数据库服务器出现ORA-00600[kcratr_nab_less_than_odr],不能open数据库1.open数据库报ORA-00600[kcratr_nab_less_than_odr]SQL> ALTER DATABASE OPEN;ALTER DATABASE OPEN*第 1 行出现错误:ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [99189],[43531], [43569], [], [], [], [], [], [], []2.查看alert日志Wed Jan 11 13: ...
转自:http://www.linuxidc.com/Linux/2011-02/32593p2.htm在oracle分页查询中,我们采用类似以下所示的公认的比较高效的数据库分页查询语句(Effective Oracle by Design中有描述、众多oracle使用者也做过测试)。写道SELECT * FROM(SELECT A.*, ROWNUM RN ...
转自:http://zhidao.baidu.com/link?url=z9PNNWBWVAC6dlAX5_KBRMoUSC0QctbwHEqMIJELKsUpEVDzadLwjrZ3Mn8M5Xcd_c7pDZk7cW9s6CqWFI8jBa  什么时候使用自动PGA内存管理?什么时候使用手动PGA内存管理?  白天系统正常运行时适合使用自动PGA内存管理,让Oracle根据当前负载自动管理、分配PGA内存。  夜里用户数少、进行维护的时候可以设定当前会话使用手动PGA内存管理,让当前的维护操作获得尽可能多的内存,加快执行速度。  如:服务器平时运行在自动PGA内存管理模式下,夜里有个 ...
1、概念     服务器首先在sort_area_size指定大小的内存区域里排序,如果所需的空间超过sort_area_size,排序会在临时表空间里进行。在专用服务器模式下,排序空间在PGA中,在共享服务器模式下,排序空间在UGA中。如果没有建立l ...
转自:http://database.ctocio.com.cn/433/9328433.shtml  -- 按拼音排序 (系统默认)  select * from perexl order by nlssort(danwei,'NLS_SORT=SCHINESE_PINYIN_M');  -- 按部首排序  select * from perexl order by nlssort(danwei,'NLS_SORT=SCHINESE_STROKE_M');  -- 按笔画排序  select * from perexl order by nlssort(danwei,'NLS_SO ...
1、查询Access中的表名称select name from MSysObjects where type=1 and flags=0 MSysObjects2、几个查询结果Union All时,当使用了无表查询时,提示“查询输入必须包含至少一个表或查询”  也就是说在Access里,这样的查询,并不能出想要的结果  select 'wallimn'    union all    select name from MSysObjects  这时可以建一个一行一列的表,比如效仿Oracle,建一个DUAL,从这个表里查些不相干的东西就行了。  select 'wallimn' ...
升级过程:0)shutdown 数据库,并停止所有oracle相关的服务.注意: 需要停止Distributed Transaction Coordinator服务/iis服务/web publish(www)/;1)冷备份数据库2)运行安装补丁程序--如果没有创建数据库,升级就结束了,如果升级已经创建了数据库的数据库,需要执行下面的操作3)启动监听服务,然后startup upgrade  修改java_pool_size / large_pool_size=150M4)运行脚本@rdbms/admin/catupgrd.sql    这个脚本似乎不运行也行。  @rdbms ...
  我的Oracle版本是10.2.1,所说是个BUG比较多的版本。事实证明真的是这样。网上也有很多人这样说。  这几天数据大量地出现错误,信息系统的错误提示为:无法从套接字读取更多内容,查看Oracle的警告日志,错误信息为:“RA-07445: 出现异常错误: 核心转储 [ACCESS_VIOLATION] [_qkabxo+18] [PC:0x20C6606] [ADDR:0x0] [UNABLE_TO_READ] []”。  udump目录中出现大量TRACE文件。  查看了错误提示的对应的TRACE文件,发现一句关键的话:Heap size 2267K exceeds notif ...
作者: 三十而立时间:2009年10月06日 0:20:15本文出自 “inthirties(三十而立)”博客,转载请务必注明作者和保留出处http://blog.csdn.net/inthirties/archive/2009/10/06/4635019.aspxORA-07445: [ACCESS_VIOLATION] [_keltfill+86] [PC:0xBA78BA] [ADDR:0x0] [UNABLE_TO_READ] Thu Jan 15 08:05:02 2009 Errors in file d:oracleproduct10.2.0adminorclbdumph ...
转自:http://www.2cto.com/database/201204/126027.html问题:IMP-00019: 由于 ORACLE 错误 12899 而拒绝行IMP-00003: 遇到 ORACLE 错误 12899ORA-12899: 列 "JACKEYJ"."JK_REGISTER"."OPNAME" 的值太大 (实际值: 21, 最大值: 20)列 1 523从9i环境下exp出来的数据,imp到10g数据库的时候就出现这个错误。解决方案:修改oracle 10g的字符集Oracle修改数据库字 ...
转自:http://qq0819.blog.hexun.com/7039497_d.html下面所述的Oracle完全卸载过程是本人在因为实际所需在网上搜所得到的,已经在windows2003中成功卸载过Oracle9.2版本,其它操作系统和oracle的版本,应该类似,可参考下面步骤进行卸载。 卸载步骤如下:  ① 开始->设置->控制面板->管理工具->服务:停止所有Oracle服务。② 开始->程序->Oracle - OraHome90->Oracle Installation Products->Universal Installer:卸装所有Oracle产品 ③ 运行reg ...
  数据库为归档模式,要不然有点悲剧,只能基于联机日志做挖掘,因此不能挖得太深,只能找回短时间内删除的数据(也就是联机日志没有被覆盖的数据)。1.获取数据字典:(1)修改参数alter system set utl_file_dir='d:\' scope=spfile;(2)重启oracleshutdown immediate; startup (3)生成字典exec dbms_logmnr_d.build('dictionary.ora','d:\',options =>dbms_logmnr_d.store_in_flat_file);2.插入、删除示例数据ins ...
Oracle:Authid Current_User的使用 我们知道,用户拥有的role权限在存储过程是不可用的。遇到这种情况,我们一般需要显式授权,如grant create table to usera;但这种方法太麻烦,有时候可能需要进行非常多的授权才能执行存储过程,实际上,oracle给我们提供了在存储过程中使用role权限的方法:修改存储过程,加入Authid Current_User时存储过程可以使用role权限。下面来举个例子:SQL> select * from v$version;BANNER------------------------------------ ...
Oracle 是一个面向Internet计算环境的数据库。它是在数据库领域一直处于领先地位的甲骨文公司的产品。可以说Oracle关系数据库系统是目前世界上流行的关系数据库管理系统,本文将对oracle当中扫描数据的存取方法进行介绍。1) 全表扫描(Full Table Scans, FTS)为实现全表扫描,Oracle读取表中所有的行,并检查每一行是否满足语句的WHERE限制条件一个多块读操作可以使一次I/O能读取多块数据块(db_block_multiblock_read_count参数设定),而不是只读取一个数据块,这极大的减少了I/O总次数,提高了系统的吞吐量,所以利用多块读的方法可以 ...
  在我使用Oracle自带的工具sqldevloper(Oracle10、11都带个工具,用起来还行,就是有点慢)登录服务器Oracle9i数据库的时候,出现了这个提示。网上一查,很多人是在执行JAVA程序的时候报了这个异常。  好心人给出的明确原因及解决办法:服务器设置了IP过滤,客户机的IP不在允许范围之内。需要修改服务器上的sqlnet.ora文件,加入客户机的IP就可以了。修改后,要重启监听。  查看了一个监听的日志,果然发现登陆时候有如下错误:  TNS-12546: TNS:permission denied   TNS-12560: TNS:protocol adapte ...
转自:http://space.itpub.net/17203031/viewspace-697442在Oracle中,确定连接操作类型是执行计划生成的重要方面。各种连接操作类型代表着不同的连接操作算法,不同的连接操作类型也适应于不同的数据量和数据分布情况。无论是Nest Loop Join(嵌套循环),还是Merge Sort Join(合并排序连接),都是适应于不同特殊情况的古典连接方法。Nest Loop Join算法虽然可以借助连接列索引,但是带来的随机读成本过大。而Merge Sort Join虽然可以减少随机读的情况,但是带来的大规模Sort操作,对内存和Temp空间压力过大。两 ...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值