【发布时间】:2016-07-01 05:44:58
【问题描述】:
我的 PowerShell 2.0 代码:
$Cmd = New-Object System.Data.OracleClient.OracleCommand
$Conn = New-Object System.Data.OracleClient.OracleConnection
$Conn.Open()
$Cmd.Connection = $Conn
$Cmd.CommandType = [System.Data.CommandType]::StoredProcedure
$Cmd.CommandText = "WEAMFG.PF_MERCH_OLY_PKG.ALAN_TEST"
$Cmd.Parameters.Add("P_INPUT", [System.Data.OracleClient.OracleType]::VarChar)
$Cmd.Parameters["P_INPUT"].Value = "1"
$Cmd.ExecuteNonQuery()
$Conn.Close()
我的 Pl/Sql 代码:
PROCEDURE ALAN_TEST(P_INPUT VARCHAR2)
IS
vAnswer VARCHAR2(4000);
BEGIN
SELECT answer
INTO vAnswer
FROM weamfg.ASKTOM
WHERE ROWNUM = 1;
END ALAN_TEST;
执行存储过程会抛出错误信息:
使用“0”参数调用“ExecuteNonQuery”的异常:“ORA-06550: 第 1 行第 7 列:PLS-00306:错误的参数数量或类型 调用“ALAN_TEST”ORA-06550:第 1 行,第 7 列:PL/SQL:语句 忽略。
我在 Windows XP 机器上使用 .NET 3.5。有什么想法吗?
编辑:我可以执行一个没有输入参数的存储过程并返回一个没有错误的游标。
【问题讨论】:
标签: oracle powershell stored-procedures