database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
ㆍCUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
CUBRID Q&A 805 게시물 읽기
No. 805
Q.INSERT시 텍스트 길이 제한에 관하여..
작성자
김수선
작성일
2007-12-20 18:28
조회수
3,607

insert시에 텍스트 도메인을 character varying 의 최대값으로 설정을 했으나

16000자 정도까지 입력되고 짤리는것이 확인되었습니다.

이부분 해결 부탁드립니다.

 

이 글에 대한 댓글이 총 2건 있습니다.

한번에 수행할 수 있는 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자 정도까지 입력되고 짤리는것이 확인되었습니다.

>이부분 해결 부탁드립니다.

 

백정한님이 2007-12-20 22:13에 작성한 댓글입니다. Edit

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>\" ;

 

 

 

           echo \"<tr bgcolor=999999>\" ;

 

           while( list( $key, $coltype) = each($coltypes))

 

              echo \"<th><font size=2>$coltype</th>\" ;

 

           echo \"</tr>\" ;

 

 

 

           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 \"</tr>\" ;

 

           }

 

           echo \"</table>\" ;

 

         }

 

         $dis = unisql_disconnect ($con);

 

 

 

}

 

?>

 

해 보시고 안되면 다시 연락 주시기 바랍니다.

 

 

>insert시에 텍스트 도메인을 character varying 의 최대값으로 설정을 했으나

>16000자 정도까지 입력되고 짤리는것이 확인되었습니다.

>이부분 해결 부탁드립니다.

 

박근택님이 2007-12-20 23:08에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
808Q.db_execute()관련입니다.. [1]
박유나
2007-12-21
3228
807Q.auto commit 에 관해서 [1]
김종진
2007-12-21
3704
806Q.게임 DB에 대해 질문드립니다. [1]
김정환
2007-12-21
3315
805Q.INSERT시 텍스트 길이 제한에 관하여.. [2]
김수선
2007-12-20
3607
804Q.c_api사용하려는데 문제가 있어서여.. [1]
박유나
2007-12-20
3936
803Q.같은 서버의 DB 의 테이블 쿼리시... [2]
송덕용
2007-12-20
4075
802Q.인스톨시 이전버전 삭제.. [1]
김효성
2007-12-20
3447
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.057초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다