Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
とりあえず、ファンクションの作り方が分かった。 今度は、何等かの日本語文字列、漢字列を返す関数を作ってみよう。
作るファンクションは、'こんにちは' という文字列を返すだけの 超簡単なものにしよう。だから、引数もなくなった。
CREATE FUNCTION hello() RETURNS VARCHAR(50) DETERMINISTIC RETURN 'こんにちは';
さて、これを、いままでの hello() と以下のようにして入れ替えた。
mysql> DROP FUNCTION hello;
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER //
mysql> CREATE FUNCTION hello() RETURNS VARCHAR(50)
-> DETERMINISTIC RETURN 'こんにちは';
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
mysql>
では、実際に動くかどうか試してみよう。
mysql> SELECT hello(); +------------+ | hello() | +------------+ | こんにちは | +------------+ 1 row in set (0.00 sec) mysql>
ちゃんと動作しているようである。
では、念のために、現在のキャラクタセットがどうなっているか確認しておこう。
mysql> SHOW VARIABLES LIKE 'character\_set\_%'; +--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | +--------------------------+--------+ 6 rows in set (0.00 sec) mysql>
いけない、latin1のままになっている。 漢字が使えるように、ここでは、eucjpms に設定して、 再度実行してみよう。
mysql> SET NAMES eucjpms; Query OK, 0 rows affected (0.00 sec) mysql> SELECT hello(); +------------------------------+ | hello() | +------------------------------+ | ・?・・・・・・・・ | +------------------------------+ 1 row in set (0.02 sec) mysql>
となってしまった。
日本語が表示できない状態になっているのだろうか、確認もしておこう。
mysql> SELECT 'こんにちは'; +------------+ | こんにちは | +------------+ | こんにちは | +------------+ 1 row in set (0.00 sec) mysql>
そんなことはないようだ。 日本語文字列を返す関数のときに注意すべきことを何か忘れたようだ。 次回までに、しっかり考えてみることにしよう。
フィードバック:
There is no comment.