Пытаюсь перейти с Apache 1.3 + PHP 4.3.8 на Apache 2.2 + PHP 5.2.5
Возникла следующая проблема
Есть процедура на Oracle, котрая при mode=1 принимает CLOB и записывает его в таблицу(код пропущен),
в остальных случаях возвращает CLOB
CODE ( text):
скопировать код в буфер обмена
CREATE OR REPLACE PROCEDURE .test (p_mode IN Integer, P_CLOB IN OUT CLOB) IS BEGIN if p_mode=1 then --insert into table NULL; else P_CLOB := 'Test message'; end if; END;
и есть простой код на PHP
PHP:
скопировать код в буфер обмена
$oracon = ocilogon("Login", "Pas", "STR"); $mode = 2; $fl_soob = "Input Clob"; $s = OCIParse($oracon, "begin test(:mode, :fl_soob); end;"); OCIBindByName($s, ":mode", $mode); $lob = ocinewdescriptor($oracon, OCI_DTYPE_LOB ); if(mode==1) //insert clob $lob->WriteTemporary($fl_soob); else //select clob $lob->WriteTemporary(' '); OCIBindByName($s, ":fl_soob", $lob, -1, OCI_B_CLOB); OCIExecute($s, OCI_DEFAULT); OCICommit($oracon); $fl_soob = $lob->load(); echo $fl_soob;
на PHP 4 возвращается Test message
на PHP 5 возвращается Te
если написать так $lob->WriteTemporary(' '); //3 пробела
то на PHP5 возвращается Tes
Как сделать так чтобы работало правильно т.е. как на PHP4
Спасибо
|