2011-07-26 24 views
0

我想從Microsoft的WebMatrix中使用WebMatrix.Data執行一個oracle存儲過程。我可以用正常的select語句獲得數據,但是我不能爲我的生活弄清楚如何執行oracle proc。它不像我知道的T-SQL proc那樣執行。請幫忙!如何從WebMatrix調用Oracle存儲過程?

我試圖讓單個值回來。我只是想證明我可以通過webmatrix.data訪問oracle存儲過程。這是一個查詢,所以我不確定db.Execute會工作,因爲這是針對非查詢的。

下面的代碼:

CREATE OR REPLACE PROCEDURE COUNT_JOB_HISTORY 
(
    reccount OUT NUMBER 
) 
IS 
    BEGIN 
    SELECT COUNT(*) INTO reccount 
    FROM JOB_HISTORY; 
    END COUNT_JOB_HISTORY; 

下面是Net代碼

public static dynamic GetJobHistoryCount() 
    { 
     var db = Database.OpenConnectionString(connectionString, providerName); 

     var jobs = db.QueryValue("exec COUNT_JOB_HISTORY(:0)", "count"); 

     return jobs; 
    } 

它炸燬作爲ORA-00900:無效的SQL語句

謝謝!

回答

1

你需要使用db.Execute()(見http://msdn.microsoft.com/en-us/library/webmatrix.data.database.execute%28v=vs.99%29.aspx)...

Regardings過程本身和處理使用參數/結果就很難說,因爲你沒有提供像

究竟做了足夠的信息程序返回?一個值?一排?一個光標?

的OP後

編輯 - 顯示存儲過程:

每一個存儲過程是一個「非查詢」 - 我從來沒有使用過的WebMatrix WebMatrix中不知道該存儲過程中發生了什麼事情...... ......所以這只是一種猜測:

int reccount = 0; 
db.Execute ("COUNT_JOB_HISTORY", reccount); 


或許

db.Execute ("COUNT_JOB_HISTORY", ref reccount); 

EDIT 2 - 闖闖:

db.Execute ("BEGIN COUNT_JOB_HISTORY(:0); END;", reccount); 
+0

您好!我編輯我的原始問題是更具體。希望這可以幫助!再次感謝您提供的任何幫助 – cpeele00

+0

請參閱我的編輯以執行SP – Yahia

+0

Yahia,謝謝但它仍然會拋出同樣的錯誤。 :-( – cpeele00