この表を考えると、
CREATE TABLE test (
c01 INT,
c02 NUMBER(10,5),
c03 NUMBER(18,10)
);
OCCI (C++ ライブラリ) を使用して、次の SELECT クエリを実行します。
select case(c01) when 10 then c02 else c03 end from test;
この場合、取得する型コードは ですOCCI_SQLT_NUM
が、精度とスケールはどちらも0
です。それ(0
精度とスケール)はどういう意味ですか?これはバグですか?
精度/スケールを知らなければ、プログラムを整数または浮動小数点のどちらとして扱うかを決定することができないため、プログラムの型安全性、セマンティクス、および正確性が危険にさらされます。
つまり、式の型は何CASE(x) WHEN y THEN a ELSE b
ですか? となることができa
ますか?違うと思う。では、型はどのように計算されるのでしょうか。INT
b
CHAR[32]