- PR -

暗黙の型変換について

1
投稿者投稿内容
yos
常連さん
会議室デビュー日: 2004/08/24
投稿数: 27
投稿日時: 2008-08-14 12:15
Oracle10g で以下の SQL 文を実行したときに「暗黙の型変換」は発生しますか?

コード:
SELECT 
    ITEM01, ITEM02, ITEM03, ITEM04, 
    ITEM05, ITEM06, ITEM07, ITEM08 
FROM TBL01,
    (SELECT ? AS KI FROM DUAL) DL
WHERE ITEM01 > DL.KI - 3


ITEM01 は、NUMBER (2) です。
パラメータには、60 など2桁の数字を与えています。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-08-14 13:59
引用:

yosさんの書き込み (2008-08-14 12:15) より:

パラメータには、60 など2桁の数字を与えています。


Parameter の型がわからないので判断できないです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
yos
常連さん
会議室デビュー日: 2004/08/24
投稿数: 27
投稿日時: 2008-08-14 14:35
引用:

じゃんぬねっとさんの書き込み (2008-08-14 13:59) より:

Parameter の型がわからないので判断できないです。




回答ありがとうございます。

Java から、
preparedStatement.setBigDecimal() で、値をセットして実行しています。

[追記]

「暗黙の型変換」が発生している場合
コード:

WHERE ITEM01 > DL.KI - 3

WHERE ITEM01 + 3 > DL.KI


とすることで回避できますか?

それとも、TO_NUMBER で明示的に変換したほうが良いのでしょうか?

[/追記]

[ メッセージ編集済み 編集者: yos 編集日時 2008-08-14 16:42 ]
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2008-08-14 19:34
引用:

yosさんの書き込み (2008-08-14 14:35) より:

それとも、TO_NUMBER で明示的に変換したほうが良いのでしょうか?

[/追記]

[ メッセージ編集済み 編集者: yos 編集日時 2008-08-14 16:42 ]


悩むぐらいなら明示的に変換した安全ですが? 

yos
常連さん
会議室デビュー日: 2004/08/24
投稿数: 27
投稿日時: 2008-08-15 17:34
おっしゃるとおりですね。

明示的に変換するようにします。
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)