首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FORALL 之 SAVE EXCEPTIONS 子句应用一例

2、需要将数据库A的一些表的数据同步到数据库B对应的目的表       3、如果同步的过程中出现某条特定的记录错误,则写该记录产生的错误信息(含表名,主键)到日志表,并将其原表同步状态更新为N,否则更新为...FORALL 语句 批量SQL之 BULK COLLECT 子句 PL/SQL 集合的初始化与赋值 PL/SQL 联合数组与嵌套表 PL/SQL 变长数组 PL/SQL --> PL/SQL...error: character string buffer too small 上面的错误提示是由于我们声明的emp_tab嵌套表基于源表,因此出现数据缓冲太小的错误 PL/SQL procedure...上面由于源表的is_sync列有约束限制,只允许出现C或E值,而bulk_error中是更新为N,所以给出错误提示 我们来看看err_log_tbl,两条源表到目标表在非insert时产生的错误信息已经被记录到日志表...,未成功插入的到目标表的记录写入到日志,含有表名以及主键,插入时对应的错误信息 scott@CNMMBO> select * from err_log_tbl; LOG_SEQ LOG_TIME

79710

Oracle存储过程详解(一)

使用嵌套表或 VARRAY 时,将下标指定为负数 VALUE_ERROR 赋值时,变量长度不足以容纳实际数据 LOGIN_DENIED PL/SQL 应用程序连接到 oracle 数据库时,提供了不正确的用户名或密码...NOT_LOGGED_ON PL/SQL 应用程序在没有连接 oralce 数据库的情况下访问数据 PROGRAM_ERROR PL/SQL 内部问题,可能需要重装数据字典& pl..../SQL系统包 ROWTYPE_MISMATCH 宿主游标变量与 PL/SQL 游标变量的返回类型不兼容 SELF_IS_NULL 使用对象类型时,在 null 对象上调用对象方法 STORAGE_ERROR...SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子:....在oracle中,数据表别名不能加as,如: select a.appname from appinfo a;-- 正确 select a.appname from appinfo as a;-- 错误

