2012-04-26 43 views
0

我想在Oracle Express Edition編輯器中運行一個程序。當我執行程序時,我得到一個錯誤訪問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在哪裏以及如何定義? – 2012-04-26 16:28:50

+0

哦對不起。它已經錯過了。它被定義爲綁定變量--- DECLARE vn_base_salary NUMBER:= 3000; vn_bonus NUMBER:= 1000; BEGIN :gvn_total_salary:= vn_base_salary + vn_bonus; END; – 2012-04-26 16:43:08

+0

雖然我試圖執行它,我得到執行之前本身作爲--- 腳本名稱示例綁定 創建於2012年04月26日10:20:22由SYSTEM 更新於2012年4月26日10 :20:59 PM由SYSTEM 語句數1個 腳本的字節大小165 行號未知聲明 1個變量gvn_total_salary NUMBER – 2012-04-26 16:52:54

回答

0

什麼是你真正想實現什麼?這個腳本不會在sqlplus或Oracle Developer或我能想到的任何PL/SQL執行環境中執行。事實上,我不明白你是如何傳遞綁定變量的:gvn_total_salary以及你如何得到你描述的錯誤。你應該得到像「綁定變量gvn_total_salary」沒有聲明的東西。

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連接到數據庫並運行同樣的事情?

+0

是的,我可以在SQL * Plus命令行。但是我無法在Oracle Express Edition編輯器中完成它(在登錄後在數據庫主頁中打開的瀏覽器中) – 2012-04-26 16:59:40