java.sql.SQLException: ORA-01000: 超出打开游标的最大数
ORA-06512: 在"DBO.SP_SYSUSER_LOGIN", line 26
ORA-01000: 超出打开游标的最大数
ORA-06512: 在line 1DBO.SP_SYSUSER_LOGIN 过程如下:CREATE OR REPLACE PROCEDURE sp_SysUser_Login(
Result OUT INTEGER,
v_UserCode VARCHAR2,
v_Password VARCHAR2
)
AS
rowcnt INTEGER;
BEGIN
SELECT COUNT(*) INTO rowcnt FROM vw_sysuser WHERE code = v_UserCode;
IF rowcnt = 0 THEN
rollback work;
Result := -10301; ---不存在此用户
RETURN;
END IF;
SELECT COUNT(*) INTO rowcnt FROM vw_sysuser WHERE code = v_usercode AND password = v_password;
IF rowcnt = 0 THEN
rollback work;
Result := -10302; ---用户密码不对
RETURN;
END IF;
Result := 0;
commit work;
Exception
When Others Then
result := -19999;
Rollback work;END sp_SysUser_Login;
ORA-06512: 在"DBO.SP_SYSUSER_LOGIN", line 26
ORA-01000: 超出打开游标的最大数
ORA-06512: 在line 1DBO.SP_SYSUSER_LOGIN 过程如下:CREATE OR REPLACE PROCEDURE sp_SysUser_Login(
Result OUT INTEGER,
v_UserCode VARCHAR2,
v_Password VARCHAR2
)
AS
rowcnt INTEGER;
BEGIN
SELECT COUNT(*) INTO rowcnt FROM vw_sysuser WHERE code = v_UserCode;
IF rowcnt = 0 THEN
rollback work;
Result := -10301; ---不存在此用户
RETURN;
END IF;
SELECT COUNT(*) INTO rowcnt FROM vw_sysuser WHERE code = v_usercode AND password = v_password;
IF rowcnt = 0 THEN
rollback work;
Result := -10302; ---用户密码不对
RETURN;
END IF;
Result := 0;
commit work;
Exception
When Others Then
result := -19999;
Rollback work;END sp_SysUser_Login;
{
CallableStatement call = conn.prepareCall(
"{call sp_SysUser_login(?,?,?)}");
call.registerOutParameter(1, OracleTypes.INTEGER);
//1 Result OUT INTEGER
call.setString(2, Code);
//2 v_UserCode VARCHAR2,
call.setString(3, password);
//3 v_Password VARCHAR2
call.execute();
ret = call.getInt(1);
return ret;
}
catch (Exception e)
{
e.printStackTrace();
return -20001;
}
finally
{
close();
}
connection要随时关掉,connection不要作为参数传,或许可以解决超出打开游标的最大数这个问题!
修改INIT<SID>.ORA文件,加上 OPEN_CURSORS=10000
启动数据库,当然你打开的游标用完后要及时关闭
上边那哥们让你设置城10000。别听他的,我不知道他们在什么系统上玩,在我这里IBMp670
6CPU10G内存都没敢开那么大,疯了
不过他说的打开后要关闭是真的,另外注意尽量避免嵌套游标循环
不知道你的机器配置,128M是服务器吗?
第二、
不知道你是几个客户端连上来的,还是在自己机器上玩的,
第三、
你在你128M的机器上装9i?厉害,厉害,回头我试一下在286上看能不能装