DB: 2008年5月アーカイブ

my.iniあたりにこんな記述を入れると幸せになれるかも。

==============
[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
==============

あ、決してDerbyである程度のデータ量になると、重すぎてやっぱ話になんないから、デフォルトのままチューニングもなにもしないであきらめて、MySQLにしてみたわけではないので。一応。念のため。


エクスポートは、規定のプロシージャを使う。
書式は下記のとおり。
========-
SYSCS_UTIL.SYSCS_EXPORT_TABLE (IN SCHEMANAME VARCHAR(128),
IN TABLENAME VARCHAR(128), IN FILENAME VARCHAR(32672),
IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1),
IN CODESET VARCHAR(128))
========

1つ目:スキーマ名。たぶんたいがいの場合において指定はいらない。
2つ目:テーブル名。指定してください。ここ指定しないと即エラーっす。
3つ目:ファイル名。エクスポートするファイル名を含めたパスを書きます。ここ指定しないと即エラーっす。存在するファイル名を指定してもエラーっす。パスなしのファイル名のみはカレントに出力される。
4つ目:カラムのデリミター。指定なしはカンマ","。
5つ目:カラムの中身が文字のときのくくり文字。カラムAに「あいうえお」って入ってたら,"あいうえお",みたいなの。指定なしはダブルクォーテーション"""。
6つ目:文字コード。指定なしはDerbyが動いているJVMの文字コードと同じ。

たぶんたいがいの場合において2番目と3番目だけ指定しときゃいいんじゃないでしょか。
※指定なしは、nullを入れる。

で、プロシージャ呼び出しなんでcallを使ってください。
こんな感じすね。

例)
call SYSCS_UTIL.SYSCS_EXPORT_TABLE (null,'HOGE','C:\\hoge.exp',null,null,null);

詳細はここ。
http://db.apache.org/derby/docs/dev/ref/ref-single.html#rrefexportproc

あと、これはバグに近いと思うんだけど、少なくとも10.3.1まではプロシージャ名が正しくても引数の数とか間違えると、まるでプロシージャ自体が存在しない風のエラーがでる。
========
ERROR 42Y03: 'SYSCS_UTIL.SYSCS_EXPORT_TABLE' is not recognized as a function or procedure.
========
ので要注意。

インポートはまた今度。


このアーカイブについて

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

前のアーカイブはDB: 2008年4月です。

次のアーカイブはDB: 2008年7月です。

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