2011-12-06 91 views
0

我必須處理一些較老的EDW腳本,我認爲這些腳本在PL/SQL中,並且也從Oracle表中查詢了一些數據。但是他們有一些問題,聲明變量的部分,如圖中所示給出錯誤。我無法理解爲什麼?發生錯誤的PL/SQL腳本

下面是腳本的某一部分,

VARIABLE begin_exp_date varchar2(8) 
VARIABLE end_exp_date varchar2(8) 
VARIABLE begin_cal_key number 

Declare 
begin 
    :begin_exp_date := 'begin_exp_date'; 
    :end_exp_date := 'end_exp_date'; 
    :begin_cal_key := 'begin_cal_key'; 
end; 

這些線路產生錯誤ORA-00900:無效的SQL語句。

任何幫助?

回答

0

如果它確實是PL/SQL,它應該更喜歡這個

DECLARE 
    begin_exp_date varchar2(8); 
    end_exp_date varchar2(8); 
    begin_cal_key number; 
BEGIN 
    begin_exp_date := 'begin_exp_date'; 
    -- and so on 
END; 

你可以,如果你想在DECLARE節設置的恆定值的變量。請注意,您已經定義begin_cal_keyNUMBER所以不能指定字符串'begin_cal_key'

+0

是的,我知道這個語法,但我有的舊腳本也在工作(不知道哪個環境)與提到的問題。那麼他們認爲他們是否需要像DB2這樣的其他平臺? – Manish

1

如果你插入的SQL * Plus腳本,它會不ORA-00900錯誤執行。我想你在蟾蜍運行時收到了錯誤。