データベース: 2019年6月アーカイブ

さっき、「Oracle で DATE 項目に YYYY-MM-DD hh:mm:ss 形式で日時をセット」って話書いたけど、なんなん、Oracle、SELECT のときも、

SELECT houmon_ymdhms FROM user_list WHERE id='000011';

みたいに検索すると、結果として返ってくるのは

2019-06-11

までなんやね。

時分秒まで表示しようとすると、いちいち、

SELECT TO_CHAR(houmon_ymdhms, 'yyyy-mm-dd hh24:mi:ss')  FROM user_list WHERE id='000011';

とかせんと、

2019-06-11 12:23:34

っていう結果は返ってこん、というか、表示されんのやね。

まあ、コンソールで SQL 実行したときの話で、プログラム内ではちゃんと時分秒まで渡されてるけど。表示のときは、NLS_DATABASE_PARAMETERS.NLS_DATE_FORMAT が設定されてるとかで。

ほんま、面倒くさいんや!Oracle め!!
あんまり Oracle って触ったことがなかったので今の今まで気づかなかったんだけど、DATE 項目に例えば '2019-06-11 12:23:34' みたいな時間を登録しようとすると、

UPDATE user_list SET houmon_ymdhms=''2019-06-11 12:23:34' WHERE id='000011';

じゃ、「ORA-01830 : 日付書式の変換で不要なデータが含まれています」なんてエラーになっちゃうのね。

UPDATE user_list SET houmon_ymdhms=TO_DATE('2019-06-11 12:23:34', 'yyyy-mm-dd hh24:mi:ss') WHERE id='000011';

と、TO_DATE 関数で変換しないと駄目。
PostgreSQL なら普通に、

UPDATE user_list SET houmon_ymdhms=''2019-06-11 12:23:34' WHERE id='000011';

これで日時として登録されるけどなあ。

Oracle、ただただ面倒くさい。なんか肌が合わんわ(笑)
そろそろ「本当に Oracle じゃないと駄目?」ってことを、関係者の皆さんにも考えてみていただきたい。

最近は富士通さんなんかも業務システム開発の場面で Oracle ではなく PostgreSQL を担いで来られることも増えて、3〜4年くらい前までなら信じられない話だなあって思ってたんだけど、最近よく話題になる Oracle の馬鹿高いライセンス料の件も絡んで、確実に不沈空母 Oracle もところどころ浸水が始まってるな(笑)

いいぞ、いいぞ(笑)

このアーカイブについて

このページには、2019年6月以降に書かれたブログ記事のうちデータベースカテゴリに属しているものが含まれています。

前のアーカイブはデータベース: 2018年10月です。

次のアーカイブはデータベース: 2020年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら