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
운영게시판
최근게시물
Sybase Q&A 1334 게시물 읽기
No. 1334
data type에 관한 질문입니다.
작성자
김은경(cs9617)
작성일
2005-10-18 14:32
조회수
4,709

프로시져를 만들어서 돌리는데 계속 에러가 나서 글을 올립니다..

아래에 에러와 프로시져를 올려놓았습니다...

에러 원인 아시는분 꼭꼭 답변 부탁드립니다...

 

에러내용

Data exception - data type conversion is not possible

--(dfe_ArithmeticExpression.cxx 287)

 

프로시져내용

BEGIN

 

DECLARE vn_ul_BU numeric(5,2) ;

DECLARE vn_crcft_BU_BU numeric(7,4) ;

 

select convert(numeric(5,2), uexp_ls)

into vn_ul_BU

from nrem_palrt_i

where s_cd='BU';

 

select convert(numeric(7,4), crcft_val)

into vn_crcft_BU_BU

from nrem_crcft_i

where fst_s_cd='BU' and sec_s_cd='BU';

 

-- 여기서 에러나요...

-- n_test_t.s_bu numeric(4,1)

-- n_test_t의 데이터는 10건

select snr_n,(s_bu*s_bu*vn_ul_BU*vn_ul_BU*vn_crcft_BU_BU) risk
from n_test_t

end;

 

 

아시는분 꼭꼭 답변 부탁드립니다..

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

 

맨 마지막 sql을 이렇게 바꿔보세요.

 

select snr_n,

convert(numeric(10,4), s_bu*s_bu*vn_ul_BU*vn_ul_BU*vn_crcft_BU_BU) as risk
from n_test_t

 

존넘님이 2005-10-18 15:20에 작성한 댓글입니다. Edit

그렇게 해봤는데도 같은 에러납니다..

각각 변수에 convert를 하면 에러는 안나는데요...

그렇게 할수 없는 상황이라...

혹 다른 방법은 없는지요?...

 

참고로 s_bu : 10.2, vn_ul_BU : 14.5, vn_crcft_BU_BU : 1.0 입니다..

김은경(cs9617)님이 2005-10-18 15:55에 작성한 댓글입니다.

다음과 같이 테스트를 해봤습니다.

이상없이 잘 되는군요.

IQ 버전이 어떻게 됩니까?

 

BEGIN
DECLARE vn_ul_BU numeric(5,2) ;
DECLARE vn_crcft_BU_BU numeric(7,4) ;
select 14.5 into vn_ul_BU
;
select 1.0 into vn_crcft_BU_BU
;
-- 여기서 에러나요...
-- n_test_t.s_bu numeric(4,1)
-- n_test_t의 데이터는 10건
select 10.2*10.2*vn_ul_BU*vn_ul_BU*vn_crcft_BU_BU risk


end;

 

결과

 risk
 21874.4100000000

존넘님이 2005-10-18 17:52에 작성한 댓글입니다. Edit

iq버젼이 12.5 입니다...

김은경(cs9617)님이 2005-10-18 20:02에 작성한 댓글입니다.

s_bu*s_bu*vn_ul_BU*vn_ul_BU*vn_crcft_BU_BU

 

계산식을 보니

s_bu 2승이네요.

다음과 같이 바꿔보세여.

 

power(s_bu,2) * power(vn_ul_BU, 2) *vn_crcft_BU_BU

 

제가 테스트 해 본 것으로는 잘 됩니다.

 

BEGIN
DECLARE vn_ul_BU numeric(5,2) ;
DECLARE vn_crcft_BU_BU numeric(7,4) ;
select 14.5 into vn_ul_BU
;
select 1.0 into vn_crcft_BU_BU
;
-- 여기서 에러나요...
-- n_test_t.s_bu numeric(4,1)
-- n_test_t의 데이터는 10건
select power(10.2,2)*power(vn_ul_BU,2)*vn_crcft_BU_BU risk


end;

 

결과

 risk
 21874.41

버전 차이 때문인지는 확인할 수가 없네요.

존넘님이 2005-10-18 20:39에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1340Sybase 버젼은 어떻게 확인하나요? [3]
홍길동
2005-10-19
6128
1339코드성 테이블 select 시 좋은 방법은? [1]
bonzo
2005-10-19
3292
1335이상한 에러 메시지 [6]
초보
2005-10-18
3992
1334data type에 관한 질문입니다. [5]
김은경
2005-10-18
4709
1333FROM절에 NOLOCK을 사용할 수 있는지요? [1]
김지수
2005-10-18
3672
1332도와주셈 [2]
초보
2005-10-18
3154
1331Temp Table 에서의 rollup 처리 오류??? [2]
2005-10-17
4484
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다