2012-09-27 104 views
1

我正在使用TOAD編寫Oracle過程。我使用execute語句執行了該過程。但我無法得到結果。而不是隻有錯誤。請幫助如何在TOAD中運行該程序。我是新來的蟾蜍和甲骨文。在TOAD中執行Oracle過程

程序在Oracle

create or replace procedure pro_dndtesting(phone number)is 
begin 
select FLD_PHONENUMBERS from smsdnd_tbl where FLD_PHONENUMBERS=phone; 
end ; 
/

執行過程如下

exec procedure pro_dndtesting(9865015695) 

error 

ORA-06550: line 1, column 7: 
PLS-00201: identifier 'PRO_DNDTESTING' must be declared 
ORA-06550: line 1, column 7: 
PL/SQL: Statement ignored 

回答

5

只是爲了澄清:不存在 「甲骨文蟾蜍」 沒有這樣的事。 Oracle是一個RDBMS,而TOAD是Oracle數據庫的客戶端。

您的過程不會按照您所寫的那樣進行編譯,因爲您沒有爲SELECT提供INTO子句(因爲PL/SQL--與普通SQL相反 - 需要「目標」作爲SELECT的結果);試試這個:

create or replace procedure pro_dndtesting(phone number)is 
    l_value smsdnd_tbl.fld_phonenumbers%type; 
begin 
    select FLD_PHONENUMBERS 
    into l_value 
    from smsdnd_tbl 
    where FLD_PHONENUMBERS=phone; 
end ; 

至於你得到的錯誤:

是否使用定義的程序,把它同一個模式(=用戶)?

你從一個匿名的PL/SQL塊像

begin 
    pro_dndtesting(9865015695); 
end; 
+0

嘗試感謝üsomuch烏拉圭回合回覆 – vps