java中调用ORACLE存储过程
http://www.javaresearch.org/article/66608.htm[@more@]一:无返回值的存储过程存储过程为:CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) ASBEGIN INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);END TESTA;然后呢,在java里调用时就用下面的代码:package com.hyq.src; import java.sql.*;import java.sql.ResultSet; public class TestProcedureOne { public TestProcedureOne() { } public static void main(String[] args ){ String driver = "oracle.jdbc.driver.OracleDri
索引组织表IOT(转)
索引组织表的数据按主键排序手段被存储在B-树索引中,除了存储主键列值外还存储非键列的值。普通索引只存储索引列,而索引组织表则存储表的所有列的值。索引组织表一般适应于静态表,且查询多以主键列。当表的大部分列当作主键列时,且表相对静态,比较适合创建索引组织表!(8i以上)[@more@]索引组织表的创建:CREATE TABLE docindex(token char(20),doc_id NUMBER,token_frequency NUMBER,token_offsets VARCHAR2(512),CONSTRAINT pk_docindex PRIMARY KEY (token, doc_id))ORGANIZATION INDEX TABLESPACE ind_tbs;必须给索引结构表指定
SELECT FOR UPDATE in Cursors
FOR UPDATE 和FOR UPDATE OF作用应该是一样的,加上of只是增加可读性,是要更新哪个字段。[@more@]重点:the OF list just gives you a way to document more clearly what you intend to change.WHERE CURRENT OF cursor_name:作用,不要写两次where条件了:The most important advantage to using WHERE CURRENT OF where you need to change the row fetched last is that you do not have to code in two (or more) places the criteria used to uniquely identify a row in a table. Without WHERE CURRENT OF, you would need to
DATE and TIMESTAMP
A Comparison of Oracle's DATE and TIMESTAMP Datatypes By James Koopmannhttp://oracle.chinaitlab.com/induction/38725.html[@more@]If you want to store date and time information in Oracle, you really only have two different options for the column's datatype. Lets take a quick look at these two datatypes and what they offer.DATE datatypeThis is the datatype that we are all too familiar with when we think about representing date and time values. It has the ability to store the month, day, year, cent
Oracle Backup and Recovery FAQ
Oracle Backup and Recovery FAQhttp://orafaq.com/faqdbabr.htm[@more@]Oracle Backup and Recovery FAQ$Date: 29-Jul-2005 $$Revision: 2.04 $$Author: Frank Naudé $ The wise one once said: Backup early and often... database crashes can happen at any time for any reason! Why and when should I backup my database? What strategies are available for backing-up an Oracle database? What is the difference between on-line and off-line backups? What is the difference between restoring and recovering? How does o
log_buffer的值设置多大合适
见这个讨论:http://www.itpub.net/556619.html[@more@]The default size of the redo buffer, as controlled by the LOG_BUFFER parameter, is whatever is the greater of 512KB and (128 * number of CPUs)KB. The minimum size of this area is OS dependent.我个人认为3M合适,1M有点小。LGWR在满1M时开始写盘,但在LGWR FLUSH LOG BUFFER TO DISK的过程中,另一个事务产生的REDO LOG将会存到THE ANOTHER PART OF LOG BUFFER 。如果LOG BUFFER 只有1M,毫无疑问将会产生RESOURCE WAIT除了1m写外,1/3满也会写,cimmit也写,并不是非要
exists 和 in (转)
in适合内外表都很大的情况,exists适合外表结果集很小的情况.[@more@]exists 和 in =========================================================== 作者: xsb(http://xsb.itpub.net)发表于:2005.12.14 13:20分类: Oracle 出处:http://xsb.itpub.net/post/419/48395--------------------------------------------------------------- http://blog.itpub.net/category/385/14461 exists 和 in 使用一例 =========================================================== 今天市场报告有个sql及慢,运行需要20多分钟,如下:update p_container
oracle初始化参数
下面列举pfile文件里的内容[@more@]*.background_dump_dest='d:oracleadmine3bdump'*.compatible='9.2.0.0.0'*.control_files='f:oradatae3CONTROL01.CTL','f:oradatae3CONTROL02.CTL','f:oradatae3CONTROL03.CTL'*.core_dump_dest='d:oracleadmine3cdump'*.db_block_size=8192*.db_cache_size=25165824*.db_domain=''*.db_file_multiblock_read_count=48*.db_name='e3'*.dispatchers='(PROTOCOL=TCP) (SERVICE=e3XDB)'*.fast_start_mttr_target=300*.hash_join_enabled=TRUE*.instance_name='e3'*.java_pool_size=33554432*.job_queue_pr
Sybase及SQL Anywhere SQL语句小结(转)
根据SQL Anywhere User's Guide所作小结。绝大部分都可用直接于Sybase数据库。[@more@]SELECT语句SELECT * FROM employeeSELECT * FROM employee ORDER BY emp_lname ASCSELECT * FROM employee ORDER BY emp_lname DESCSELECT emp_lname, dept_id, birth_date FROM employeeSELECT * FROM employee WHERE emp_fname='John'(一定使用单引号)SELECT emp_fname, emp_lname, birth_date FROM employee WHERE emp_fname = 'John' ORDER BY birth_dateSELECT emp_lname, birth_date FROM employee WHERE birth_date < 'March 3
statspack 必看的十项内容
http://xsb.itpub.net/post/419/38713statspack 必看的十项内容[@more@]、负载间档(Load profile)2、实例效率点击率(Instance efficiency hit ratios)3、首要的5个等待事件(Top 5 wait events)4、等待事件(Wait events)5、闩锁等待6、首要的SQL(Top sql)7、实例活动(Instance activity)8、文件I/O(File I/O)9、内存分配(Memory allocation)10、缓冲区等待(Buffer waits) 二、输出结果解释1、报表头信息数据库实例相关信息,包括数据库名称、ID、版本号及主机等信息 2、负载间档该部分提供每秒和每个事物的统计信息,是监控系统吞吐量和负载
PL/SQL入门
.1 PL/SQL简介 转http://xsb.itpub.net/post/419/107621[@more@].1 PL/SQL简介1.2 创建PL/SQL程序块 1.3 PL/SQL数据类型 1.4 处理PL/SQL的异常1.4.1 PL/SQL的异常 1.4.2 自定义异常处理 1.4.3 自定义异常 1.5 在PL/SQL中单条记录的查询 1.6 用光标查询多条记录 1.6.1 使用光标的基本方法 1.6.2 使用光标FOR循环 1.6.3 带参数的光标 1.7 创建代表数据库记录和列的变量 1.8 怎样用PL/SQL表实现数组功能[Ref: http://www.oradb.net/plsql.htm ]1.1 PL/SQL简介PL/SQL是ORACLE的过程化语言,包括一整套的数据类型、条件结构、循环结构和异常处理
从sybase的存储过程转向oracle的存储过程
从sybase的存储过程转向oracle的存储过程[@more@]http://www.itpub.net/23129,1.html讨论:从sybase的存储过程转向oracle的存储过程的不同点 另:http://topic.csdn.net/f/1805/7501-8000.html从sybase的存储过程转向oracle的存储过程有一些惯性专不过来:1.sybase的@@rowscount系统变量反映update等语句执行时影响的数据表记录条数,oracle中对应的是什么?2.sybase存储过程中可用select @n_ret 直接返回局部变量@n_ret的值,再oracle中如何实现相同的功能?3.sybase存储过程中参数说明可以为 para1 char(4),在oracle中不允许,是否oracl
左连接和右连接
左连接和右连接在Oracle PL-SQL中,左连接和右连接以如下方式来实现查看如下语句
几个重要表
USER_SEGMENTS,user_ind_columns,v$bh和user_objects,user_free_space[@more@]Ø USER_SEGMENTSSQL> create table xs(id number,name char(10)) tablespace tools 2 ; Table created SQL> select * from user_segments where segment_name = 'XS'; SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE TABLESPACE_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS
物化视图--数据仓库手册
转:http://blog.itpub.net/post/468/11356[@more@]Oracle的物化视图提供了强大的功能,可以用在不同的环境中。在不同的环境中,物化视图的作用也不相同。 数据仓库中的物化视图主要用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。在数据仓库中,还经常使用查询重写(query rewrite)机制,这样不需要修改原有的查询语句,Oracle会自动选择合适的物化视图进行查询,完全对应用透明。 物化视图和表一样可以直接进行查询。物化视图可以基于分区表,物化视图
Oracle的在线重定义(转)
Oracle的在线重定义表功能:[@more@] =========================================================== 作者: yangtingkun(http://yangtingkun.itpub.net)发表于: 2005.01.05 18:28分类: ORACLE 出处: http://yangtingkun.itpub.net/post/468/12855--------------------------------------------------------------- 在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统。Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就无法完成了。而且,
将普通表转变为分区表
将普通表转变为分区表 的几种方法:[@more@]Oracle的普通表没有办法通过修改属性的方式直接转化为分区表,必须通过重建的方式进行转变,下面介绍三种效率比较高的方法,并说明它们各自的特点。 方法一:利用原表重建分区表。 步骤: SQL> CREATE TABLE T (ID NUMBER PRIMARY KEY, TIME DATE); 表已创建。 SQL> INSERT INTO T SELECT ROWNUM, CREATED FROM DBA_OBJECTS; 已创建6264行。 SQL> COMMIT; 提交完成。SQL> CREATE TABLE T_NEW (ID, TIME) PARTITION BY RANGE (TIME) 2 (PARTITION P1 VALUES LESS THAN (TO_DATE('200
一篇statspack分析例子
http://www.statspackanalyzer.com/sample.asp[@more@]You are not using your KEEP pool to cache frequently referenced tables and indexes. This may cause unnecessary I/O. When configured properly, the KEEP pool guarantees full caching of popular tables and indexes. Remember, an average buffer get is often 100 times faster than a disk read. Any table or index that consumes > 10% of the data buffer, or tables & indexes that have > 50% of their blocks residing in the data buffer should be cac
子查询的典型例子
几个子查询的典型例子[@more@]显示那些比平均工资低的雇员信息:SQL> SELECT last_name, title, salary FROM s_emp WHERE salary <2 ( SELECT AVG(salary) FROM s_emp );显示平均工资比“部门号是32”的平均工资大的所有部门:SQL> SELECT dept_id, AVG(salary) FROM s_emp2 GROUP BY dept_id HAVING AVG(salary) >3 (SELECT AVG(salary) FROM s_emp WHERE dept_id = 32);DEPT_ID AVG(SALARY)------- -----------33 151550 2025找出最低平均工资的的工作:SQL> SELECT title, AVG(salary)2 FROM s_emp3 GROUP BY title
在oracle中使用函数来判断某字段是否能转换成数字型
可以建一个plsql 返回数字型的函数来达到该功能。[@more@]加了个函数来判断 create or replace function BhToNumber(strNumber varchar2) return number is begin return (to_number(strNumber)); exception when others then return (0); end ; sql中这样来查询 select BhToNumber(字段名) from 表名 这样如果有错误的数据就会显示为0,至少不会报错了..