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
운영게시판
최근게시물
Firebird Columns 79 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 79
오라클의 substr와 UDF의 substr는 같지 않습니다.
작성자
이중철(gosrak)
작성일
2006-01-20 12:28
조회수
12,802

몇일전 파이어버드 와 오라클 겸용 쿼리를 만들고 진행중 황당한 사고가 있어서 올립니다.

substr는 UDF로 ib_udf.dll에서 지원합니다. 그래서 전 오라클와 명칭도 같고

해서 함수가 같은 줄 알았는데 아니더군요

substr('ABCDEF', 2, 3) 이면 결과값이 'BCD'로 나올줄 알았는데 에고 'BC'가 나오더군요

함수 Description을 보니 다음과 같이 정의 되어 있습니다.

* Functional description:
* substr(s,m,n) returns the substring
* of s which starts at position m and
* ending at position n.
* Note: This function is NOT limited to
* receiving and returning only 255 characters,
* rather, it can use as long as 32767
* characters which is the limit on an
* INTERBASE character string.
* Change by Claudio Valderrama: when n>length(s),
* the result will be the original string instead
* of NULL as it was originally designed.

쩝 첫번째 파라미터 가 시작점이고 두번째 파라미터가 길이가 아닌 종착점입니다.

물론 substring이라는 함수는 있지만 위에서 말씀드렸듯이 공용이다 보니 쓸 수 없죠

결국 substr를 지우고 substr를 다시 만들어 사용합니다.

 

혹시라도 ib_udf.dll에 있는 substr를 사용할 시에는 이 점 유의하세요

 

PS : 오라클의 nvl, decode 같은 것들은 case로 다 바꾸고 하니 어렵지 않으나

3~4단 inline view는 조인절로 바꿀려고 하니 쉽지 않네요 에고.. 힘들다...

불행중 다행으로 기존 오라클로 작성된 것이 Procedure가 없다는 것 ㅋㅋ

왜 파이어버드는 다른 디비와 틀린 방식으로 Procedure를 지원하는 지 모르겠음 만약

있었으면 조금 더 어려웠을텐데 쩝

 

[Top]
No.
제목
작성자
작성일
조회
95[정보] PAGE_SIZE, LENGTH, DB파일사이즈의 관계
박정훈
2006-05-05
12031
90[버그] isql 의 input 문의 버그
박정훈
2006-02-13
10972
89[버그] FLOAT 데이터타입의 오묘한 버그 [3]
박정훈
2005-09-27
15921
79오라클의 substr와 UDF의 substr는 같지 않습니다.
이중철
2006-01-20
12802
36Firebird vs IBM vs Oracle
이창민
2005-08-02
11915
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다