问题描述
BackFill = "EXEC SYSDBA.BACKFILL('64907RM9')";
_context.Database.ExecutesqlRaw(BackFill);
我已经在 Oracle sql Developer 中尝试了该语句,并且它有效。但是,当我尝试通过 ExecutesqlRaw() 运行它时,Oracle 抱怨抛出一个 ORA-00900 无效的 sql 语句
我做错了什么?谢谢!
更新:
begin SYSDBA.BACKFILL('64907RM9'); end;
现在,我得到标识符 SYSDBA.BACKFILL 必须声明...但它是。
解决方法
这意味着用户 SYSDBA 不拥有 BACKFILL 过程。如果您万一使用双引号和小写/混合大小写创建它,您将不得不再次这样做(即使用双引号引用它并匹配字母大小写)。
否则,如果您以另一个用户(不是 SYSDBA)的身份运行它,请确保 SYSDBA 授予您对它的 EXECUTE 权限。