我正在从C#执行匿名PL / SQL块,但是我收到如下错误:
ORA-06550第10行,第41栏:PLS-00103:遇到符号"," 期待以下之一:
我的代码:
[HttpPost]
public ActionResult Edit(int? id)
{
var redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Profile", new { id = 0 });
return Json(new { Url = redirectUrl });
}
当命令执行时出现错误' cmd.ExecuteNonQuery();'
我认为我在匿名阻止中丢失了一些内容。
答案 0 :(得分:0)
p_id VARCHAR2;
这肯定是不正确的语法,会引发编译错误。
错误重现:
SQL> DECLARE
2 p_id VARCHAR2;
3 BEGIN
4 NULL;
5 END;
6 /
p_id VARCHAR2;
*
ERROR at line 2:
ORA-06550: line 2, column 8:
PLS-00215: String length constraints must be in range (1 .. 32767)
SQL>
因此,您必须在1 .. 32767 之间指定字符串长度约束。
<强>解决方案:强>
指定字符串变量所需的长度。
SQL> DECLARE
2 p_id VARCHAR2(20);
3 BEGIN
4 NULL;
5 END;
6 /
PL/SQL procedure successfully completed.
SQL>
open:refcur for select tob_type.benefit_id from dual;
您需要为 refcursor 声明绑定变量。
例如,
SQL> var r refcursor
SQL>
SQL> BEGIN
2 OPEN :r FOR SELECT empno,ename FROM emp;
3 END;
4 /
PL/SQL procedure successfully completed.
SQL> print r
EMPNO ENAME
---------- ----------
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER
14 rows selected.
SQL>