在oracle 11g中选择clob字段时出现500错误

时间:2016-05-13 07:04:57

标签: php oracle pdo oracle11g

当iam运行我的oracle查询在服务器中显示500错误时。在oracle查询中选择clob字段时显示的错误。该字段包含大的json数据

错误是:

  

HTTP错误500.0 - 内部服务器错误C:\ php7.0.3 \ php-cgi.exe -   FastCGI进程意外退出

此处查询:

SELECT knowyour.*,
  kp.personal_details AS personal_details,
  kp.fullname,
  kcd.category,
  kcd.ID AS kycID
FROM
  (SELECT DISTINCT kc.kyc_reffer_id,
    kc.ID,
    kc.customer_id,
    kc.json_details AS json_details,
    kc.customer_joint_id,
    kc.customer_id AS kycCustomer_id
  FROM db.knwcustomer kc
  ) knowyour
INNER JOIN db.createdetails kcd
ON (knowyour.customer_id=kcd.customer_id)
INNER JOIN db.personaldetails kp
ON (knowyour.kyc_reffer_id=kp.kyc_reffer_id)
LEFT JOIN db.kaccountdetails kd
ON (knowyour.customer_id=kd.customer_id)

WHERE kcd.displayStatus!=:status
AND kcd.category=:category
AND kd.status!=:status
AND kp.status!=:status
AND kcd.client_id=:client_id
ORDER BY kcd.ID

这里status = -1

(查询在php pdo中运行)

这是一个示例查询。

personal_details和json_details是clob fields.Distinct在选择clob字段时不起作用,这就是我使用此查询方法的原因。

是代码问题还是服务器问题?但是这段代码在我的本地wamp服务器上运行得很好,而不是在在线服务器上。

我需要帮助!

2 个答案:

答案 0 :(得分:0)

您是否尝试过查询具体表中的一个clob字段?

像:

SELECT CLOB_FIELD 
FROM EX_TABLE;

如果这样可行,查询本身可能存在问题。您的查询非常复杂,可以隐藏一些问题。

答案 1 :(得分:0)

如果你在PDO中使用php,那么尝试设置如下属性

$dbConnection->setAttribute(PDO::ATTR_STRINGIFY_FETCHES,TRUE);

这会将所有列转换为字符串,无论其原始类型如何,并且不包含NULL列,也不会转换插入的数据。

通过设置它,它将与mysql甚至从oracle中获取相同的行为。