mysql:8048
From: きたぢま <きたぢま <kitajima@xxxxxxxxxx>>
Date: Thu, 17 Jul 2003 11:55:54 +0900
Subject: [mysql 08048] Re: 強制的に CHAR 型にする方法
これは[SUGAWARA Hajime]様が[03/07/16 15:00:34]に送信された、 [[mysql 08044] Re: 強制的に CHAR 型にする方法]への返信です。 〆 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 回答ありがとうございます。 SUGAWARA> たぶん。もっともSybaseあたりだとやっぱり末尾空白を削除するみたいですの SUGAWARA> で、割と処理系依存っぽいです。 SUGAWARA> OracleだとCHARで空白を埋めるし、VARCHARでも末尾空白を削除したりはしま SUGAWARA> せん(PostgreSQLはOracle互換を目指してるっぽいので同じ挙動かもしれないけ SUGAWARA> ど、未確認)。 Sybaseでもそうなんだぁ。多数決では末尾空白削除が有利!? デファクトスタン ダードなのかな!? とにかくどのDBでもこの件を確実にするためには、SELECT時にRPADを必ず入れる 用にはじめからプログラムを組んでおく必要があるってことですよね。 僕の性格上、将来なるべく自由にOSやRDBMSやWEBサーバーなどを切り替えれるよ うにしておかないと、なんか気持ち悪い感じがしてしまうもので…。 (RPAD機能がどのDBでもRPADという名前かどうかが問題ですが^^;) SUGAWARA> もっとも、Oracleは空文字列('')をNULLとして扱ってるみたいなのがイヤン SUGAWARA> な感じでありますけれど(このあたりも処理系依存っぽい)。 確かに…。僕もそれはおかしいと思いました。空文字とNULLは意味が違いますも んね。 SUGAWARA> おそらくCHARもVARCHARも同じになるようにしてるんだと思います。 SUGAWARA> だからCHARがVARCHARに最適化されても問題が起こらない、ということなので SUGAWARA> しょう。 なるほど。意図的なのですね。確かにRDBMSはデータを記録し検索するのが本来 の目的で、書式の管理まで面倒を見てくれるかどうかって感じもありますけどね。 その点、Oracleなんかやたら書式指定命令が多いような気が…。使ったこと無い 書式のほうが多いです。 きたぢま <kitajima@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp/ ━━━━────────────────────────────
8025 2003-07-15 13:18 [きたぢま <kitajima@x] 強制的に CHAR 型にする方法 8026 2003-07-15 13:49 ┣[SUGAWARA Hajime <sug] 8028 2003-07-15 15:30 ┃┗[きたぢま <kitajima@x] 8029 2003-07-15 18:12 ┃ ┗[Kazuaki Inagaki <ina] 8032 2003-07-16 11:00 ┃ ┗[きたぢま <kitajima@x] 8033 2003-07-16 11:05 ┃ ┣[箱田賢一 <hakoda@xxx] 8039 2003-07-16 13:29 ┃ ┃┗[きたぢま <kitajima@x] 8034 2003-07-16 12:26 ┃ ┗[SUGAWARA Hajime <sug] 8041 2003-07-16 13:33 ┃ ┗[きたぢま <kitajima@x] 8044 2003-07-16 15:00 ┃ ┗[SUGAWARA Hajime <sug] -> 8048 2003-07-17 11:55 ┃ ┗[きたぢま <kitajima@x] 8043 2003-07-16 14:51 ┗["MIYATSU Kazunari" <] 8047 2003-07-17 11:47 ┗[きたぢま <kitajima@x]