[英]Call Oracle Function From .NET As Stored Procedure
我編寫了一個簡單的Oracle函數,稱為Tests,它沒有返回字符串的參數。 當我嘗試從.NET應用程序調用它時,出現錯誤消息:
System.Data.OracleClient.OracleException:
ORA-06550:第1行第7列:““ PLS-00221:'TESTING2'不是過程或未定義”。
當我將其更改為執行“從double中選擇testing()”並將CommandType更改為Text時,它將起作用。 我想念什么?
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,因此現在無法對其進行測試,但是您告訴我此示例是否有效
Dim oracleConn As OracleConnection = CreateConnection(<connection info here>)
Dim oracleCmd As New OracleCommand()
oracleCmd.Connection = oracleConn
oracleCmd.CommandText = "TESTING2"
oracleCmd.CommandType = CommandType.StoredProcedure
Dim prm = new OracleParameter("returnvalue", OracleType.VarChar)
prm.Size = 1024
prm.Direction = ParameterDirection.ReturnValue
oracleCmd.Parameters.Add(prm)
oracleCmd.ExecuteNonQuery()
Console.WriteLine(prm.Value.ToString)
順便說一句,我想CreateConnection返回一個OPEN連接對嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.