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
운영게시판
최근게시물
PostgreSQL Q&A 5109 게시물 읽기
No. 5109
점찍기 넘 어려워요 ㅠ.ㅠ
작성자
초보
작성일
2003-12-21 08:59
조회수
1,497

plpgsql 이 대체적으로 쉬운 편인긴 하나..

점찍기(홑따옴표) 가 너무도 해갈립니다.

 

메뉴얼에 대략의 예제가나오는데.. 그것으로는 극복하기가 좀 어렵네요..

 

대충 감이 올거 같기도 하면서도 참으로 해갈리는데..

만일이걸 plpgsql 로 어떻게 점을 찍어야 할까요..

자꾸 에러가 나서 미치네요..

 

 

tb text;

str text;

col text;

val text;

 

str := ''select * from '' || tb || '' where column like '''''' || val || ''''%'''''''''';

뭐 이런 식으로 되나요?

 

str = "select * from $tb where column like '$val%'";

이게 저렇게 점을 찍으니 에러나네요

 

저걸 어떻게 찍어야 하는지 좀갈켜주세요..

 

select substr(column, length(val), num) as str from table where column like substring(column from 'val..');

이런문제도 해야하는데...처음의 where like 'val%' 이게 되면 저것도 될거 같은데..

참으로 점찍기 어렵습니다.

 

 

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

정곡을 폭 찔렀네요.

저도 무진장 헤깔리더라구요.

 

개인적으로는 어떻게 하나면,

일단 일반적인 쿼리문처럼 작성하고,

그줄 전체를 s/'/''/g 형태로 바꾸어버립니다.

이게 신경 안쓰고 깔끔하게 처리하는 방법일듯싶습니다.

 

윗 예라면,

먼저

str := 'select * from ' || tb || ' where column like ''' || val || '%''';

이 구문에서 작은 따옴표가 모두 한개씩 더 생기면 되거든요.

그러니까,

str := ''select * from '' || tb || '' where column like '''''' || val || ''%'''''';

이렇게 되겠네요.

 

아무튼 plpgsql 놈의 작은따옴표 문제는 언어 설계상 문제점을 안고 있는 것 같습니다. 과연 수정될런지는 모르겠지만.

 

 

김상기(ioseph)님이 2003-12-21 13:58에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5112웹에서 대용량 데이터 처리.. [1]
이상호
2003-12-23
1897
5111[질문] 현재 로그인한 User 의 그룹을 알고싶을때.. [2]
psql좋다
2003-12-22
1443
5110COPY는 되는데 \copy는 안됩니다!!! [2]
시나브로
2003-12-22
1984
5109점찍기 넘 어려워요 ㅠ.ㅠ [1]
초보
2003-12-21
1497
5108PostgreSQL용 게시판.. [2]
이훈우
2003-12-21
1457
5107사용자생성에 관한질문 [1]
강구만
2003-12-20
1468
5106vacuumdb 가 중간에서 멈췄을경우 [2]
초본데요
2003-12-20
1315
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다