【发布时间】:2013-06-06 05:55:15
【问题描述】:
我编写了一个简单的 Oracle 函数,称为测试,没有返回字符串的参数。当我尝试从我的 .NET 应用程序中调用它时,出现错误:
System.Data.OracleClient.OracleException:
ORA-06550:第 1 行,第 1 列 7:" "PLS-00221: 'TESTING2' 不是过程或未定义"。
当我将其更改为“从双重选择测试()”并将 CommandType 更改为文本时,它可以工作。我错过了什么?
Dim oracleConn As OracleConnection = CreateConnection(<connection info here>)
Dim oracleCmd As New OracleCommand()
oracleCmd.Connection = oracleConn
'oracleCmd.CommandText = "SELECT TESTING2() FROM DUAL" 'this works
oracleCmd.CommandText = "TESTING2" 'this does not work
oracleCmd.CommandType = CommandType.StoredProcedure
'oracleCmd.ExecuteReader() 'also tried this
Dim tmpVar As String = oracleCmd.ExecuteScalar()
create or replace FUNCTION testing2
RETURN VARCHAR2
AS
begin
return 'hello';
end;
【问题讨论】:
-
您是否已为您用于登录 oracle 服务器的用户授予对该存储过程的执行权限?你在包中定义了一个存储过程吗?
-
我确实为分配给我的用户的所有角色执行了授权。我也尝试将该函数作为包的一部分调用,但同样的错误。
标签: asp.net vb.net oracle stored-procedures plsql