我正在尝试在Oracle Express版编辑器中运行程序。当我执行程序时,出现错误
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
答案 0 :(得分:1)
使用bind变量的声明,该代码在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连接到数据库并运行相同的东西吗?
答案 1 :(得分:0)
你到底想要完成什么?此脚本不会在sqlplus或Oracle Developer中执行,也不会在我能想到的任何PL / SQL执行环境中执行。实际上,我不明白你如何传递绑定变量:gvn_total_salary以及如何获得你所描述的错误。你应该得到类似“bind variable gvn_total_salary”之类的东西。