0

OracleExpressEditionエディタでプログラムを実行しようとしています。プログラムを実行すると、エラーが発生します

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 に答える