2011-01-31 107 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表示法。

相关问题