- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当我使用 SQL*Plus 连接到密码进入宽限期的用户(Oracle 11g、Oracle 8i)时,出现错误消息但连接仍然成功:
SQL*Plus:
=====================================
SQL> connect gumiplesku
Enter password:
ERROR:
ORA-28002: the password will expire within 7 days
Connected.
SQL> select User from dual;
USER
======================================
gumiplesku
=====================================
另一方面,在我的 C++ OCI 代码中执行 OCILogon2
,如果我尝试连接同一个用户,我会得到一个 OCI_ SUCCESS_ WITH_ INFO
“错误”,但如果我继续,我得到的 OCISvcCtx*
似乎无效(即使它不为空),因为尝试执行 OCIAttrGet
或 OCIStmtExecute
给我一个 OCI_INVALID_HANDLE
错误。
用户应该在他的所有宽限期内成功连接到数据库,直到他的密码完全过期。那么,当我得到一个错误的句柄时,SQL*Plus 怎么可以正常连接呢?我应该尝试以不同的方式连接吗?
非常感谢。
最佳答案
这有点超出我的经验,但由于没有人回答我会试一试。
我记得您可以安装某种错误处理程序回调。由于您可以通过 OCIErrorGet
(?) 获取错误信息,我假设它触发了正常的错误处理机制。是否有可能有一个错误处理程序在发生“错误”时关闭连接而不检查这种特殊情况?
这也让我想起很久以前遇到的一个问题,如果您将错误的句柄类型传递给 OCI 函数,它们可能会以奇怪的方式失败。查看 OCIErrorGet
文档,可能是您传入了 OCI_HTYPE_ERROR
和一个环境句柄,或者 OCI_HTYPE_ENV
和一个错误句柄.
您是否多次调用 OCIErrorGet
? Oracle 可以生成多个错误,也许您必须在继续之前检索所有错误?但这似乎并不合理。
除了那些远景,我会尝试一个简单的 OCI example或来自 Oracle 的任何示例代码,看看它是否有相同的问题。如果不是,则回溯找出造成差异的原因。
关于c++ - 宽限期内的 OCILogon - ORA-28002,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121718/
当我使用 SQL*Plus 连接到密码进入宽限期的用户(Oracle 11g、Oracle 8i)时,出现错误消息但连接仍然成功: SQL*Plus: ========================
OCILogon 函数表示用户名、密码和数据库参数在 OCI_UTF16 环境模式下必须采用 UTF-16 编码。我按如下方式传递这些参数, OCILogon(p_env, p_err, &p_svc
我创建了以下配置文件。 create profile EXPTESTPROF limit failed_login_attempts unlimited password_life_time 1/24
我是一名优秀的程序员,十分优秀!