2016-10-19 75 views
0
using (var command = new OracleCommand(sqlText, oraConnection) { CommandType = CommandType.StoredProcedure }) 
       { 
        command.BindByName = true; 
        var parameters = command.Parameters; 
        parameters.Clear(); 
        parameters.Add("p_date", OracleDbType.Date, ParameterDirection.Input).Value = DateTime.Now; 
        command.ExecuteNonQuery(); 
       } 

這是我在VS15中的代碼。我正在嘗試執行存儲過程並將唯一參數作爲日期傳遞。ORA-06550當試圖在oracle中運行存儲過程c#

create or replace procedure cwi_pat_deductions_export 
(
     :p_date date 
) 
is 

    v_count number; 

這是存儲過程的開始。我得到了Oracle錯誤:第1行第7行的ORA-06550(在「CREATE」之後的右邊)。我不是貿易方面的sql開發者,所以我很努力地看到錯誤在哪裏。我不覺得它是在我的最後(c#端),但它很好(我們的sql開發人員堅持認爲它必須是我的一個問題,因爲存儲過程在PlSql Developer中編譯並運行良好)。

你不允許使用Create或replace來啓動存儲特效嗎?我認爲這是標準。

+0

'sqlText'的值是什麼?你想調用存儲過程還是創建它? –

+0

sqltex是存儲過程 –

+0

也用於代替沒有工作給誰建議它(但我欣賞的嘗試) –

回答

2

當您想要調用它時,您不會傳遞過程的完整​​文本。 保存的程序點在於它已經存儲在數據庫中。

如果要調用存儲過程,則參數sqlText應該只是存儲過程名稱cwi_pat_deductions_export。如果這不起作用,並且出現invalid identifier錯誤,請嘗試在存儲過程的所有者之前使用該名稱,例如some_schema.cwi_pat_deductions_export

+0

。每天學習新東西。 –

+0

現在我得到「不是所有的變量綁定」,當我更改sqltext爲: –

+0

「CW.cwi_cwi_pat_deductions_export(:p_date)」 –