当前位置:网站首页>ORA-06512 数字或值错误字符串缓冲区太小
ORA-06512 数字或值错误字符串缓冲区太小
2022-08-03 09:18:00 【m0_67394230】
ORA-06512 网上最容易查到的解释为
Cause
This error is caused by the stack being unwound by unhandled exceptions in your PLSQL code.
The options to resolve this Oracle error are:
- Fix the condition that is causing the unhandled error.
- Write anexception handlerfor this unhandled error.
- Contact your DBA for help.
The ORA-06512 error message indicates the line number of the unhandled error in the PLSQL code. This is quite useful when troubleshooting.
举个栗子来了解此异常
创建存储过程TestProc,参数v_number是一个长度为2的数字, 存储过程中将100赋值给v_number,执行存储过程后提示异常,ORA-06502表示发生的错误;ORA-06512表示发生的行数,本例中因为100的是3位数字,v_number只能处理2位数字
SQL> CREATE OR REPLACE PROCEDURE TestProc AS
2 v_number number(2);
3 BEGIN
4 v_number := 100;
5 END;
6 /
Procedure created
SQL> execute TestProc();
begin TestProc(); end;
ORA-06502: PL/SQL: 数字或值错误 : number precision too large
ORA-06512: 在 "BOSS643.TESTPROC", line 4
ORA-06512: 在 line 2
针对上述问题,可以重新定义数值长度解决这个问题,v_number定义为3
SQL> CREATE OR REPLACE PROCEDURE TestProc AS
2 v_number number(3);
3 BEGIN
4 v_number := 100;
5 END;
6 /
Procedure created
SQL> execute TestProc();
PL/SQL procedure successfully completed
SQL>
如果将数值型修改成其他类型后也是同样的, 例如字符串,v_str设置为处理长度为10的字符串, 当给v_str赋值大于长度10的字符串后, 提示数字或者值错误,符串缓冲区太小
SQL> CREATE OR REPLACE PROCEDURE TestProc2 AS
2 v_str varchar2(10);
3 BEGIN
4 v_str := 'This is a test string';
5 END;
6 /
Procedure created
SQL> execute TestProc2();
begin TestProc2(); end;
ORA-06502: PL/SQL: 数字或值错误 : character string buffer too small
ORA-06512: 在 "BOSS643.TESTPROC2", line 4
ORA-06512: 在 line 2
重新定义varchar2长度
SQL> CREATE OR REPLACE PROCEDURE TestProc2 AS
2 v_str varchar2(512);
3 BEGIN
4 v_str := 'This is a test string';
5 END;
6 /
Procedure created
SQL> execute TestProc2();
PL/SQL procedure successfully completed
SQL>
当然你也可以自定义异常来处理,例如当出现异常后提示“数值越界” ,此方法将异常捕获提示更加明确,个人认为ORA-06502异常已经十分清楚了, 具体还看存储过程对应的需求是否有明确提示需求
SQL> CREATE OR REPLACE PROCEDURE TestProc AS
2 v_number number(2);
3 BEGIN
4 v_number := 100;
5 EXCEPTION
6 WHEN OTHERS THEN
7 RAISE_APPLICATION_ERROR(-20001, '数值v_number越界');
8 END;
9 /
Procedure created
SQL> exec TestProc();
begin TestProc(); end;
ORA-20001: 数值v_number越界
ORA-06512: 在 "BOSS643.TESTPROC", line 7
ORA-06512: 在 line 2
相关资源:
Oracle Database Documentation - Oracle Database
PL/SQL User’s Guide and Reference – Contents
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- 多媒体数据处理实验1:算术编码
- 110道 MySQL面试题及答案 (持续更新)
- Machine learning (formula derivation and code implementation)--sklearn machine learning library
- 【字节面试】word2vector输出多少个类别
- MySql的初识感悟,以及sql语句中的DDL和DML和DQL的基本语法
- STP普通生成树安全特性— bpduguard特性 + bpdufilter特性 + guard root 特性 III loopguard技术( 详解+配置)
- SAP Analytics Cloud 和 SAP Cloud for Customer 两款 SaaS 软件的集成
- gpnmb+ gpnmb-AT2 cell idling mapping Epithelial cell idling mapping
- 响应式布局经典范例——巨幅背景大标题
- 多线程下的单例模式
猜你喜欢

STP普通生成树安全特性— bpduguard特性 + bpdufilter特性 + guard root 特性 III loopguard技术( 详解+配置)

mysql数据库配置性能调优

【LeetCode】112.路径总和

Flink Yarn Per Job - Submit application

SAP Analytics Cloud 和 SAP Cloud for Customer 两款 SaaS 软件的集成

行业 SaaS 微服务稳定性保障实战

MySQL8重置root账户密码图文教程

10分钟带你入门chrome(谷歌)浏览器插件开发

scala 并行集合、并行并发、线程安全问题、ThreadLocal

Path Prefixes (倍增!树上の二分)
随机推荐
015-Balanced binary tree (1)
bihashSummary
gpnmb+ gpnmb-AT2 cell idling mapping Epithelial cell idling mapping
【LeetCode】老虎证券面试-括号嵌套且满足优先级
chrome F12 network 保留之前请求信息
多媒体数据处理实验4:LSH索引
MySQL——几种常见的嵌套查询
Industry SaaS Microservice Stability Guarantee Actual Combat
【LeetCode】112. Path sum
110 MySQL interview questions and answers (continuous updates)
flutter 应用 抓包
MySQL-TCL语言-transaction control language事务控制语言
LINGO 18.0 software installation package download and installation tutorial
【论文笔记】一种基于启发式奖赏函数的分层强化学习方法
SQL Daily Practice (Nioke New Question Bank) - Day 5: Advanced Query
【LeetCode】622.设计循环队列
mysql的union和union all
ClickHouse 数据插入、更新与删除操作 SQL
Path Prefixes (倍增!树上の二分)
Flink Yarn Per Job - 提交应用