insert시에 텍스트 도메인을 character varying 의 최대값으로 설정을 했으나
16000자 정도까지 입력되고 짤리는것이 확인되었습니다.
이부분 해결 부탁드립니다.
한번에 수행할 수 있는 SQL문의 크기는 16Kbyte 정도입니다. 입력하고자 하는 SQL문의 크기가 이보다 클 경우는 문자열 값을 나누어 입력하는 것이 필요합니다. 예를 들면, 다음과 같습니다.
CREATE TABLE TBL ( contents string ) ;
INSERT INTO TBL(contents) VALUES(\'AAAA\'\'BBBB\'\'CCCC\') ;
위의 예와 같이 문자열을 \"\'\" 문자로 구분하여 입력해주는데, 대략 10Kbyte 정도로 나누어 주면 됩니다.
한번에 입력할 수 있는 최대값은 환경 설정 파일인 sqlx.init에 있는 max_block_size값에 영향을 받습니다. 기본 설정은 128kbyte로 되어 있으나, 필요한 크기로 변경할 수 있습니다. 변경한 값은 브로커를 재시작해야 적용됩니다.
도움이 되었기를 바랍니다.
>insert시에 텍스트 도메인을 character varying 의 최대값으로 설정을 했으나
>16000자 정도까지 입력되고 짤리는것이 확인되었습니다.
>이부분 해결 부탁드립니다.
PHP, Java를 이용하시는 경우에는 prepared statement를 이용하시면 됩니다.
PHP의 경우는 다음과 같은 예제를 참조하시기 바랍니다.
-----------------------------------------------------------------------------
예제:
<html>
<head><title>Quality Assurance Team</title></head>
<body bgcolor=\"#FFFFFF\">
<?
require(\"require.php\");
echo \"<h1>start....</h1>\" ;
//dl(\"unisql.so\");
echo \"Let\'s start connection<br>\" ;
$con = unisql_connect ($url,$port,$dbname);
echo \"unisql_connect\'s return value : $con <br>\";
if ($con) {
$sql = \"insert into xoo values ( ?,?,?)\";
$req = cubrid_prepare( $con, $sql, CUBRID_INCLUDE_OID );
$i = 0;
while ( $i < 2 ) {
$res = cubrid_bind( $req, 1, \"1\", \"NUMBER\");
$res = cubrid_bind( $req, 2, \"2\");
$res = cubrid_bind( $req, 3, \"04:22:34 PM 08/07/2007\");
$res = cubrid_execute( $req ) or Die();
$i = $i + 1;
}
$commit = unisql_commit($con);
$req = unisql_execute($con, \"select * from xoo \") ;
if ($req) {
$coltypes = unisql_column_types($req);
$colnames = unisql_column_names($req);
echo \"<table>\" ;
echo \"<tr bgcolor=999999>\" ;
while( list( $key, $colname) = each($colnames))
echo \"<th><font size=2>$colname</th>\" ;
echo \"</tr>\" ;
while( list( $key, $coltype) = each($coltypes))
echo \"<th><font size=2>$coltype</th>\" ;
while ($row = unisql_fetch($req) ) {
echo \"<tr bgcolor=eeeeee><font size=2>\" ;
echo \"<td><font size=2>$row[a]</td>\";
echo \"<td><font size=2>$row[b]</td>\";
echo \"<td><font size=2>$row[c]</td>\";
echo \"</table>\" ;
$dis = unisql_disconnect ($con);
?>
해 보시고 안되면 다시 연락 주시기 바랍니다.