ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小
发布时间:2020-05-24 10:26:27 所属栏目:MsSql 来源:互联网
导读:我尝试了以下代码的不同方式,比如取出while或if,但是当我把它们放在一起时(if和while),我总是得到错误… undefine numeroset serveroutput onaccept numero prompt Type # between 100 and 999: declare i number:=1; a char(25); b char(1);
|
我尝试了以下代码的不同方式,比如取出while或if,但是当我把它们放在一起时(if和while),我总是得到错误… undefine numero
set serveroutput on
accept numero prompt 'Type # between 100 and 999: '
declare
i number:=1;
a char(25);
b char(1);
c varchar2(10);
d number;
begin
c := №
d := length(c);
b := substr(c,i,1);
while i <= d loop
if b = '1' then
a:= a||'one ';
end if;
i := i+1;
end loop;
dbms_output.put_line('The number is '||a);
end;
/
错误: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 13 06502. 00000 - "PL/SQL: numeric or value error%s" 通过更改我将变量“a”声明为: a varchar2(2000); 解决方法
是因为你声明一个字符串是一个固定的长度(比如说20),并且在你的代码中的某个时刻你给它赋一个长度超过你声明的值的值。 例如: myString VARCHAR2(20); myString :='abcdefghijklmnopqrstuvwxyz'; --length 26 会发生这样的错误 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Linux下将数据库从MySQL迁移到MariaDB的基础操作教程
- reporting-services – 我可以使用SQL Server 2008 R2在VS
- mysql-8.0.11-winx64.zip安装教程详解
- Redhat 6.5下MySQL5.6集群配置方法完整版
- sql-server – 在多个插入或更新周围使用事务的正确方法
- SQL SERVER T-SQL中使用正则表达式函数
- 必须会的SQL语句(一) 创建数据库与删除数据库
- sql-server – 将Float转换为Decimal(SQL Server)
- 数据库 – 表与视图与物化视图
- SQL Server Sql语句与存储过程查询数据的性能测试实现代码
