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側で勝手に変換してくれんのか。
凄いけど、型づけ言語の考え方からいくと、型が完全に一致してないのに入るのは気持ち悪いな。
まあ、取り敢えず良しとしよう。