2016-05-13 2 views
0

Когда iam запускает мой запрос оракула, показывающий ошибку 500 на сервере. Ошибка показывает при выборе поля CLOB в поле оракул query.The содержит большие данные JSon500 ошибка при выборе поля clob в oracle 11g

Ошибка:

Ошибка 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 

здесь состояние = -1

(запрос работает в PHP PDO)

Это пример запроса.

personal_details и json_details являются полями clob.Distinct не будет работать при выборе поля clob, поэтому я использую этот метод запроса.

проблема с этим кодом или проблема с сервером? Но этот код отлично работает на моем локальном сервере, не в онлайн-сервере.

Мне нужна помощь!

+0

Проверьте журнал ошибок PHP. Он должен показать основную причину. – timclutton

+0

Журнал ошибок php ничего не показал ... :( – user3435234

+0

«это проблема с кодом или проблема с сервером?». Вам нужно будет определить, что с помощью отладки. Надеюсь, у вас есть доступ к надлежащему отладчику, например [xdebug] (https://xdebug.org/) .В противном случае вам нужно использовать 'var_dump()' и 'exit', чтобы проверить каждую строку вашего кода и выделить, где возникла проблема. – timclutton

ответ

0

если вы используете PHP с PDO, то попробуйте установить атрибут, как показано ниже

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

Это будет конвертировать все столбцы в строки, независимо от их первоначального типа, и это не включает NULL столбцы, а не переводить данные вставляемый.

Установив это, это будет то же самое поведение, что и mysql, даже извлечение из oracle.

+1

Теперь поле clob работает как обычное поле :) .. Thanx shafeeq bhai :) – user3435234

0

Вы пытались запросить только одно поле clob из бетонного стола?

Как:

SELECT CLOB_FIELD 
FROM EX_TABLE; 

Если это будет работать, то, вероятно, проблема в самом запросе. Ваш запрос достаточно сложный, чтобы скрыть некоторые проблемы.

+0

да это тоже показывает такую ​​же ошибку 500 :("select json_details from db.kncustomer" – user3435234

+0

"выберите dbms_lob.substr (json_details, 4000) из db.kncustomer" только это сработает .. но мне нужны все данные не только 4000 char. . «select json_details from db.kncustomer» работает на моем локальном сервере Wamp, а не в онлайн-сервере. Вот почему iam confused! – user3435234

+0

Хм. Это странно. Кажется, сервер не может предоставить clob, но он может манипулировать им. похоже на проблему с сервером. –

Смежные вопросы