1.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PLSQL 联合数组与嵌套表

    通常情况下,在PL/SQL中,处理单行单列的数据可以使用标量变量,而处理单行多列的数据则使用PL/SQL记录是不错的选择。...嵌套表也是集合 类型中的一种,下面分别介绍这两种集合数据类型的使用方法。 一、联合数组 1、联合数组的特性 类似于一张简单的SQL表,按照主键进行检索数据 其数据行并不是按照预定义的顺序存储。...ORA-01403错误 ORA-06512: at line 10 二、嵌套表 1、嵌套表的特点: 元素下表从1开始,个数没有限制.即元素个数可以动态增长 嵌套表的数组元素值可以是稀疏的,即可以使得中间的某个元素没有赋值...如果初始化为空值,则后续需要使用extend来扩展其大小 嵌套表初始化时为密集的,但允许有间隙,即允许使用内置过程delete从嵌套表中删除元素 嵌套表类型可以作为表列的数据类型来使用 2、语法...其次是嵌套表初始化赋空值的情形则后续需要使用extend方式来扩展集合尺寸的大小 5、联合数组不能作为表上列的数据类型,而嵌套表无此限制

    1.3K30

    Oracle PLSQL语句基础学习笔记(上)

    %TYPE类型的变量是专门为存储在数据列中检索到的值而创建的.对于使用%TYPE创建的变量,其数据类型由系统根据检索的数据列的数据类型决定....%ROWTYPE类型的变量,它可以一次存储从数据库检索的一行数据。 当你不知道表中的数据类型是什么时候?那你就考虑%TYPE来解决此问题。...表中去查找empno列 %TYPE返回其数据的数据类型。...PL/SQL提供了两种类型的复合数据类型: 记录类型 记录表类型 记录类型 在记录类型中可以存储多个标量值,与数据库中的行相似,必须使用TYPE语句定义记录类型。...FALSE,无参数 DATE 01/01/4712 BC 存储固定长的日期和时间值,日期值中包含时间 ---- (6).LOB数据类型 LOB(大对象,Large object) 数据类型用于存储类似图像

    2.8K10

    oracle的操作

    oracle内置权限:(SELECT * FROM SYSTEM_PRIVILEGE_MAP查); Oracle中的数据库访问权限类型共有两种: 系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引...支持多种数据格式可以是日期,字符,数字 nvl的两个参数数据类型必须匹配,否则出错。...数据操作和查询语句被包含在PL/SQL代码的过程性单元中,经过逻辑判断、循环等操作完成复杂的功能或者计算 2.PL/SQL的优点 使一组语句功能形成模块化程序开发 使用过程性语言控制程序结构 可以对程序中的错误进行处理...集成在数据库中 有助于提高程序性能 3.PL/SQL块的基本结构 DECLARE – 可选部分 变量、常量以及类型等 BEGIN – 必要部分 SQL语句 PL/SQL语句 EXCEPTION...好处: 可以实现用简单的SQL语句不能实现的计算 提高查询的效率 使用规则: 只能使用函数,而不是过程 函数中不允许DML语句 形参必须为IN 必须返回Oracle支持数据类型,不能使用PL

    1.6K20

    Oracle 聚簇因子(Clustering factor)

    聚簇因子是 Oracle 统计信息中在CBO优化器模式下用于计算cost的参数之一,决定了当前的SQL语句是否走索引,还是全表扫描以及是否作为嵌套连接外部表等。...如此这般,那到底什么是聚簇因子,那些情况下会影响到聚簇因子,以及如何提高聚簇因子?本文将对此展开描述。 1、堆表的存储方式     Oralce 数据库系统中最普通,最为常用的即为堆表。     ...CF的影响 --列顺序指索引列值顺序与表中的列值的顺序,一致,则CF良好,不一致,CF较差。...,一个良好的CF值,因为object_name列是有序插入的。...--而索引I_OBJ_ID上的CF接近于表上行数的一半,说明该索引上的CF值不是很理想,因为object_id在插入到table时是无序的。 --从上可知,一个表只能有一种有序的方式来组织数据。

    1.7K10

    PLSQL 集合的初始化与赋值

    有关集合类型的描述请参考: PL/SQL 联合数组与嵌套表 PL/SQL 变长数组 PL/SQL --> PL/SQL记录 一、联合数组的赋值     联合数组的不需要初始化,直接赋值即可。...a、如果下标索引不存在或无法转换成正确的数据类型,PL/SQL就会抛出预定义异常VALUE_ERROR。                 通常,下标是一个整数。...我们知道集合通常是针对单列多行数据而言,而记录则是单行多列。两 者的综合,则此时就等同于数据库中的一张二维表。示例中首先声明用户定义的记录类型以及变长数组,接下来基于这两者声明变量。...在fetch时直接将数据fetch 到 集合变量seniorsalespeople中,此时不需要使用extend方式来扩展。 四、总结 1、对于集合类型在为其赋值之前,需要对集合进行初始化。...10、注意理解复合类型之间(嵌套表和变长数组中嵌有PL/SQL记录)的变量元素间的传递以及集合方法BULK COLLECT INTO,LAST,EXTEND等。

    2.3K50

    oracle基本面试题_mongodb面试题

    oracle使用的脚本语言为PL-SQL,而sql server使用的脚本为T-SQL 微观上: 从数据类型,数据库的结构等等回答 2....冷备份不足: 1).单独使用时,只能提供到“某一时间点上”的恢复。 2).在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。...解释什么是死锁,如何解决Oracle中的死锁?...怎样将一个旧数据库数据移到一个新的数据库 1. Imp/exp将数据库中的数据导入到新的库中 2. 如果是存储迁移直接将存储设备挂到新机器上 26....; 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值;两者都可以通过out参数返回值, 如果需要返回多个参数则建议使用存储过程;在sql数据操纵语句中只能调用函数而不能调用存储过程

    3.3K20

    【DB笔试面试442】 Oracle的数据类型有哪些?

    记录是由一组相关但又不同的数据类型组成的逻辑单元。表是数据的集合,可将表中的数据作为一个整体进行引用和处理。嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。...可变数组(VARRAY)存储固定数量的元素(在运行中,可以改变元素数量),使用顺序数字作下标,可以定义等价的SQL类型,可以存储在数据库中。可以用SQL进行存储和检索,但比嵌套表缺乏灵活性。...如果处理单行单列的数据那么可以使用标量变量;如果处理单行多列数据那么可以使用PL/SQL记录;如果处理单列多行数据那么可以使用PL/SQL集合。...下图是在PL/SQL中可以使用的预定义类型。 ? 图 3-1 PL/SQL中可以使用的预定义类型 数据类型的作用在于指明存储数值时需要占据的内存空间大小和进行运算的依据。...ROWID 行地址,十六进制串,表示行在所在的表中唯一的行地址,该数据类型主要用于返回ROWID伪列,常用在可以将表中的每一条记录都加以唯一标识的场合。

    1.6K10

    HIVE基础命令Sqoop导入导出插入表问题动态分区表创建HIVE表脚本筛选CSV中的非文件行GROUP BYSqoop导出到MySQL字段类型问题WHERE中的子查询CASE中的子查询

    ; // 从别的表中查询出相应的数据并导入到Hive表中,注意列数目一定要相同 insert into table invoice_lines select * from invoice_lines_temp2...动态分区表 有这么一个需求,将一张Hive分区表里面的数据做一些筛选,然后通过筛选出来的数据通过 INSERT OVERWRITE TABLE 这种模式将原先表的数据覆盖,以下是SQL INSERT OVERWRITE...也是可以的。 这里可以使用collect_set函数,collect_set(col)函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。...=TIMESTAMP 不过这里不太适合,因为这里相当于是一个通用的导出到MySQL,根本不知道什么时候有哪些字段 所以,是将MySQL中的一些datetime类型改成varchar类型?...WHERE中的子查询 在hive中的子查询会有各种问题,这里的解决方法是将子查询改成JOIN的方式 先看一段在MySQL中的SQL,下不管这段SQL从哪来的,我也不知道从哪里来的 SELECT

    15.4K20

    如何高效使用YashanDB PL语言?这5点建议值得收藏

    ,明显降低业务功能端到端实现复杂度,提升业务稳定性和可靠性; 高度集成SQL,在数据库批量SQL操作下具有明显的性能优势; Oracle兼容性重要组成,在传统行业大量存量业务的迁移时,PL语言的兼容性成为降低成本的关键因素...该特性主要是由静态SQL支持范围进一步放开了DDL语句特性; 完全支持SQL中定义的所有数据类型,包括数值、字符串、RAW、BOOLEAN、大对象等数据类型; 支持游标变量,提供了灵活的游标OPEN...多个语句块顺序或叠加,在运行时形成一种栈式的调用; 数据区支持类型定义、变量定义、缺省表达式声明、异常变量定义、子过程定义等功能; 除了支持SQL所有的数据类型,可以支持自定义类型,可定义数组、OBJECT...当依赖对象发生DDL,比如一个表动态增删了列,那么依据这个表的查询绑定的游标,其继承属性可能就会发生变化。...再举一个例子,比如实现了一个自定义公共的字符串替换函数,当这个函数的实现发生变更,那么所有依赖这个公共函数的PL对象、SQL语句等都应该发生失效重编译的动作,否则原编译结构中包含的实现逻辑就是错误的。

    7010

    mysql declare 语法_sql_declare等语法 | 学步园

    中的记录批量插入到test_has_cx中 insert test_has_cx select * from test_no_cx —sqlserver create table Topics ( topicID...没有错误则为零。 @@ROWCOUNT : 返回受上一语句影响的行数,任何不返回行的语句将这一变量设置为0。 SQL中@@ROWCOUNT函数:返回受上一语句影响的行数。...3.把临时表里的数据插入到数据表里 insert into t_repeat select * from #Temp 4.删除临时表 drop table #Temp ———– select distinct...===PL/SQL PL/SQL(Procedure Language/Structuer Query Language)是Oracle对标准SQL规范的扩展,全面支持SQL的数据操作、事务控制等。...PL/SQL完全支持SQL数据类型,减少了在应用程序和数据库之间转换数据的操作。 构成PL/SQL程序的基本单位是程序块。程序块由过程、函数和无名块3种形式组成,它们之间可以互相嵌套。

    3.9K20

    数据库原理笔记「建议收藏」

    ] ); 如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。...将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询 子查询的限制 不能使用ORDER BY子句 层层嵌套方式反映了 SQL语言的结构化 有些嵌套查询可以用连接运算替代...PL/SQL中定义变量的语法形式是: 变量名 数据类型 [ [NOT NULL]:=初值表达式]或 变量名 数据类型 [ [NOT NULL]初值表达式] 2....如果试图修改它,PL/SQL将返回一个异常。 3....(结构) 继承 对象的嵌套 关系数据模型与OO模型的比较 对象-关系数据库 对象关系数据库系统中扩展的关系数据类型 1.大对象LOB(Large OBject )类型 LOB可存储多达十亿字节的串

    1.9K22

    springboot第29集:springboot项目详细

    具体原因是插入的数据列数与表定义的列数不一致,数据库要求插入的值的数量必须与表中列的数量相匹配。...数据类型不匹配:有时候插入的数据类型与表的定义不一致,也会导致这个错误。比如,插入了一个字符串值到一个整数类型的列。...表结构变更:如果在数据库表结构发生了变化,例如添加或删除了某些列,而代码中的插入操作没有相应地更新,也可能导致这个错误。...要解决这个问题,您可以采取以下步骤: 检查插入语句:确保插入语句中的列与提供的值的数量相匹配,且列的顺序正确。确保数据类型与表定义的列类型相匹配。...检查表结构:如果表结构有变更,确保代码中的插入操作也相应地更新。如果有新的列,确保插入语句中包含新列,并提供对应的值。如果有删除的列,确保插入语句不包含这些列。

    31930

    PLSQL变长数组

    PL/SQL变长数组时PL/SQL集合数据类型中的一种,其使用方法与PL/SQL嵌套表大同小异,唯一的区别则是变长数组的元素的最大个数是有限 制的。...用于指定元素的数据类型          varray_name TYPE_NAME;                                      -->varray_name 用于定义...varray变量 二、变长数组特性           变长数组主要的特性即是元素的最大个数是有限制           变长数组下标固定为1,上限可以扩展           与嵌套表类似,在变长数组声明时自动设置为...NULL值.所谓的空值指的是集合本身是空,不是针对它所拥有的元素           故在元素引用前需要对其进行初始化 三、变长数组示例 --1、声明变长数组,并输出其结果 scott@CNMMBO>...ERROR at line 1: ORA-22814: attribute or element value is larger than specified in type -->修改变长数组元素的数据长度到

    90020

    plsqldev使用指南

    ,因为我最关心的是表结构和数据,但是双击后这两件事情都没有发生,也许默认响应是高手们需要的,但对我来说查看数据和表结构是最主要的,其他的我不关心。...没搞清楚的两个功能:Analyze、VALID 7、SQL Window中根据光标位置自动选择语句 设置方法:Preferences –> Window Types –> SQL Window,将...有时由于PLD识别错误,右键点击对象并不能出来正确的菜单,可以在对象所在的DDL或DML语句的前面,加上分号,这样PLD就能正确的判断出对象的类型 2、Select for Update 有时我们需要把一些数据导入数据库中...下面介绍一下如何从Excel中提取文本插入到数据库中我们的Excel文件中有三列:在数据库中建立临时表:create table t1 (cino varchar2(100), contno varchar2...5、Copy to Excel 在SQL Window中执行Select语句,在结果出来以后,右键点击下面的数据区,选择Copy to Excel,可以把数据区的记录原样拷贝到Excel中。

    2.4K10

    Oracle使用总结之异常篇

    当然了,PL/SQL编译错误不能通过PL/SQL异常处理来处理,因为这些错误发生在PL/SQL程序执行之前。...1.1 异常处理概念 异常情况处理(EXCEPTION)是用来处理正常执行过程中未预料的事件,程序块的异常处理预定义的错误和自定义错误,由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会自动终止整个程序运行...试图为null 对象的属性赋值 ORA-6531 Collection-is-null 试图将Exists 以外的集合(collection)方法应用于一个null pl/sql 表上或varray上...用户自定义异常由开发者显示定义,在PL/SQL块中传递信息以控制对于应用的错误处理。 每当PL/SQL违背了ORACLE原则或超越了系统依赖的原则就会隐式的产生内部异常。...  dup_val_on_index ora-00001  -1  对于数据库表中的某一列,该列已经被限制为唯一索引,程序试图存储两个重复的值   value_error ora-06502  -6502

    2K60

    关于直方图统计信息的两个有趣的知识点

    有朋友问了我如下这样一个问题,最后的解决过程挺有意思的,让我发现了直方图统计信息里我之前没有注意到的两个知识点,这里跟大家分享一下。...,表T1的OBJECT_ID是104192: SQL> select object_id from dba_objects where owner=’SCOTT’ and object_name=’...,Oracle在自动收集直方图统计信息的时候也不会对user_id收集直方图统计信息: 现在我们来验证一下上述理论,往表T1中插入一条记录,使得user_id的distinct值的数量小于表T1的数据量...先把之前对user_id列手工指定bucket数量收集的直方图统计信息删掉: 对表T1插入一条user_id列的值和现有值重复的记录: SQL> insert into t1 select * from...总结 通过这篇文章,我们介绍了如下两个关于直方图统计信息的有趣知识点: 1、如果目标列的distinct值的数量和目标表的数据量相同,即使该目标列在SYS.COL_USAGE$中有使用记录,Oracle

    94060
    领券