>>전익환 님께서 쓰시길<<
:: 오라클 DB를 이용한 게시판을 만들고 있습니다.
::
:: 내용란을 오라클에서 LONG 타입으로 두고 많은 양의 내용을 오라클로
:: 넣어야 되는 데 Ora_Do failed (ORA-01704: string literal too long)
:: 에러가 납니다.
:: 2000자 이하는 되는데 2000자 이상은 않되는 군요.
:: por*c로 만들 때 문제가 없었는 데 .....
:: 많은 답변을 부탁드립니다.
::
:: email: hwanik@hag.ne.kr
::
문제의 답을 찾았습니다. 내가 질문하고 내가 답을 찾으니 우습군요.
ora_DO 를 사용하지 말고 bind로 문자열을 넣고 하면 됩니다.
<<예>>
$sql17 = " DECLARE
tmpno number(6);
cno number(6);
cursor c1 is select no from $TNAME where no >= $no order by no desc for update;
BEGIN
open c1;
LOOP
fetch c1 into cno;
exit when c1%NOTFOUND;
tmpno := cno + 1;
update $TNAME set no = tmpno where current of c1;
END LOOP;
close c1;
insert into $TNAME values($no, ".$TNAME."_inc.nextval, $S_ID, $S_DEPTH, '$pName', '$pHome',
'$pEmail', '$pSubject', '$pPasswd', :pContent, '$file_name', 0, sysdate, $file_size, '$IP');
END;";
$curs = ora_open($connect);
ora_parse($curs, $sql17);
ora_bind($curs, "pContent", ":pContent", strlen($pContent), 1);
ora_exec($curs);
|