- 浏览: 327938 次
文章分类
- 全部博客 (116)
- Oracle (29)
- MySQL (2)
- Java (20)
- .NET (2)
- Javascript (4)
- Spring (6)
- Struts (6)
- Hibernate (16)
- JSP (6)
- Tomcat (1)
- Quartz (2)
- RCS (1)
- Translate (12)
- PL/SQL (5)
- Sqlplus (1)
- System (6)
- Linux (11)
- Ubuntu (9)
- Windows (10)
- Mac (2)
- Tools (8)
- Mercurial (1)
- Google Code (1)
- Subversion (1)
- Debian (2)
- Freemarker (6)
- Web (2)
- PHP (1)
- Nginx (1)
最新评论
-
sunday1207:
private Class getParameterizedT ...
java 中 BaseDao 在Hibernate中的用法 -
SkimSkim:
你这里的解压是把文件夹11下面的所有文件都放在ins这个文件夹 ...
ubuntu 在终端使用 sqlplus 连接远程数据库 -
as619864232:
漫步邃思 写道其实常用的就那么几个命令,大部分都用不到的是啊, ...
windows cmd 命令 -
漫步邃思:
其实常用的就那么几个命令,大部分都用不到的
windows cmd 命令
当要在 Oracle 中之心批量 INSERT、UPDATE 和 DELETE 操作时,可以使用 FORALL 语句。
语法:
--语法1: FORALL 下标变量(只能当作下标被引用) IN 下限..上限 sql 语句; --只允许一条 sql 语句 --语法2: FORALL 下标变量 IN INDICES OF(跳过没有赋值的元素,例如被 DELETE 的元素,NULL 也算值) 集合 [BETWEEN 下限 AND 上限] sql 语句; --语法3: FORALL 下标变量 IN VALUES OF 集合(把该集合中的值当作下标,且该集合值的类型只能是 PLS_INTEGER BINARY_INTEGER) sql 语句;
create table tb1( id number(5), name varchar2(50) );
语法1演示:
--批量插入演示 declare type tb_table_type is table of tb1%rowtype index by binary_integer; tb_table tb_table_type; begin for i in 1..10 loop tb_table(i).id:=i; tb_table(i).name:='NAME'||i; end loop; forall i in 1..tb_table.count insert into tb1 values tb_table(i); end; --批量修改演示 declare type tb_table_type is table of tb1%rowtype index by binary_integer; tb_table tb_table_type; begin for i in 1..10 loop tb_table(i).id:=i; tb_table(i).name:='NAMES'||i; end loop; forall i in 1..tb_table.count update tb1 t set row = tb_table(i) where t.id = tb_table(i).id; end; --批量删除演示 declare type tb_table_type is table of tb1%rowtype index by binary_integer; tb_table tb_table_type; begin for i in 1..10 loop tb_table(i).id:=i; tb_table(i).name:='NAMES'||i; end loop; forall i in 1..tb_table.count delete tb1 where id = tb_table(i).id; end;
语法2演示:
select * from tb1; declare type demo_table_type is table of demo%rowtype index by binary_integer; demo_table demo_table_type; begin for i in 1..10 loop demo_table(i).id:=i; demo_table(i).name:='NAME'||i; end loop; demo_table.delete(3); demo_table.delete(6); demo_table.delete(9); forall i in indices of demo_table insert into demo values demo_table(i); end; select * from demo; 1 1 NAME1 2 2 NAME2 3 4 NAME4 4 5 NAME5 5 7 NAME7 6 8 NAME8 7 10 NAME10
语法3演示:
declare type index_poniter_type is table of pls_integer; index_poniter index_poniter_type; type demo_table_type is table of demo%rowtype index by binary_integer; demo_table demo_table_type; begin index_poniter:=index_poniter_type(1,3,5,7); for i in 1..10 loop demo_table(i).id:=i; demo_table(i).name:='NAME'||i; end loop; forall i in values of index_poniter insert into demo values demo_table(i); end; select * from demo; 1 1 NAME1 2 3 NAME3 3 5 NAME5 4 7 NAME7
发表评论
-
Mysql 与 Oracle 的一些区别
2012-10-01 13:17 1500周五去一家公司去面试,那公司经理问了关于Mysql与Oracl ... -
Oracle 数据的导入和导出
2012-09-17 19:17 1186数据导出: 1 将数据库TEST完全导出,用户名system ... -
ubuntu 在终端使用 sqlplus 连接远程数据库
2012-08-27 14:54 4014在 http://www.oracle.com/technet ... -
Oracle 批量操作
2012-08-13 12:44 951简单的写一个批量赋予权限的语句备用,其他类似: sel ... -
Oracle 中的游标用法
2012-04-10 16:38 1523循环将游标中的数据提取出来并放置2个变量中输出 SQL ... -
PL/SQL 记录
2012-04-09 16:36 1043PL/SQL 中可以使用 %ROWTYPE 作为一张表的行作为 ... -
PL/SQL 索引表、嵌套表、变长数组的区别
2012-04-08 13:38 1130索引表 嵌套表 变长数组 ... -
oracle 中的循环
2012-04-06 09:36 1414一、LOOP 循环是最简单的循环,也是无限循环,只能用 EXI ... -
oracle 中的动态 SQL
2012-04-06 09:36 1079在 PL/SQL 块中,可以使用 DDL 语句和事物控制语句, ... -
oracle 中的 CASE
2012-04-05 15:42 1201oracle 中的 CASE 可以作为一个选择控制语句,可以根 ... -
oracle 中的属性数据类型
2012-04-05 15:17 1648当需要数据库表中的某行作为一个数就类型时,就需要 %ROWTY ... -
oracle 中的 SELECT...INTO 语句
2012-04-05 15:03 2665SELECT...INTO 语句可以给多个值同时赋值,届时两边 ... -
oracle 中的表分区
2012-04-05 14:47 1069当数据库的数据不断扩大时,这时可以考虑是用表分区,查询时可以根 ... -
oracle 中的同义词
2012-04-05 14:12 1345同义词(Synonym)是数据库对象的一个别名,oracle ... -
oracle 使用 ROUND 和 EXTRACT 操作日期
2012-04-03 18:59 2138SQL> select to_char(sysdate, ... -
Oracle 中的 ROWID 和 ROWNUM
2012-04-03 17:56 1197在 Oracle 的表的使用过程中,实际表中还有一些附加的列, ... -
Oracle 总结
2012-04-02 16:57 1044一、走进Oracle 1:oracle 数据库产品是 ... -
oracle 所有错误编号解释
2012-03-31 15:09 1229oracle 所有官方错误编号解释:http://docs.o ... -
oracle 字符串连接
2012-03-31 13:52 1163SQL> select 1 || 2 from dual ... -
oracle 外联接
2012-03-31 13:37 1105oracle 外联接 “(+)” 的用法: Connecte ...
相关推荐
Oracle 10g 中的 FORALL 语句可以处理非连续数组,这种能力在以前的版本中是不存在的。在 Oracle 10g 中,FORALL 语句可以使用 INDICES OF 和 VALUES OF 子句来处理非连续数组。下面我们将详细介绍这两个子句的语法...
3. **执行生成的语句**:生成的SQL语句可以直接复制并在Oracle环境中执行,或者将其保存到一个文件中批量执行。 #### 注意事项 - 在执行`ANALYZE TABLE`命令时,可能会消耗大量资源,特别是在大型表上。因此,在...
- **批量操作**:如果可能,考虑批量更新,如使用BULK COLLECT INTO和FORALL操作。 - **物化视图**:对于频繁更新的部分数据,创建物化视图可以提高查询效率。 总之,Oracle UPDATE语句的语法和性能取决于许多因素...
### Oracle性能监控SQL语句详解 #### 一、分析表 **知识点:** - **Table Analysis:** - 使用`ANALYZE TABLE`命令来收集表及其索引的统计信息,这对于优化器做出正确的执行计划决策至关重要。 - `ANALYZE ...
在SQL语句中,为PL/SQL变量赋值的过程被称为绑定,而`FORALL`语句则能够将集合的所有元素一次性传递给一个操作,这一过程即为批量绑定。 例如,如果集合包含20个元素,使用批量绑定可以通过单次操作等同于执行20次...
1. **带 INSERT、UPDATE 和 DELETE 语句的批挷定**:在 `FORALL` 语句中嵌入 SQL 语句。 2. **带 SELECT 语句的批挷定**:在 SELECT 语句中使用 `BULK COLLECT` 语句代替 `INTO`。 #### 四、批挷定示例 下面是一个...
Oracle查询语句是数据库管理中不可或缺的部分,尤其在处理复杂数据检索时显得尤为重要。Oracle SQL是一种结构化查询语言,用于与Oracle数据库进行交互。在这个"oracle查询语句实例"的压缩包中,你将找到一系列实用的...
Oracle 常用语句大全 Oracle 是一款流行的关系数据库管理系统,广泛应用于企业级的数据存储和管理。作为一个dba或开发者,掌握 Oracle 的常用语句是非常必要的。本文汇总了 Oracle 的一些常用语句,包括数据库的...
对于大量相似的更新操作,可以考虑使用BULK COLLECT和FORALL语句进行批量处理,以减少网络和数据库调用的开销: ```sql DECLARE TYPE col_table IS TABLE OF table_name.column_name%TYPE INDEX BY PLS_INTEGER; ...
以下是一些Oracle DB中常用的SQL语句,它们涵盖了数据库的基本管理、监控和查询功能。 1. **查看表空间的名称及大小**: 这个查询帮助我们了解各个表空间的总大小。`dba_tablespaces` 和 `dba_data_files` 是系统...
在Oracle中,插入数据到表中的主要语句是`INSERT INTO`,它允许你将新记录添加到已存在的表中。下面我们将深入探讨Oracle SQL语句插入数据的相关知识点。 一、基本语法 Oracle SQL 插入数据的基本语法如下: ```...
比如,利用缓存减少重复的类加载,以及使用BULK COLLECT和FORALL语句进行批量处理。 7. **文件"java_for_oracle.doc"** 这个文档很可能包含详细的步骤指导,如何在Oracle环境中配置和使用Java进行存储过程开发,...
首先,我们需要登录 Toad for Oracle,并打开 Schema 窗口。在 Schema 窗口中,我们可以看到数据库中的所有表的列表。在这里,我们可以右键点击欲导出数据的表,并选择 "Export data"。 在 Data Export 窗口中,...
- **UNION运算符**:Oracle允许在SELECT语句中使用UNION运算符,而Sql Server则提供了更丰富的选项,如COMPUTE子句和FOR BROWSE选项。 - **优化策略**:Oracle的基于开销的优化提示在Sql Server中可能不适用,建议...
`INSERT ALL`语句允许你在单个语句中插入多行数据到一个或多个表中。例如,如果你有一个`pm_stu`表,需要插入多条记录,你可以这样编写SQL: ```sql insert all into pm_stu (stu_id, stu_name) values ('3', '...
本文介绍了一种将Oracle数据库中的表结构转换为MySQL数据库表结构的方法。通过编写一个PL/SQL函数`fnc_table_to_mysql`来实现这一目标。该函数可以接受四个参数,并生成对应的MySQL创建表语句(DDL)。 #### 参数...
4. **插入新节点**:最后,使用`FORALL`语句批量插入新的节点到`SCOTT_TREE`表中。 下面是具体的PL/SQL过程代码: ```plsql CREATE OR REPLACE PROCEDURE COPY_TREE AS TYPE LOOKUP IS TABLE OF VARCHAR2(32) ...
3. **动态生成的字段列表**:根据业务需求,可能需要动态地构建 SELECT 语句中列出的字段。 #### 二、使用 EXECUTE IMMEDIATE 在 Oracle 中,`EXECUTE IMMEDIATE` 是一种常用的执行动态 SQL 的方式。下面通过几个...
《SQL Optimizer for Oracle - Basic》的培训课程主要讲解了如何高效优化Oracle数据库中的SQL语句,提升系统性能。课程涵盖了四个核心步骤、两种执行模式以及开发和优化流程。 首先,四个核心步骤是识别、优化、...
4. **使用`FORALL`**:当需要批量更新或插入数据时,可以使用`FORALL`语句来提高效率,如下所示: ```sql DECLARE TYPE num_list IS VARRAY(20) OF NUMBER; v_id num_list := num_list(100, 101); BEGIN FOR...