首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oci_connect返回me ():ORA-12170: TNS:连接超时发生在oracle8g中

Oci_connect返回me ():ORA-12170: TNS:连接超时发生在oracle8g中
EN

Stack Overflow用户
提问于 2020-10-26 11:54:58
回答 1查看 647关注 0票数 0

在我试图从oracle8g获取数据期间,我得到了oci_connect():ORA-12170: TNS:连接超时。当我执行很少的查询时,一切都是正确的,但是如果我试图得到一些稍微多的查询,我就会被提到错误。有趣的事实是,如果我添加睡眠(1) php函数,它可以解决问题,但需要花费大量时间。

代码语言:javascript
复制
Warning: oci_connect(): ORA-12170: TNS:Connect timeout occurred in C:\apache\Apache24\htdocs\statistic\src\OracleRequest.php on line 105

Fatal error: ORA-12170: TNS:Connect timeout occurred in C:\apache\Apache24\htdocs\statistic\src\OracleRequest.php on line 108

查询很简单,例如

代码语言:javascript
复制
public function getCountOfEntriesByEmployee($surname, $type_of_document)
{
    $conn = oci_connect("system", "manager", $this->dsn);
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }
    if($type_of_document == self::TYPE_OF_DOCUMENT["COMMON_INCOME"]) {
        $common_income_documents_by_employee = oci_parse($conn,
            "SELECT COUNT(num_card) FROM OFFICE_DOC_IN_CARDS
                     WHERE DCUS_CODE = 1
                     and YEAR_CARD = 2020
                     and TYPE_CARD = " . $type_of_document . "
                     and DATE_IN = to_date(to_char(SYSDATE, 'yyyy-mm-dd'), 'yyyy-mm-dd')
                     and SHORT_CONTENT NOT LIKE '%test db%'      
                     and (
                     (CONCAT(SHORT_CONTENT, SHORT_CONTENT2) like " . "'%*" . mb_convert_encoding($surname, "CP1251") . "%')
                     or  
                     (CONCAT(SHORT_CONTENT, SHORT_CONTENT2) like " . "'% * " . mb_convert_encoding($surname, "CP1251") . "%')
                     )"
        );


        oci_execute($common_income_documents_by_employee);
        $data = oci_fetch_row($common_income_documents_by_employee)[0];
        oci_free_statement($common_income_documents_by_employee);
        oci_close($conn);
        return $data;

非常感谢大家!

EN

回答 1

Stack Overflow用户

发布于 2020-10-26 21:04:42

这不是PHP问题--问题是网络缓慢或其他网络相关问题的结果。请试着用

代码语言:javascript
复制
SQLNET.INBOUND_CONNECT_TIMEOUT
SQLNET.SEND_TIMEOUT
SQLNET.RECV_TIMEOUT 

内部

代码语言:javascript
复制
$ORACLE_HOME/network/admin/sqlnet.ora

PHP使用的Oracle客户端

https://docs.oracle.com/cd/B19306_01/network.102/b14213/sqlnet.htm#:~:text=INBOUND_CONNECT_TIMEOUT&text=Use%20the%20SQLNET.,provide%20the%20necessary%20authentication%20information

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64536645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档