行错误:PL / SQL:SQL语句忽略。在创建/更换包体 [英] ERROR at line : PL/SQL: SQL Statement ignored. while creating/replacing package body
问题描述
我使用Visual Studio 2010 asp.net 4.5的Oracle 10.2.0.1。
这是我的仓库code检查用户凭据:
使用(为OracleConnection的OracleConnection =新BaseRepository()连接)
{
oracleConnection.Open();
的OracleCommand命令=新的OracleCommand(PACKAGE_ACCOUNT.USP_GET_USER_BY_CREDENTIALS,为OracleConnection);
command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(SP_CURSOR,OracleDbType.RefCursor,System.Data.ParameterDirection.Output);
command.Parameters.Add(SP_LOGIN_NAME,OracleDbType.Varchar2,50,登录名,System.Data.ParameterDirection.Input);
command.Parameters.Add(SP_LOGIN_PASSWORD,OracleDbType.Varchar2,50,Security.EncryptText(loginPassword),System.Data.ParameterDirection.Input); Mapper.CreateMap<的IDataReader,ApplicationUser>();
DataReader的= Command.ExecuteReader却(); //这里的例外出现。 清单< ApplicationUser> lstUsers = Mapper.Map<名单,LT; ApplicationUser>>(DataReader的);
返回lstUsers.FirstOrDefault();
}
这是包装规格:
CREATE OR REPLACE PACKAGE PACKAGE_ACCOUNT
如
TYPE T_CURSOR IS REF CURSOR;
程序USP_GET_USER_BY_CREDENTIALS(SP_CURSOR OUT T_CURSOR,SP_LOGIN_NAME IN VARCHAR2,SP_LOGIN_PASSWORD IN VARCHAR2);
END PACKAGE_ACCOUNT;
/
这是我的包体:
CREATE OR REPLACE PACKAGE BODY PACKAGE_ACCOUNT
如
程序USP_GET_USER_BY_CREDENTIALS(SP_CURSOR OUT T_CURSOR,SP_LOGIN_NAME IN VARCHAR2,SP_LOGIN_PASSWORD IN VARCHAR2)
IS
开始
OPEN FOR SP_CURSOR
选择ApplicationUser。*,ORA_ROWSCN作为时间戳
从ApplicationUser
WHERELoginName将= SP_LOGIN_NAME
和LoginPassword= SP_LOGIN_PASSWORD
和请将isDeleted='N';
END USP_GET_USER_BY_CREDENTIALS;
END PACKAGE_ACCOUNT;
/
例外是:
ORA-04063:包体OPTIMUS_USER.PACKAGE_ACCOUNT有错误
ORA-06508:PL / SQL:无法找到程序单元被称为:OPTIMUS_USER.PACKAGE_ACCOUNT
ORA-06512:在1号线
我不知道问题出在哪里。
在运行在Oracle主页的包体脚本。它给出了错误:
错误在第5行:PL / SQL:SQL语句忽略
块引用>解决方案请检查OPTIMUS_USER架构所做的架构包含包PACKAGE_ACCOUNT或PACKAGE_ACCOUNT帐户模式属于任何其他模式。
I am using Visual Studio 2010 asp.net 4.5 Oracle 10.2.0.1.
This is my repository code for checking user credentials:
using (OracleConnection oracleConnection = new BaseRepository().Connection) { oracleConnection.Open(); OracleCommand command = new OracleCommand("PACKAGE_ACCOUNT.USP_GET_USER_BY_CREDENTIALS", oracleConnection); command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add("SP_CURSOR", OracleDbType.RefCursor, System.Data.ParameterDirection.Output); command.Parameters.Add("SP_LOGIN_NAME", OracleDbType.Varchar2, 50, loginName, System.Data.ParameterDirection.Input); command.Parameters.Add("SP_LOGIN_PASSWORD", OracleDbType.Varchar2, 50, Security.EncryptText(loginPassword), System.Data.ParameterDirection.Input); Mapper.CreateMap<IDataReader, ApplicationUser>(); dataReader = command.ExecuteReader(); // exception arises here. List<ApplicationUser> lstUsers = Mapper.Map<List<ApplicationUser>>(dataReader); return lstUsers.FirstOrDefault(); }
this is package specification:
CREATE OR REPLACE PACKAGE PACKAGE_ACCOUNT AS TYPE T_CURSOR IS REF CURSOR; PROCEDURE USP_GET_USER_BY_CREDENTIALS(SP_CURSOR OUT T_CURSOR, SP_LOGIN_NAME IN VARCHAR2, SP_LOGIN_PASSWORD IN VARCHAR2); END PACKAGE_ACCOUNT; /
this is my package body:
CREATE OR REPLACE PACKAGE BODY PACKAGE_ACCOUNT AS PROCEDURE USP_GET_USER_BY_CREDENTIALS(SP_CURSOR OUT T_CURSOR, SP_LOGIN_NAME IN VARCHAR2, SP_LOGIN_PASSWORD IN VARCHAR2) IS BEGIN OPEN SP_CURSOR FOR SELECT "ApplicationUser".*, ora_rowscn as TimeStamp FROM "ApplicationUser" WHERE "LoginName" = SP_LOGIN_NAME AND "LoginPassword" = SP_LOGIN_PASSWORD AND "IsDeleted" = 'N'; END USP_GET_USER_BY_CREDENTIALS; END PACKAGE_ACCOUNT; /
Exception is :
ORA-04063: package body "OPTIMUS_USER.PACKAGE_ACCOUNT" has errors ORA-06508: PL/SQL: could not find program unit being called: "OPTIMUS_USER.PACKAGE_ACCOUNT" ORA-06512: at line 1
I have no idea where the problem is.
While running the package body script in oracle home page. It gives error:
ERROR at line 5: PL/SQL: SQL Statement ignored.
解决方案Please check OPTIMUS_USER schema does the schema contains the package PACKAGE_ACCOUNT or the PACKAGE_ACCOUNT account schema belongs to any other schema.
这篇关于行错误:PL / SQL:SQL语句忽略。在创建/更换包体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!