OracleのNUMBER(16,4)とDATEをMySQLに挿入したい。
取り敢えずOracle側のテストデータとして以下を用意する。
2021/01/07 10:00:00
1500.0000
mysqlのCreate table
create table oracle_test( id int unsigned auto_increment primary key, price4 decimal(10,4), price2 decimal(10,2), datetime_at datetime, timestamp_at timestamp );
mysql> describe oracle_test;
+————–+—————+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————–+—————+——+—–+———+—————-+
| id | int unsigned | NO | PRI | NULL | auto_increment |
| price4 | decimal(10,4) | YES | | NULL | |
| price2 | decimal(10,2) | YES | | NULL | |
| datetime_at | datetime | YES | | NULL | |
| timestamp_at | timestamp | YES | | NULL | |
+————–+—————+——+—–+———+—————-+
5 rows in set (0.00 sec)
insert into oracle_test(price4) value("1500.0000"); insert into oracle_test(price2) value("1500.0000"); insert into oracle_test(datetime_at) value("2021/01/07 10:00:00"); insert into oracle_test(timestamp_at) value("2021/01/07 10:00:00");
mysql> select * from oracle_test;
+—-+———–+———+———————+———————+
| id | price4 | price2 | datetime_at | timestamp_at |
+—-+———–+———+———————+———————+
| 1 | 1500.0000 | NULL | NULL | NULL |
| 2 | NULL | 1500.00 | NULL | NULL |
| 3 | NULL | NULL | 2021-01-07 10:00:00 | NULL |
| 4 | NULL | NULL | NULL | 2021-01-07 10:00:00 |
+—-+———–+———+———————+———————+
4 rows in set (0.00 sec)
insert into oracle_test(price2) value(“1500.0050”);
| 5 | NULL | 1500.01 | NULL | NULL |
なるほど、mysql側で勝手に変換してくれんのか。
凄いけど、型づけ言語の考え方からいくと、型が完全に一致してないのに入るのは気持ち悪いな。
まあ、取り敢えず良しとしよう。