2011-01-31 105 views
2

這是連接到Oracle數據庫的代碼。它在最後一行失敗:dbDataAdapter.Fill(dtResult);爲什麼我不能執行存儲過程? (OracleException被捕獲)

private object Execute(CommandType commandType, Common.DATA.SqlCommonExecutionType sqlCommonExecutionType, DbCommand dbCommand) 

dbc = dbConnection.CreateCommand(); 
dbc.CommandType = commandType; 
dbc.CommandText = dbCommand.CommandText; 
dbc.CommandTimeout = 3600; 

if (dbc.Connection.State == ConnectionState.Closed) 
    dbc.Connection.Open(); 

DataTable dtResult = new DataTable(); 
DbDataAdapter dbDataAdapter = dbProviderFactory.CreateDataAdapter(); 
dbDataAdapter.SelectCommand = dbc; 
dbDataAdapter.Fill(dtResult); 

錯誤是「OracleRxception被抓獲。?

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

我通過Oracle SQL訪問數據庫* Plus中爲什麼會出現這個錯誤是存儲過程缺少在數據庫端或者是我的代碼?如何解決這個任何想法?

+0

SQL代碼如何?至少要等到第1行第7列 – 2011-01-31 13:59:44

+0

OracleRxception ==> OracleException – 2011-01-31 14:11:39

回答

4

您可能需要在您的CommandText

Inste定義schema.package.storedprocedure(或schema.table)廣告:

select * from table 

用途:

​​

...這同樣適用於函數/存儲過程

如果CommandText中只包含了存儲過程:

storedprocedurename 

Try:

schema.package.storedprocedurename 
+1

我將研究此.... – 2011-01-31 15:33:17

1

此外,您可能希望使用公共同義詞。它通常是爲對象創建公共同義詞而不是明確使用所有者/模式方法的更好方法。這些對象的用戶不需要擔心使用這種方法的schema.someObject表示法。

相關問題