SergeyNZ
Новичок
PHP 5.2.5 и CLOB (ошибка или ...)
Пытаюсь перейти с Apache 1.3 + PHP 4.3.8 на Apache 2.2 + PHP 5.2.5
Возникла следующая проблема
Есть процедура на Oracle, котрая при mode=1 принимает CLOB и записывает его в таблицу(код пропущен),
в остальных случаях возвращает CLOB
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 4 возвращается Test message
на PHP 5 возвращается Te
если написать так $lob->WriteTemporary(' '); //3 пробела
то на PHP5 возвращается Tes
Как сделать так чтобы работало правильно т.е. как на PHP4
Спасибо
Пытаюсь перейти с Apache 1.3 + PHP 4.3.8 на Apache 2.2 + PHP 5.2.5
Возникла следующая проблема
Есть процедура на Oracle, котрая при mode=1 принимает CLOB и записывает его в таблицу(код пропущен),
в остальных случаях возвращает CLOB
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
Спасибо