ORA-01422: exact fetch returns more than requested 神奇的错误,困扰了我一个下午. 问题描述:明明只有一行记录,结果是报了多条记录的错误.令我百思不得其解, 检查无数遍sql没有问题. 解决方法:因为起的变量名字与列名一致. select r.stu_type_cd INTO stu_type_cd from r.stu r where r.stu_id = stu_id; 这里出现了两个重名的地方:r.stu_type_cd 与stu_type…
持续更新中,可参见https://hnuhell.gitbooks.io/oracle_errmg/content/或https://hnuhell.github.io/Oracle_ERRMG/上的页面. ORA-00000 to ORA-00877 ORA-00000: 正常的成功的完成(操作) ORA-00000: normal, successful completion 原因1: 正常执行完成.[部分验证] Normal exit. 分析: 此异常多数为程序没有执行SQL语句或者说成功…
ORACLE 异常错误处理 本篇主要内容如下: 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4  用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发异常错误 5.2.2 在声明部分引发异常错误 5.3 异常错误处理编程 5.4  在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件.一个优秀的程序都应该能够正确处理各种…
本文转自:http://www.cnblogs.com/soundcode/archive/2012/01/10/2318385.html 本篇主要内容如下: 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4  用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发异常错误 5.2.2 在声明部分引发异常错误 5.3 异常错误处理编程 5.4  在 PL/SQL 中使用 SQLCODE, SQLERRM…
5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4  用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发异常错误 5.2.2 在声明部分引发异常错误 5.3 异常错误处理编程 5.4  在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件.一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复.任何ORACLE…
Oracle sqlnet.ora配置 sqlnet.ora的作用(官网指出的)   www.2cto.com 1.限制客户端访问(如指定客户端域为不允许访问) 2.指定命名方法(local naming,directory nameing...)的优先级 3.启用日志及跟踪(log and trace)功能 4.通过特定进程来路由客户端连接 5.配置外部命名(第三方连接程序,如c语言写的)参数 6.配置Oracle的高级安全 7.使用协议特定的参数限制对数据库的访问 sqlnet配置文件的存放…
5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4  用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发异常错误 5.2.2 在声明部分引发异常错误 5.3 异常错误处理编程 5.4  在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件.一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复.任何ORACLE…
分类: Oracle 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发异常错误 5.2.2 在声明部分引发异常错误 5.3 异常错误处理编程 5.4 在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件.一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复…
  oracle tnsnames.ora文件用法说明 CreationTime--2018年8月10日08点32分 Author:Marydon 1.用途 oracle客户端所需要的一个文件,通过该文件可以配置数据库的连接地址,配好后,我们不用再输入完整的oracle地址了, 直接用简易的字符串代替. 如:本该是数据库地址为:127.0.0.1:1521/orcl,通过设置tnsnames.ora,为它起的别名为:dataBaseAddr,就可以用dataBaseAddr代替了. 2.用法 可…
