Plsql 在PL/SQL中访问绑定变量

Plsql 在PL/SQL中访问绑定变量,plsql,buffer,bind-variables,ora-06502,Plsql,Buffer,Bind Variables,Ora 06502,我正在尝试在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 NUMB

我正在尝试在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 

你到底想完成什么?这个脚本不会在sqlplus、Oracle Developer或我能想到的任何PL/SQL执行环境中执行。事实上,我不明白您是如何传递bind变量的:gvn_total_salary,以及如何获得所描述的错误。您应该会得到类似“bind variable gvn\u total\u salary”这样的未声明代码。

通过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连接到数据库并运行相同的操作?

gvn\u total\u salary在何处以及如何定义?哦,抱歉。。它被错过了。定义为绑定变量---声明vn_base_薪资编号:=3000;vn_奖金编号:=1000;开始:gvn_总工资:=vn_基本工资+vn_奖金;结束;当我试图执行它时,我在执行之前得到了一个---脚本名示例绑定,由系统在2012年4月26日10:20:22 PM创建,由系统在2012年4月26日10:20:59 PM更新,由系统语句数1脚本大小(字节)165行号未知语句1变量gvn_total_salary numbers我可以在sql*plus命令行中使用。但我无法在Oracle express edition编辑器(在登录后在数据库主页打开的浏览器中)中完成此操作