2009-10-20 25 views
12

這裏是:這個PL/SQL有什麼問題?綁定變量*不宣

declare 
    v_str1 varchar2(80); 
begin 
    v_str1 := 'test'; 
    print :v_str1; 
end 

當我運行它只是在SQL工作表中使用的SQLDeveloper我得到這個:

Bind Variable "v_str1" is NOT DECLARED 
anonymous block completed 
+1

什麼是「印刷」?我知道沒有該名稱的PL/SQL命令。 – 2009-10-21 13:53:02

回答

5

明白了:

set serveroutput on 

declare 
    v_str1 varchar2(80);  
begin 
v_str1 := 'test'; 
dbms_output.put_line(v_str1); 
end; 

More info here.

0

嘗試

declare 
    v_str1 varchar2(80); 
begin 
    v_str1 := 'test'; 
    print v_str1; 
end 
+0

給出:ORA-06550 – NitroxDM 2009-10-21 00:47:32

3

綁定變量的形式語法:VARNAME主要用於SQL * Plus(我認爲動態SQL的綁定變量除外)。 對於SQL *開發,PL/SQL開發人員,或其他應用程序,有 「&」 進行變量替換:

 

declare 
    v_str1 varchar2(80); 
begin 
    v_str1 := &v_str; 
    print v_str1; 
end 
 

編輯: 我的壞,爲Oracle SQL代碼*開發人員應該已經:


set serveroutput on; 
declare 
    v_str1 varchar2(80); 
begin 
    v_str1 := '&v_str'; 
    dbms_output.put_line(v_str1); 
end; 

您必須選擇所有內容並執行它。結果將顯示在「腳本輸出」面板中。

+0

它提示輸入V_str的值,然後拋出一個錯誤ORA-06550。如果您將其更改爲打印:V_str1;你會得到綁定變量「v_str1」不是DECLARED。 – NitroxDM 2009-10-21 00:46:23

2

print不是PLSQL功能。如果你想獲得的輸出,你可以使用dbms_output.put_line(v_str1);

set serveroutput on;  
declare v_str1 varchar2(80); 
begin 
    v_str1 := 'test'; 
    dbms_output.put_line(v_str1); 
end; 

:v_str1是綁定變量,但你必須在PLSQL沒有申報。當你聲明它時,你必須使用VARIABLE關鍵字。

相關問題