Background Image

FORUM

2023.04.05 20:47

blob select

조회 수 266 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Linux 64bit
CUBRID Ver
9.2.9.0002
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
1. 테이블 생성후  

<Class Name> 

     test_blob

 <Attributes> 

     bid                  INTEGER
     file_content         BLOB
     file_name            CHARACTER VARYING(10)
 

 

2. 명령어를 실행해서 최종적으로 데이터를 .csv로 뽑아내면서 file_content 컬럼은 경로정보를 얻고자 합니다. 

csql -u dba -p dba demodb@localhost -c "SELECT CONCAT(bid,',',file_content,',',file_name) FROM (select bid,file_content,file_name from test_blob) A"

      -o data.csv

 

3. 하지만 에러가 아래와 같이 나면서 실행이 되지 않습니다.

ERROR: Cannot coerce A.file_content to type varchar.

 

 

blob 타입을 문자열함수로 CONCAT해서 그런거 같은데  blob의 경로를 문자열로 뽑아낼수 있는 방법이 있나요?

 

 

 

 

 

 

  • ?
    원종민 2023.04.06 10:56

    BLOB 타입을 문자열(varchar,char) 타입으로 변환이 불가능 합니다.
    * 온라인 매뉴얼의 "명시적인 타입 변환 정리 표" 참조 : https://www.cubrid.org/manual/ko/9.3.0/sql/function/typecast_fn.html?highlight=cast#id1

     

    따라서, 우회 방법으로 data.csv 파일을 리눅스 sed 명령어로 가공하면 원하는 결과를 추출 할 수 있습니다.

     

    예제) sed 명령어로 가공 방법
    1. 쿼리 수행
    $ csql -u dba demodb -c "select col1, col2, col3 from test02" -o data.csv

     

    2. 원본
    $ cat data.csv

    === <Result of SELECT Command in Line 1> ===

             col1  col2                  col3                
    =========================================================
                1  file:/data/DB/gm_newdb/ces_190/test02.00001680741708877843_1688  'cccddd'            
                2  file:/data/DB/gm_newdb/ces_158/test02.00001680743119123415_1027  'ccc2ddd2'          

    2 rows selected. (0.000493 sec) Committed.

     

    3. data.scv 파일 가공
    $ cat data.csv | sed -n "/file/p" | sed -e "s/'//g" | sed -e "s/^ */'/g" -e "s/ *$/'/g" | sed -e "s/  /,/g" > data_process.csv
    - 1 번 째 파이프 : file 이라는 단어가 포함된 라인 만 출력
    - 2 번 째 파이프 : '(작은 따옴표) 문자가 포함된 단어 제거
    - 3 번 째 파이프 : 모든 문자열의 앞,뒤에 '(작은 따옴표) 문자 추가
    - 4 번 째 파이프 : 모든 문자열의 공백 2개를 ,(쉼표)문자로 변환

     

    4. 가공 결과
    $ cat data_process.csv 
    '1,file:/data/DB/gm_newdb/ces_190/test02.00001680741708877843_1688,cccddd'
    '2,file:/data/DB/gm_newdb/ces_158/test02.00001680743119123415_1027,ccc2ddd2'


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 5 admin 2024.04.23 3734
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 7720
3844 Fk값 가져오기 2 file 네오랜덤 2023.04.24 312
3843 서버 메모리 교체 및 ha 상 데이터 삭제 절차 1 레피엘 2023.04.20 269
3842 java stored procedure 에 loadjava 로 jar 파일 로드 시 java.lang.ClassNotFoundException 에러 문의 3 개미가불쌍해 2023.04.18 304
3841 Cubrid stored procedure 스케쥴 등록 형식 2 Roy 2023.04.17 260
3840 암호화 함수 MDB_ENC 질문입니다 1 BE-DEV 2023.04.17 225
3839 auto_increment 추가 방법 문의 1 부패방지운영팀 2023.04.14 628
3838 CUBRID 사용자 계정 생성 관련 문의 1 몽키스패너 2023.04.14 341
3837 order by 이후 rownum이 의도와 다르게 찍힙니다. 2 바보똥개 2023.04.14 276
3836 백업 및 복구 시 cubrid 버전 간 호환 문의 1 플레이어블 2023.04.13 204
3835 centos8에서 쉘스크립트 실행시 csql: command not found 오류 발생 6 kjn4345 2023.04.13 385
3834 큐브리드 timestamp 오류 문의 5 jjun7204 2023.04.12 274
3833 Cubrid DB 서버 swap memory 사용률 관련 질의 1 오라클민 2023.04.12 480
3832 Mac OS 큐브리드 매니저 실행이 안 됩니다. 2 아데산야라이트훅 2023.04.07 285
» blob select 1 네오랜덤 2023.04.05 266
3830 dba권한 상속 1 네오랜덤 2023.04.05 207
3829 mac os m1 실행시 무응답 실행안됩니다. 6 시나몬빵 2023.04.04 280
3828 함수/프로시져 구동시 필요한 java버젼 1 네오랜덤 2023.03.31 303
3827 큐브리드 설치 도중 취소한 후, 재설치가 불가능합니다. 5 복괴 2023.03.28 267
3826 where in () 서브쿼리 관련 문의입니다 1 제리리 2023.03.27 213
3825 한글을 입력받아 한글을 리턴하는 CUBRID JAVA StoredProcedure 작성시 window 환경에서 리턴 값이 깨져서 출력 됨 2 두목원슝 2023.03.22 337
Board Pagination Prev 1 ... 9 10 11 12 13 14 15 16 17 18 ... 206 Next
/ 206

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales