Mac De Oracle Heterogeneous! #38 Tweet
数値型のつづき。
Generic Connectivity経由でMySQL4.0.25及び、MySQL4.1.13aの数値型にアクセス 2回目。 tinyint型と同型の符号なし。
1)MySQLのtinyint型及び、同型の符号なしの検証。
tinyint型は問題ないのだが、符号なしは NG。
1−1)MySQL4.1.13aにGeneric Connectivity経由で問合せをした結果
CORYDORAS> list
1 select
2 "r_tinyint",
3 "r_tinyint_unsigned"
4 from
5* num_test_mysql4113a_mac_sv@oracle10g_win
CORYDORAS> /
r_tinyint r_tinyint_unsigned
---------- ------------------
NULL NULL
0 0
0 0
-128 0
127 -1
NULL NULL
NULL NULL
・
中略
・
NULL NULL
27行が選択されました。
CORYDORAS>
1−2)MySQL4.0.25にGeneric Connectivity経由で問合せをした結果
CORYDORAS> list
1 select
2 "r_tinyint",
3 "r_tinyint_unsigned"
4 from
5* num_test_mysql4025_mac@oracle10g_win
CORYDORAS> /
r_tinyint r_tinyint_unsigned
---------- ------------------
NULL NULL
0 0
0 0
-128 0
127 -1
NULL NULL
・
中略
・
NULL NULL
25行が選択されました。
CORYDORAS>
1−3)MySQL4.1.13aへGeneric Connectivity経由でインサート文を発行。
各型の最小値、最大値、許容範囲を超える値を登録。
MySQL上ではワーニングが返るが、Generic Connectivity経由では正常に処理される。MySQL側では許容範囲を超える数値は丸められ、最小値、最大値に置換される。
CORYDORAS> insert into num_test_mysql4113a_mac_sv@oracle10g_win("r_tinyint", "r_tinyint_unsigned")
2 values(-128,0);
1行が作成されました。
CORYDORAS> insert into num_test_mysql4113a_mac_sv@oracle10g_win("r_tinyint","r_tinyint_unsigned")
2 values(127,255);
1行が作成されました。
CORYDORAS> insert into num_test_mysql4113a_mac_sv@oracle10g_win("r_tinyint","r_tinyint_unsigned")
2 values(-129,-1);
1行が作成されました。
CORYDORAS> insert into num_test_mysql4113a_mac_sv@oracle10g_win("r_tinyint","r_tinyint_unsigned")
2 values(128,256);
1行が作成されました。
CORYDORAS> list
1 select *
2 from
3 (
4 select
5 rownum as "rownum",
6 a."r_tinyint",
7 a."r_tinyint_unsigned"
8 from
9 num_test_mysql4113a_mac_sv@oracle10g_win a
10 )
11 where
12* "rownum" > 27
CORYDORAS> /
rownum r_tinyint r_tinyint_unsigned
---------- ---------- ------------------
28 -128 0
29 127 -1
30 -128 0
31 127 -1
CORYDORAS>
CORYDORAS> rollback;
ロールバックが完了しました。
1−4)MySQL4.0.25へGeneric Connectivity経由でインサート文を発行。
各型の最小値、最大値、許容範囲を超える値を登録。
結果は、MySQL4.1.13aと同じ。
CORYDORAS> insert into num_test_mysql4025_mac@oracle10g_win("r_tinyint", "r_tinyint_unsigned")
2 values(-128,0);
1行が作成されました。
CORYDORAS> insert into num_test_mysql4025_mac@oracle10g_win("r_tinyint","r_tinyint_unsigned")
2 values(127,255);
1行が作成されました。
CORYDORAS> insert into num_test_mysql4025_mac@oracle10g_win("r_tinyint","r_tinyint_unsigned")
2 values(-129,-1);
1行が作成されました。
CORYDORAS> insert into num_test_mysql4025_mac@oracle10g_win("r_tinyint","r_tinyint_unsigned")
2 values(128,256);
1行が作成されました。
CORYDORAS> list
1 select *
2 from
3 (
4 select
5 rownum as "rownum",
6 a."r_tinyint",
7 a."r_tinyint_unsigned"
8 from
9 num_test_mysql4025_mac@oracle10g_win a
10 )
11 where
12* "rownum" > 25
CORYDORAS> /
rownum r_tinyint r_tinyint_unsigned
---------- ---------- ------------------
26 -128 0
27 127 -1
28 -128 0
29 127 -1
CORYDORAS> rollback;
ロールバックが完了しました。
CORYDORAS> select count(*) from num_test_mysql4025_mac@oracle10g_win;
COUNT(*)
----------
25
CORYDORAS>
次回につづく。
| 固定リンク | 0


コメント