今天在写存储过程的时候,老是报一个错.如下,记录下来,以供日后查阅. 报错:  Oracle 异常 ORA-01861: literal does not match format string(字符串格式不匹配) 原因: 如果直接按照字符串方式,或者,直接使用'2013-2-26 11:07:25',没有指定日期格式,就会报错 正解: 必须指定日期格式,如下: to_date('2013-2-26 11:07:25' , 'yyyy-mm-dd hh24:mi:ss')…
一.概述异常分成三大类:预定义异常.非预定义异常.自定义异常处理方法分为:直接抛出异常.内部块处理异常.游标处理异常 预定义异常:由PL/SQL定义的异常.由于它们已在standard包中预定义了,因此,这些预定义异常可以直接在程序中使用,而不必再定义部分声明. 非预定义异常:用于处理预定义异常所不能处理的Oracle错误. 自定义异常:用户自定义的异常,需要在定义部分声明后才能在可执行部分使用.用户自定义异常对应的错误不一定是Oracle错误,例如它可能是一个数据错误. 三种异常中,预定义与非…
场景: .Net程序调用Oracle方法 command.ExecuteNonQuery()执行存储过程;弹出如标题异常信息. 存储过程有4个输入参数,一个输出参数.一旦执行到给输出参数赋值的时候就报错.但在Plsql环境下调度,是正常的. 分析: 查阅各帖子,都说是变量长度不够,但设置也无果. 后来,怀疑是不是设置参数顺序有问题,调整,搞定. 解决: 存储过程中定义的参数,第一个为out,虽然在设置参数时,用了参数名,但好像没起什么作用.所以,把输出参数第一个设置,与定义顺序一致,就OK了.…
路径 $ORACLE_HOME/network/admin sqlnet.ora(客户及服务器端) 作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串 Tnsnames.ora(客户及服务器端)    这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似 NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中…
命名的系统异常                  产生原因 access_into_null 未定义对象 CASE_NOT_FOUND CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时 COLLECTION_IS_NULL 集合元素未初始化 CURSER_ALREADY_OPEN 游标已经打开 DUP_VAL_ON_INDEX 唯一索引对应的列上有重复的值 INVALID_CURSOR 在不合法的游标上进行操作 INVALID_NUMBER 内嵌的 SQL 语句不能将字符转换为…
一.oracle预定义异常 命名的系统异常 产生原因 Oracle Error SQLCODE Value ACCESS_INTO_NULL 未定义对象 ORA-06530  -6530 CASE_NOT_FOUND CASE 中若未包含相应WHEN,并且没有设置 ELSE 时 ORA-06592  -6592 COLLECTION_IS_NULL 集合元素未初始化 ORA-06531 -6531 CURSER_ALREADY_OPEN 游标已经打开 ORA-06511 -6511 DUP_VA…
自定义例外是指由PL/SQL开发人员所定义的例外.预定义例外和非预定义例外都和Oracle错误有关,并且出现Oracle错误时会隐含的处罚相应例外:而自定义例外与Oracle错误没有任何关联,它是由开发人员为特定情况所定义的例外. 看一看以下PL/SQL块的运行. declare e_integrity exception; pragma exception_init(e_integrity,-2291); begin update emp set deptno=&dno where empno…
# listener.ora Network Configuration File: /oracleDB/product//db_1/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /data01/oracleDB/product//db_1…
1.解决问题:TNS或者数据库不能登录.      最简单有效方法:使用oracle系统提供的工具 netca 配置(把原来的删除掉重新配置)     $netca  2.然而,仍有疑问:如何指定'listener.ora'存放的目录?不要默认目录($ORACLE_HOME/network/admin) 在 '.profile' 中加入 TNS_ADMIN=/f01/oracle11/app/oracle/product/8.0.6/network/admin export TNS_ADMIN…
Execute_Query command is used to fetch all the records for current database data block in Oracle Forms, actually its executes query in current data block. Syntax EXECUTE_QUERY; Clears the current block, opens a query, and fetches a number of selected…
参考网上整理了重要的配置文件 db_name = "51cto"   一个数据库标识符,应与CREATE DATABASE 语句中指定的名称相对应. instance_name = 51cto在多个例程使用相同服务名的情况下,用来唯一地标识一个数据库例程. INSTANCE_NAME 不应与 SID 混淆,它实际上是对在一台主机上共享内存的各个例程的唯一标识. service_names =  51cto为 Net8 监听程序可用于识别一个服务 (如:复制环境中的一个特定数据库) 的例…
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPR…
安装过ORACLE的都知道,oracle安装时需要进行配置,这个配置可以在客户端的企业管理器一步一步进行,或者直接拷贝一个tnsnames.ora文件到安装目录下(c:\app\Administrator\product\11.2.0\client_1\network\admin). 为什么要配置这个文件?这个文件的作用又是什么? SQL SERVER你使用客户端的时候,会自动搜过局域网内的在线的数据库,你就可以清楚知道哪台可以连.但ORACLE不同,不能像SQL SERVER列出来.ORACL…
oracle数据库需要配置tns链接 这里我发现了一个问题: 在D:\Oracle\product\10.1.0\Client_3\NETWORK\ADMIN 目录中配置链接字符串的时候要特别注意: MY_DATABASE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS )) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) ) 1,在每个配置字符串的前面不能有空格 2,两个配置字符串之间需要一个空行来隔开. 这两者必须配置正…
--一异常处理的代码 --sqlcode 异常编号 --sqlerrm 信号字符串 /* 在plsql 块中格式 Declare 变量 Begin 代码块 EXCEPTION when 异常的名称 then 如生上面的异常时做的具体工作. End; */ set serveroutput on; create or replace procedure pr12 as --定义一个int变liang v_age integer; v_name ); begin v_age:; --通过select…
场景重现 新安装的 kettle(pdi-ce-7.0.0.0-25) 连接 Oracle 11G R2 报错如下: 解决办法 到 Oracle 官网 JDBC Downloads 下载对应的 ojdbc6.jar - 官网老版本的好像不好下载 或者可以在你安装的 Oracle 目录下找到 D:\app\xxx\product\11.2.0\client_1\jdbc\lib\ojdbc6.jar 扔到 kettle 的 lib 目录下, 重启 kettle 即可. 参考 Kettle 连接 o…
原因: Oracle表空间为0,没有分配空间内存. 解决办法在代码框里: 1. 查看用户表空间的限额 select * from user_ts_quotas; max_bytes字段就是了 -1是代表没有限制,其它值多少就是多少了. 2. 不对用户做表空间限额控制: GRANT UNLIMITED TABLESPACE TO ***(用户); ----------------------------------------------------------------------------…
一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟.select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; 二.另要以24小时的形式显示出来…
场景描述: 在关闭数据库的时候,命令没有打全,导致数据库没有正常关闭 解决办法: 重新建立个连接,然后切换到oracle用户 执行强制关闭数据库: OK 问题解决,不过生产环境 还是不推荐 shutdown abort 强制关库.…
工作环境中的集群迁移之后,oracle出了挺多问题,最开始一直没找到原因,后来发现做迁移的人是冷迁移的,且数据库节点是硬关机的,惊了( 表现症状有不能登陆,登录了不能操作等 第一个报的是 ORA-00214 : ??? '.../CONTROL01.CTL' ?? 8292532 '.../CONTROL02.CTL' ?? 8292528 ??? 这个是控制文件问题,手动用较新的备份文件(8292532)替换掉旧的在用的即可(8292528) 第二个是连接不上 ORA-01033:ORACLE…