
数据库相关
weikaifenglove
利他就是极致的利己
展开
-
动态sql语句使用样例
create or replace procedure p_nt_init_fax_salary(resultno out integer)as CURSOR init_data is select t.emp_id from rs_emp_nature_attrib t where t.sta_code=1000000008 and t.emp_id>1000 an原创 2012-04-07 13:31:51 · 356 阅读 · 0 评论 -
PLSQL判断语句段
Oracle/PLSQL: IF-THEN-ELSE Statement There are three different syntaxes for these types of statements.Syntax #1: IF-THENIF condition THEN {...statements...}END IF; Synt转载 2009-11-20 17:13:00 · 1045 阅读 · 0 评论 -
解析oracle的rownum
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。举例说明:例如表:student(学生)表,表结构为:ID char(6) --学号name VARCHAR2(10) --姓名 create table st转载 2009-10-30 10:32:00 · 249 阅读 · 0 评论 -
PLSQL中空字符串判断的问题
我在PLSQL中写下这样的一个判断:if (v_str is not null) and ( dbms_output.put_line(ok);end if;结果就是不进入。郁闷死我了!后来我想到了一个其他的办法解决了这个问题,但我就搞不明白为什么我的逻辑不对呢?我还特意写了一个判断:if (1 is not null) and ( 结果转载 2009-10-27 09:19:00 · 2038 阅读 · 0 评论 -
处理UNDO表空间过大问题
--1.新建一个表空间UNDOTBS2 CREATE UNDO TABLESPACE "UNDOTBS2" DATAFILE D:/ORACLE/ORADATA/WOA/UNDOTBS2.ORA SIZE 500M REUSE--2.切换表空间为UNDOTBS2alter system set undo_tablespace=UNDOTBS2 scope=both原创 2009-10-13 10:57:00 · 465 阅读 · 0 评论 -
如何修改数据库名(ORACLE)
1.用oracle自带的工具nid改数据库名在本例中,假设原来的数据库名为test,要改成testdb,原实例名(service_name,instance_name)test,要改成testdb.nid是自带的工具,在oracle_home/bin目录中.以下方法假设登陆到数据库本机做。1.1 sqlplus "sys/password as sysdba"1.2 sql>shu转载 2009-09-25 18:17:00 · 379 阅读 · 0 评论 -
30个Oracle语句优化规则详解
30个Oracle语句优化规则详解1.选用适合的Oracle优化器Oracle的优化器共有3种:a.RULE(基于规则)b.COST(基于成本)c.CHOOSE(选择性)设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE、COST、CHOOSE、ALL_ROWS、FIRST_ROWS。你当然也在SQL句级或是会话(sessi转载 2009-09-30 13:44:00 · 214 阅读 · 0 评论 -
关于Oracle表及字段的注释
1、给表加注释COMMENT ON TABLE land.landsellmend IS 补办出让;2、查看表的COMMENTSELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME=LANDSELLMEND;3、给字段加注释comment on column document.doc.bid is 批号;4、查看字段的COMMENT转载 2009-09-02 11:13:00 · 307 阅读 · 0 评论 -
oracle常用视图按用途划分
现在这里按用途划分,暂时列出来,有空把其中的重要的表以及重要字段加以说明。oracle视图************************instance/database--//整个数据库情况信息V$DATABASE//当前实例信息V$INSTANCEV$OPTION//实例初始化配置参数信息V$PARAMETERV$BACKUPV$PX_PROCESS_SYSSTAT//oracle进程信息V转载 2009-09-02 10:58:00 · 367 阅读 · 0 评论 -
oracle几个常用的监控视图
v$process视图: v$process视图包含当前系统oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。 常用列: ADDR:进程对象地址 PID:oracle进程ID SPID:操作系统进程ID V$PROCESS中的连接列转载 2009-09-02 10:56:00 · 372 阅读 · 0 评论 -
Oracle中打开游标超出最大值
向Oracle数据库表中插入十几万条数据,可是当插入3万多条后,程序就抛 Java代码 ORA-01000 maximum open cursors exceeded ORA-01000 maximum open cursors exceeded异常信息。Google了异常信息,得知这样的错误很容易出现在Java代码中的主要原因是:Java代码在执行conn转载 2009-11-21 18:04:00 · 2090 阅读 · 0 评论 -
ORA-00106:错误处理案例
发现sga给的太少,于是就调整了一下,但是重启实例的时候报:ORA-00106: 无法在连接到调度程序时启动/关闭数据库。 于是就查了些资料,发现使用mts方式的连接串connectdb是不能关闭数据库的。必需用dedicate方式的连接串connect db才能关闭数据库,所以,用mts 时,最好同时建立一个dedicate的连接串。 于是查看了tnsnames.转载 2009-11-23 15:34:00 · 422 阅读 · 0 评论 -
10g 闪回恢复区与archive log
Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的。这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了。oracle10g大大的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能力,这是通过引入一种新的flashback log实现的。flashback log有点类似redo log,只不过redo lo转载 2011-06-27 11:09:00 · 312 阅读 · 0 评论 -
ORA-00257解决方法
从Oracle9i开始,借助于UNDO日志文件提供了闪回查询的功能,由于功能也有一定的局限性,也就是说依赖于UNDO日志的事务不能被覆盖,所以在Oracle10g开始又采用了一种新的FlashBack日志来实现这个功能,而且更为强大,可以将数据库退回到过去某个时间点去。这个文件默认最大为2g。但是在一段时间过后,很快就达到了2G,这个时候就会出现ORA-00257错误了。 两种解决方法:转载 2011-06-10 14:09:00 · 3837 阅读 · 0 评论 -
Oracle Database 11g PL/SQL程序设计 10.1 触发器简介
<br />http://lynsahuang.javaeye.com/blog/758278转载 2011-03-30 13:31:00 · 387 阅读 · 0 评论 -
Oracle10g Sqlplus登录命令及相关操作
1.直接敲sqlplus并回车就是启动SQL*PLUS,输入user及password将使用户登陆到缺省的数据库。 <br /><br />请输入用户名: <br />2.sqlplus user/password@SERVICE_NAME 将连接到指定的数据库。 如果是sys和system用户,后面要加上as "角色权限". <br />3.敲sqlplus 就是使SQL*PLUS启动,但不登陆Oracle数据库。然后需要使用connect命令连接Oracle。 <br /><br />SQL> conn转载 2011-03-14 14:06:00 · 947 阅读 · 0 评论 -
启动Oracle 10g报ORA-00824错误
今天做实验时,用oracle 9i的客户端连接Oracle 10g,修改了一些参数后,Oracle 10g就无法正常启动,远程连接Oracle 10g,用oracle用户在sqlplus下面startup时,系统提示如下错误: ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information看来是sga_target这个参数设置的有问题。sga_target是Orac原创 2011-03-15 14:26:00 · 1084 阅读 · 0 评论 -
ORACLE错误提示查询
<br />ORA-00001: 违反唯一约束条件 (.) <br />ORA-00017: 请求会话以设置跟踪事件 <br />ORA-00018: 超出最大会话数 <br />ORA-00019: 超出最大会话许可数 <br />ORA-00020: 超出最大进程数 () <br />ORA-00021: 会话附属于其它某些进程;无法转换会话 <br />ORA-00022: 无效的会话 ID;访问被拒绝 <br />ORA-00023: 会话引用进程私用内存;无法分离会话 <br />ORA-0002转载 2011-02-23 16:32:00 · 1481 阅读 · 0 评论 -
Oracle CHAR,VARCHAR,VARCHAR2,nvarchar类型的区别与使用
一 varchar,nvarchar, 四个类型都属于变长字符类型, varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。 nvarchar和nvarchar2的区别和上面一样, 与上面区别在于是根据Unicode 标准所进行的定义的类型,通常用于支持多国语言类似系统的定义。 1.char char的长度是固定的,比如说,你定义转载 2009-12-24 17:08:00 · 626 阅读 · 0 评论 -
利用TOAD实现EXCEL数据在oracle的导入导出
利用TOAD实现EXCEL数据在oracle的导入导出1.从ORACLE数据库导出成为EXCEL文件利用TOAD连接上数据库,访问某个表,我本机是选中表“OA_USER”右键“Save as...”为了解决中文乱码问题,所以选择类型为"XLS Instance",如果存在长数字型字符串被改变的问题,请选中“String Fields as Strings”选择文件的存放路径转载 2009-12-16 14:53:00 · 658 阅读 · 0 评论 -
关于dbms_sql的使用
Sql代码 以DDL语句为参数。 create procedure anyddl (s1 varchar2) as cursor1 integer; begin cursor1 := dbms_sql.open_cursor; dbms_sql.parse(cursor1, s1, dbms_sql.v7转载 2009-12-07 17:11:00 · 299 阅读 · 0 评论 -
Oracle DBA日常sql列表及常用视图
--监控索引是否使用alter index &index_name monitoring usage;alter index &index_name nomonitoring usage;select * from v$object_usage where index_name = &index_name;--求数据文件的I/O分布select df.name,phyrds,p转载 2009-09-02 10:53:00 · 259 阅读 · 0 评论 -
oracle DBA 常用表和视图
☆dba_开头..... dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces 数据库表空间信息 dba_data_files 数据文件设置信息 dba_temp_files 临时转载 2009-09-02 10:49:00 · 710 阅读 · 0 评论 -
PGA结构和作用
当用户进程连接到数据库并创建一个对应的会话时,Oracle服务进程会为这个用户专门设置一个PGA区,用来存储这个用户会话的相关内容。当这个用户会话终止时,数据库系统会自动释放这个PAG区所占用的内存。这个PGA区对于数据库的性能有比较大的影响,特别是对于排序操作的性能。所以,在必要的时候合理管理PGA区,能够在很大程度上提高数据库的性能。 一、 PGA与SGA的区别。 PGA(程序缓存转载 2009-09-03 14:12:00 · 975 阅读 · 1 评论 -
查找运行系统里的bad sql语句的好方法
本文中我们主要介绍了如何查找运行系统里bad sql,需要大家注意的是我们需要根据自己的实际情况来具体分析…… 本文中我们主要介绍了如何查找运行系统里bad sql,需要大家注意的是我们需要根据自己的实际情况来具体分析。而不应该照搬下面介绍的这些方法。当我们使用这些SQL语句时,会对系统表产生分组操作,当然也增大了系统的负载。希望大家在系统启动了一段时间后,在半夜负载较轻的时间定转载 2009-05-13 10:31:00 · 228 阅读 · 0 评论 -
Oracle修改连接数
问题描述:客户端连接数据库报错ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄解决过程:1。查看当前会话数、processes和sessions值,发现session数和2个参数的值已经非常逼近SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 10月 9 15:50:21 2006Copyright (c) 1982, 2005,转载 2009-05-13 09:56:00 · 392 阅读 · 0 评论 -
处理超出打开游标的最大数异常
在执行如下代码时,经常会出现ora-01000: maximum open cursors exceeded异常for(int i=0;i{ prepstmt = conn.prepareStatement(sql[i]); prepstmt.setBigDecimal(1,nb.getRealCost()); prepstmt.setString(2, adclient_id转载 2009-05-12 13:58:00 · 272 阅读 · 0 评论 -
定义Ctrl功能的快捷键alert(event.keyCode)可以帮助获得keyCode值。
定义Ctrl功能的快捷键alert(event.keyCode)可以帮助获得keyCode值。//添加快捷键"Ctrl+u"function hello(){ //alert("你好");}function CHECKKEY(){ //alert(event.keyCode); if (event.keyCode == 78 && event.ctrlKey) { //转载 2009-04-24 17:49:00 · 545 阅读 · 0 评论 -
关于ORA-00020: maximum number of processes (150) exceeded 的解决方法
很多朋友在Java开发中,使用Oracle数据库的时候,经常会碰到有ORA-01000: maximum open cursors exceeded.的错误。 实际上,这个错误的原因,主要还是代码问题引起的。 ora-01000: maximum open cursors exceeded. 表示已经达到一个进程打开的最大游标数。 这样的错误很容易出现在Java代码中的主要原因是:J转载 2009-04-24 14:57:00 · 2771 阅读 · 0 评论 -
由Bug引起的ORA-01114&ORA-27069错误
最近在执行一个大数据量查询时报如下错误:ORA-01114: IO error writing block to file 201 (block # 523913)ORA-27069: skgfdisp: attempt to do I/O beyond the range of the fileOSD-04026: Invalid parameter passed. (OS 52392转载 2009-04-07 14:13:00 · 2483 阅读 · 0 评论 -
临时文件的绝对文件号(AFN)
还是上次查询报错的例子:ERROR:ORA-01114: IO error writing block to file 201 (block # 1048178)ORA-27069: skgfdisp: attempt to do I/O beyond the range of the fileOSD-04026: Invalid parameter passed. (OS 1048192)O原创 2009-04-07 14:10:00 · 284 阅读 · 0 评论 -
oracle回滚段
1. 概述本文主要从回滚段的原理,分配和使用,以及回滚段的相关参数包括初始化参数的设置和回滚段的管理来介绍回滚段。以及回滚段涉及的多种问题。2. 回滚段工作原理回滚段是磁盘上的一段存储空间,用来保存数据变化前后的映像来提供一致性读,保证事务完整性。oracle基于两个原则给事务分配回滚段。首先oracle试图将一个新的事务指派给某个拥有最少活动事务数的回滚段;如果没有单个段能满足这个需求,那么该事转载 2009-04-09 13:52:00 · 2400 阅读 · 0 评论 -
PLSQL开发笔记和小结
***************************************** PLSQL基本结构*****************************************基本数据类型变量 1. 基本数据类型 Number 数字型 Int 整数型 Pls_integer 整数型,产生溢出时出现错误 Binary_integer 整数型,表示原创 2009-03-17 15:38:00 · 853 阅读 · 1 评论 -
v$open_cursor中SQL_TEXT字段的内容不全
为什么我 select * from v$open_cursor后发现SQL_TEXT字段的内容都是不完全的啊?列如下 select o.owner#,o.name,o.namespace,o.remoteowner,o.linkname,select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flaselect name,intco转载 2009-05-13 11:30:00 · 603 阅读 · 0 评论 -
java.sql.SQLException: ORA-01000: 超出打开游标的最大数的原因和解决方案
先看有问题的代码 查看复制到剪切板打印1. import java.sql.Connection; 2. import java.sql.DriverManager; 3. import java.sql.SQLException; 4. import java.sql.Statement; 5. 6. public原创 2009-05-12 17:00:00 · 1516 阅读 · 0 评论 -
oracle服务器内存(SGA+PGA+OS)设置
内存结构=SGA(系统全局区)+PGA(程序全局区)SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写 我们重点就是设置SGA,理论上SGA可占OS系统物理内存的1/2——1/3原则:SGA+PGA+OS使用内存SGA=((db_block_buff转载 2009-08-31 18:27:00 · 816 阅读 · 0 评论 -
Oracle DB Link
1。基本概念: 数据库连接串主要用于建立对远程数据库的访问方法,可以直接读取远程Oracle的数据,或者直接修改。数据库连接串可以是公用连接PUBLIC或者私有连接PRIVATE。这一点和同义词很相像。 1。创建语法: CREATE DATABASE LINK TEST CONNECT TO USERNAME IDENTIFIED BY PASSWORD USING CONNECT_STRI转载 2009-06-20 14:59:00 · 338 阅读 · 0 评论 -
oracle job 定时器
对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下:在总结之前,先把Job的参数一一说明一下:job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作;what参数是将被转载 2009-06-22 14:39:00 · 767 阅读 · 1 评论 -
深入浅出oracle锁---原理篇
在现代的多用户多任务系统中,必然会出现多个用户同时访问共享的某个对象,这个对象可能是表,行,或者内存结构,为了解决多个用户并发性访问带来的数据的安全性,完整性及一致性问题,必须要有一种机制,来使对这些共享资源的并发性访问串行化,oracle中的锁就可以提供这样的功能,当事务在对某个对象进行操作前,先向系统发出请求,对其加相应的锁,加锁后该事务就对该数据对象有了一定的控制权限,在该事务释放锁之前,其转载 2009-06-15 09:48:00 · 287 阅读 · 0 评论 -
"ORA-22992: 无法使用从远程表选择的 LOB 定位器"解决方法
今天上午准备利用database link(TO_ORATEST.US.ORACLE.COM)从远程数据库向本地数据库 INSERT数据时,因远程表中含有BLOB字段,在SELECT 和 INSERT INTO操作时,报"ORA-22992: 无法使用从远程表选择的 LOB 定位器"错误,通过创建临时表并从临时成功把数据插入到目的表中。具体解决办法如下(以下操作都是在PL/SQL Develope转载 2009-08-05 16:28:00 · 5649 阅读 · 1 评论