- 浏览: 154906 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
驭乐MJ:
好!谢谢啦!正在学习使用sean中。。
Seam学习笔记 -
laorer:
00 -现在,互联网造就了一批富翁,但那时,似乎什么都不会去想 ...
如果时光能够回流到八年前 -
liuqizhi0925:
八年前,OMG ,能改变的事情真的很多...
如果时光能够回流到八年前
常用脚本:
--1. 循环插入测试语句:
declare
i int:=1;
begin
while i<=1000 loop
insert into t_b values(i,'I love xian'||i);
i := i+1;
if (i mod 100 = 0) then
commit;
end if;
end loop;
end;
/
* 关于job中的next_date的时间设定:
每1小时: TRUNC(SYSDATE,'hh')+1/24
每2小时: TRUNC(SYSDATE,'hh')+2/24
每1天的七点: trunc(sysdate,'dd')+1+7/24
每个月的十点: add_months(trunc(sysdate,'mm'),1)+10/24
*. PL/SQL (Procedural Language/SQL )是Oracle在标准SQL语言上的过程性扩展。
*. 服务名和SID分别是什么概念。
A: 对应就是DataBase名称,因为Oracle数据库没有Database/Schema的概念,对应的是实例。安装Oracle可以安装多个实例。 [SID]即为具体的数据库实例名。
* SQL*Plus的语法是 sqlplus user/password @server
server是网络服务名,或者称连接标识符
sqlplus username/password@servicename
*. 字符串连接采用 || 符号。例如:
update serviceinfo
set wsdlurl = 'http://exchange.xchg.sz.gov/iexchange/services/' || servicename || '?wsdl'
*. NVL函数用于将NULL变为实际值,其语法格式为 NVL(exp1,exp2)
*. LIKE操作符的 通配符包括 %和_
3. 在Oracle的数据库建表中,默认会创建index(index的column值是表主键)。
4. 当为Oracle创建表的主键或者外键时,如果没有制定外键/主键的名称,则系统会默认起名sys_xxxx的名字。
5. Oracle服务器更改IP后 listener服务无法启动的解决方案:
修改服务器端的listen.ora,更改客户端的tnsnames.ora即可。
一般路径在( E:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN\ 下)
6. TOAD软件显示乱码问题的解决:
新建系统环境变量NLS_LANG ,变量值为AMERICAN_AMERICA.ZHS16GBK.
7. PS/SQL中,使用&可以定义临时变量。
高级查询——
集合操作符
UNION ALL,UNION,INTERSECT,MINUS
UNION ALL 是两个集合的简单合并;
UNION则是在合并的基础上进行排序和筛选,删除重复的记录,所以效率比较低。
其他使用函数
TRANSLATE(x,from_string,to_string)
DECODE(value,search_value,result,default_value)
使用CASE表达式来替代多个查询
select
count( case when price <13 then 1 else null end ) low,
count( case when price between 13 and 15 then 1 else null end ) med,
count( case when price >15 then 1 else null end ) high
from products;
游标
1. 游标的作用
当需要对获取结果集的每一行记录,进行复杂逻辑的判断。这时候就需要用到游标。例如"MERGE_UD_PAIR"这个存储过程
游标比批量更新Update的优势:对回滚段的耗用更少。
2. 游标的类型和属性
显示游标和隐式游标。
对于DML语句和单行SELECT INTO语句来说,Oracle会为她们分配隐式游标。
4种属性:
%FOUND,%NOTFOUND,%ROWCOUNT,%ISOPEN
3. 游标的使用步骤
4. 对游标的动态参数的赋值
类似 DBMS_SQL.BIND_VARIABLE(cursor_name8, ':v_imei', v_imei);
简单示例代码1(包含动态语句):
------------------------------------------ ---- 游标以及动态语句的应用 -- SQL处理逻辑: -- 1. 创建fix_XX_TABLE表,里面有正确数据的IMEI,MANU_ID。(PS:建议加上主键索引) -- 2. 通过游标方式从fix_XX_TABLE表中取数据,然后一条条地去update超大表XX_TABLE(有一亿数据量以上) -- 3. 动态SQL语句则使用 using来对参数赋值 ------------------------------------------ drop table fix_XX_TABLE; create table fix_XX_TABLE as select t1.imei,t2.manu_id from XX_TABLE t1,model t2 where t1.model_id=t1.manu_id and t2.model_id=t1.model_id ; declare cursor p_cur is select imei,manu_id from fix_XX_TABLE; v_imei varchar2(30); v_manu_Id number; i number default 0; begin write_run_log('update_XX_TABLE','update XX_TABLE start','0'); open p_cur; loop fetch p_cur into v_imei,v_manu_id; exit when p_cur%notfound; execute immediate 'update XX_TABLE set manu_id=:v_manu_id where imei=:v_imei' using v_manu_id,v_imei; i:=i+1; if mod(i,10000)=0 then commit; write_run_log('update_XX_TABLE','commit times='||to_char(i/10000),sqlcode); end if; end loop; write_run_log('update_XX_TABLE','update XX_TABLE successed',sqlcode); exception when others then write_run_log('update_XX_TABLE','update XX_TABLE failed',sqlerrm); end; / 简单示例代码2 ------------------------------------------ ---- 游标以及动态语句的应用 -- SQL处理逻辑: -- 1. 创建fix_XX_TABLE表,里面有正确数据的IMEI,MANU_ID。(PS:建议加上主键索引) -- 2. 通过游标方式从fix_XX_TABLE表中取数据,然后一条条地去update超大表XX_TABLE(有一亿数据量以上) -- 3. 动态SQL语句则使用 using来对参数赋值 ------------------------------------------ drop table fix_XX_TABLE; create table fix_XX_TABLE as select t1.imei,t2.manu_id from XX_TABLE t1,model t2 where t1.model_id=t1.manu_id and t2.model_id=t1.model_id ; declare cursor p_cur is select imei,manu_id from fix_XX_TABLE; v_imei varchar2(30); v_manu_Id number; i number default 0; begin write_run_log('update_XX_TABLE','update XX_TABLE start','0'); open p_cur; loop fetch p_cur into v_imei,v_manu_id; exit when p_cur%notfound; execute immediate 'update XX_TABLE set manu_id=:v_manu_id where imei=:v_imei' using v_manu_id,v_imei; i:=i+1; if mod(i,10000)=0 then commit; write_run_log('update_XX_TABLE','commit times='||to_char(i/10000),sqlcode); end if; end loop; write_run_log('update_XX_TABLE','update XX_TABLE successed',sqlcode); exception when others then write_run_log('update_XX_TABLE','update XX_TABLE failed',sqlerrm); end; /
ResultSet与游标:
ResultSet就是结果集游标。
Connection创建Statement有一个方法是:Statement createStatement(int resultSetType, int resultSetConcurrency) 。
第一个参数是结果集游标类型,第二个参数是结果集的并发类型:
* @param resultSetType a result set type; one of
* <code>ResultSet.TYPE_FORWARD_ONLY</code>,
* <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or
* <code>ResultSet.TYPE_SCROLL_SENSITIVE</code>
* @param resultSetConcurrency a concurrency type; one of
* <code>ResultSet.CONCUR_READ_ONLY</code> or
* <code>ResultSet.CONCUR_UPDATABLE</code>
一般地读取大数据量,则设置为:
ps = con.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
若是使用分页读取结果集。则设置为:
ps = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
发表评论
-
高级复制与物化视图的选型
2009-11-07 10:13 3873一、 同步技术的选型 (一) ... -
Timesten for Unix的安装
2009-10-10 17:33 2217下载安装文件 1. 查看系统的具 ... -
多数据库兼容问题
2007-02-23 00:00 1352解决多数据库兼容问题: 解决方案一:(适用于数 ... -
书写历史的甲骨文--ORACLE公司传奇
2007-02-16 00:00 884原文地址:http://www.dbanotes.net/Or ... -
over partition by与group by 的区别
2007-02-09 00:00 2651over partition by与group by 的区别 ... -
ORACLE的锁机制
2007-02-02 00:00 1023ORACLE的锁机制 设立封锁机制主要是为了对并发操 ... -
Oracle分区表的优势
2007-01-26 00:00 1836分区表的优势 对于数据库的执行机制还是不大了解,希望专家能通 ... -
RMAN备份命令[转]
2007-01-19 00:00 11781、切换服务器归档模式 ... -
Oracle启动停止命令
2007-01-12 00:00 1540如果未在环境变量中指定实例名,则lsnrctl命令需要指定实例 ... -
Oracle内存结构[转]
2007-01-05 00:00 1124oracle内存结构 SGA:针对系统的内存空 ... -
Oracle日志文件
2006-12-29 00:00 32001.查询系统使用的是哪一组日志文件:select * from ... -
Oracle日志文件使用小结
2006-12-22 00:00 29081:给日志组1增加重做日志文件. SQL> alter ... -
Oracle入门书籍推荐[转]
2006-12-15 00:00 3155很多朋友要我帮忙推荐一下Oracle的入门书籍,能够了解Ora ... -
Oracle优化笔记2
2006-12-08 00:00 1026常用的跟优化有关的数据字典视图 v$sql, ... -
Oracle优化笔记1
2006-12-01 00:00 1043Oracle优化笔记 ... -
Oracle维护笔记1
2006-11-24 00:00 1184Oracle维护笔记 ·常用的数据字典视图—— ... -
Oracle学习笔记2
2006-11-10 00:00 949·MERGE INTO的基本语法 MERGE IN ... -
char、varchar、text、ntext、bigint、int、smallint、tinyint和bit的区别及数据库的数据类型
2006-10-20 00:00 1358Varchar 对每个英文(ASCII)字符都占用2个字节,对 ... -
MySQL 笔记
2006-10-13 00:00 694MySQL 笔记 -
SQL Server存储过程的事务实现
2006-10-06 00:00 1336SQL Server存储过程的事务实现
相关推荐
Oracle学习笔记 Oracle学习笔记是李兴华老师编写的Oracle从入门到精通的学习笔记,涵盖了 Oracle 的多表查询、连接、组函数和分组统计等知识点。在本篇笔记中,李兴华老师详细介绍了多表查询的基本语法、左右连接...
### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...
Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,由美国甲骨文公司(Oracle Corporation)开发和维护。李兴华Oracle全部笔记是一份详细记录了Oracle相关知识的学习资料,涵盖了从基础概念到高级特性的...
Oracle开发笔记主要关注的是SQL语言的基础知识,这是数据库管理和开发的核心部分。SQL,全称为Structured Query Language,即结构化查询语言,是一个国际标准,用于在数据库中进行数据查询、操作和管理。Oracle...
在"Oracle培训笔记2"中,我们可以看到一系列的课程涵盖了XML基础和多行函数的应用,这些都是Oracle数据库管理和开发中的关键知识点。 XML(可扩展标记语言)在Oracle中的应用非常广泛,特别是在数据交换和存储非...
"Oracle开发笔记" Oracle 是一种关系型数据库管理系统,它提供了强大的功能来存储、管理和检索数据。以下是 Oracle 开发笔记的知识点总结: 序列建立 * 序列是一种特殊的数据库对象,可以生成唯一的编号。Oracle...
Oracle数据库是一款功能强大的企业级数据库管理系统,由甲骨文公司(Oracle Corporation)开发。Oracle数据库的不同版本适应了不同时期的技术需求,从早期的Oracle8到最新的Oracle12C,每一代版本都根据技术发展趋势...
1. **Oracle SQL语法**:SQL(Structured Query Language)是用于管理和操作数据库的标准语言。在Oracle中,SQL用于创建、修改和查询表,以及执行各种数据操作任务。例如,`CREATE TABLE`用于创建新表,`ALTER TABLE...
Oracle数据库是世界上最流行的关系型数据库管理系统之一,广泛应用于企业级数据管理、数据分析和应用程序开发。以下将详细阐述Oracle的一些核心知识点。 1. **基础概念和术语**: - **关系型数据库**: 数据以表格...
王重东大侠写的,R12版的,包含进阶案例,可与R11的基础案例结合使用
Oracle SQL是数据库管理员和开发人员在Oracle数据库系统中进行数据查询和管理的重要工具。这篇笔记主要涵盖了Oracle SQL的基础知识、高级特性和实际应用技巧。 一、基础SQL语法 Oracle SQL遵循标准的SQL语法,包括...
oracle OAF 开发笔记 .part2,王重东大侠所写,内含高级案例,值得推荐
Oracle教程笔记涵盖了数据库管理系统Oracle的核心概念、安装配置、SQL语言基础、PL/SQL编程以及数据库管理等多个方面。这篇笔记旨在帮助初学者系统地理解和掌握Oracle技术。 首先,Oracle是全球最大的企业级数据库...
资源名称:Oracle学习笔记-日常应用、深入管理、性能优化内容简介:Oracle学习笔记-日常应用、深入管理、性能优化Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛...
总的来说,《Oracle经典笔记》这套资料是学习和提升Oracle技术的宝贵资源,无论你是新手还是经验丰富的DBA,都能从中找到有价值的信息,提升自己的数据库管理和开发能力。通过系统地学习和实践,你将能够更好地理解...
- **Application Express (APEX)**: 用于快速开发和部署Web应用程序。 ### Oracle数据库用户 - **SYS**: 拥有最高权限的用户,通常用于系统管理。 - **SYSTEM**: 普通用户,拥有一定的数据库操作权限。 - **SCOTT**...
Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,由美国甲骨文公司(Oracle Corporation)开发和维护。MSDN(Microsoft Developer Network)是微软提供的一系列开发资源和技术支持的集合,其中包括对...
Oracle企业资源规划(E-Business Suite,...通过"Oracle-ERP开发笔记.pdf",你将能够深入理解Oracle EBS的开发流程,学习如何利用其强大的功能来解决实际业务问题。这份笔记将是你在Oracle EBS开发旅程中的宝贵指南。