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 8570 게시물 읽기
No. 8570
함수호출시 타입에러문제
작성자
노지석(seraph)
작성일
2009-12-10 18:04
조회수
7,150

함수세팅은 예를 들면 

func1(integer, integer, integer, character varying)

이런식으로 데이터 타입들이 들어가게 해놨는데


쿼리는 이런식으로 날렸어요.

select * from func1( 1, 10, '1501003', 'test1');


ERROR func1(integer, integer, unknown, unknown)

이렇게 타입을 인식하지 못해서 함수종류가 다른거로 인식해서 못찾는경우가 있어요.

이 쿼리가 어쩔때는 그냥 되는데요, 어쩔때는 func1펑션을 못찾는다고 그러네요?


강제 캐스팅도 염두해보기도 했는데요...(int2::) 다 수정하자니 번거로운부분이 있고

' <- 작은 따옴표를 쓸때 되었다가 안되었다가 이러니 어디 환경설정을 따로 해주는 부분이 있나요?


아예 안되면 캐스팅으로 해버리면 물론 속편한데...

되었다 안되었다 이러니 궁금해져서 여쭤봅니다.

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

흠 sql 버전을 어떤것을 사용하시는지 모르겠지만

 

select * from func1( 1, 10, '1501003', 'test1'); 이렇게 하시면 원래 type casting 오류 뜨지 않는가여?

 

일단 귀잖으시더라도 일일히 다 type casting 넣어주시는게 맞을것 같습니다.

 

그럼

김병석(byung82)님이 2009-12-10 19:50에 작성한 댓글입니다.

쿼리문 을 고치기 어렵다면

이런식으로 간단하게 해결해 볼 수 도 있습니다.




func1 (int, int, text, text) 

함수를 만드시고


   func1($1, $2, $3::int, $4::varchar);

이런식으로 호출하는


wrapper 함수를 하나 만드시면 될거 같습니다.

overloading 을 적극 활용해 보아요


tyro님이 2009-12-10 21:10에 작성한 댓글입니다.
이 댓글은 2009-12-10 21:13에 마지막으로 수정되었습니다. Edit

답변들 감사합니다. 물론 캐스팅하는게 정상이긴한데...
어쩔때는 그냥 잘 돌때가 있어서...
혹시나 모르는 변수가 있나해서 여쭤본거랍니다.
역시 정확하게 하려면 수작업해야겠네요...ㅎㅎ
ps: 혹시라도 이부분 잘 아시는분있으면 추가로 덧글부탁드려요~

노지석(seraph)님이 2009-12-11 08:50에 작성한 댓글입니다.
이 댓글은 2009-12-11 08:53에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
8587libpq로 프로그래밍 시에 TIME_WAIT 문제 [2]
김대청
2009-12-18
7680
8586파워빌더에서 스키마 오류 [1]
김석기
2009-12-18
8000
8581insert into ...select 문에 프로시져처럼 값을 넣으려면.. [1]
pgsql
2009-12-15
7651
8570함수호출시 타입에러문제 [3]
노지석
2009-12-10
7150
8569오랫동안 궁금한점.. [2]
별의디비
2009-12-10
7640
8568autocommit에 관한 질문입니다. [4]
배진환
2009-12-07
7220
8564디비복구 추가 질문. [5]
슝슝이
2009-12-03
7182
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다