2012-04-26 19 views
0

Oracleエクスプレス版エディタでプログラムを実行しようとしています。プログラムを実行すると、エラーが発生します。PL/SQLでバインド変数にアクセスする

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

gvn_total_salaryはどこでどのように定義されていますか? –

+0

ああ申し訳ありません。それは見逃してしまいました。それはバインド変数として定義されています--- DECLARE vn_base_salary NUMBER:= 3000; vn_bonus NUMBER:= 1000; BEGIN :gvn_total_salary:= vn_base_salary + vn_bonus; END; –

+0

実行する前に実行しようとしていますが、実行前に--- スクリプト名サンプルバインド 作成日04/26/2012 10:20:22 PM by SYSTEM 更新日04/26/2012 10 :20:システムによって59 PM ステートメントの数バイトで1つの スクリプトサイズ165 行番号不明声明 1 VARIABLE SQL * Plusコマンドラインでのgvn_total_salaryのNUMBER –

答えて

0

を取得していた出力?このスクリプトは、sqlplus、Oracle Developer、または私が考えることができる任意のPL/SQL実行環境では実行されません。実際、バインド変数をどのように渡しているのかわかりません:gvn_total_salaryと、あなたが記述しているエラーをどのように得ることができますか?あなたは宣言されていない "変数gvn_total_salaryをバインドする"のようなものを得るべきです。バインド変数の宣言で

1

、そのコードは* SQLで私のために正常に動作しますプラス

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を使用してデータベースに接続し、同じことを実行できますか?

+0

はい私はできます。しかし、私はそれをOracleエクスプレス版のエディタ(ログイン後にデータベースのホームページに開くブラウザで)で行うことはできません。 –

関連する問題