0

我正在尝试在 Oracle Express Edition 编辑器中运行一个程序。当我执行程序时,我得到一个错误

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

谁能帮我理解为什么我会出错以及如何修复代码?

VARIABLE gvn_total_salary NUMBER;
DECLARE
   vn_base_salary NUMBER := 3000;
   vn_bonus NUMBER := 1000;
BEGIN
   :gvn_total_salary := vn_base_salary + vn_bonus;
END;

我得到的输出

ORA-06502: PL/SQL: numeric or value error: character string buffer too small 


Run By SYSTEM 
Parsing Schema SYSTEM 
Script Started Thursday, April 26, 2012 
 3 seconds ago 
Elapsed time 0.01 seconds 
Statements Processed 1 
Successful 0 
With Errors 1 
4

2 回答 2

1

通过绑定变量的声明,该代码在 SQL*Plus 中对我来说可以正常工作

SQL> VARIABLE gvn_total_salary NUMBER;
SQL> DECLARE
  2     vn_base_salary NUMBER := 3000;
  3     vn_bonus NUMBER := 1000;
  4  BEGIN
  5     :gvn_total_salary := vn_base_salary + vn_bonus;
  6  END;
  7  /

PL/SQL procedure successfully completed.

SQL> print gvn_total_salary

GVN_TOTAL_SALARY
----------------
            4000

您可以使用 SQL*Plus 连接到数据库并运行相同的东西吗?

于 2012-04-26T16:53:36.007 回答
0

你实际上想要完成什么?该脚本不会在 sqlplus 或 Oracle Developer 或我能想到的任何 PL/SQL 执行环境中执行。实际上,我不明白您如何传递绑定变量 :gvn_total_salary 以及如何获得您所描述的错误。您应该得到未声明的“绑定变量 gvn_total_salary”之类的内容。

于 2012-04-26T16:37:51.303 回答