PostgreSQLの最近のブログ記事

DBの文字コード変換&移行

| コメント(1)

【UNICODE】のDBから 【EUC_JP】のDBへデータを移行する方法
データベースは dbUNI, dbEUC という名前だとする。

# pg_dump -D dbUNI > dbuni.out
# createdb -E EUC_JP dbEUC
# export PGCLIENTENCODING=UNICODE
# psql dbEUC < dbUNI.out
# export PGCLIENTENCODING=EUC_JP

これで新しいDBへデータの移行が完了する。
JSPアプリの場合は一点を除き、特に手直しなしでそのまま使えた。
それは全角ハイフンが正しく処理できないことだ。「?」に文字化けしてしまう。
JSPファイルは

<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J"%>
.
<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS">
となっている。
formから「-」文字を受け取ると「?」に変わってしまうのだ。
new String(src.getByte("8859_1"), "MS932");
DBがOracleの場合、上記でOKだったんだけどな…。
もうちょっと調べないとならない…。誰か知ってたら教えて。

シーケンス値の操作

| コメント(0)

【シーケンス値の取得】
SELECT last_value FROM *****_seq;

【シーケンス値の最大値取得】
SELECT max_value FROM *****_seq;

【シーケンス値の最小値取得】
SELECT min_value FROM *****_seq;

【シーケンス値の再定義】
たとえば 100 にしてみる。
SELECT setval('*****_seq', 100);

WindowsクライアントからのODBC接続

PostgreSQL のODBC ドライバです。
PostgreSQL ODBC Driver 07.01.0006 日本語版 2001/07/13 版

PostgreSQL ODBC Driver 日本語版

以下は同じもののようだがインストーラ付きである。
OFFice Nami というところで簡単インストール版が配布されている。

インストールは簡単で一発ダブルクリックするだけ。
で (/usr/local/pgsql/)data/pg_hba.conf に以下の行を追加して LAN からのアクセスを許可するようにし、Postgresql を再起動する。( ) はボクの場合。他のところに Postgresql をインストールした人はそこで。IP アドレスもね。

host all 192.168.1.1 255.255.255.0 trust

自分の場合、剣道の道場の公開スケジュールシステムを Tomcat + JSP で書いているのだが文字コード変換が面倒だったので UNICODE でDB作成してしまってる。せっかく Access から接続できるようにはなったのだが、文字化けでよめましぇ~ん。 手直しして EUC-JP に変えようかな(^^;

シーケンスの作成

| コメント(0)

PostgreSQL 7.2.1
serial 型というのがあってこれで宣言しておくとテーブル生成と同時に一意のシーケンスが生成される。MS-Access のオートナンバー型といっしょ。

create table tblSC (
sc_no serial primary key,
sc_ym character(6) not null,
sc_day character(2) not null,
sc_title varchar(60) not null,
sc_ketteiflg character(1)
);

insert into tblsc (sc_ym, sc_day, sc_title) values ('200406', '22', 'AAA');
insert into tblsc (sc_ym, sc_day, sc_title) values ('200406', '22', 'BBB');
insert into tblsc (sc_ym, sc_day, sc_title) values ('200406', '22', 'CCC');
insert into tblsc (sc_ym, sc_day, sc_title) values ('200406', '22', 'DDD');


*実際に実行すると
uni=> create table tblSC (
uni(> sc_no serial primary key,
uni(> sc_ym character(6) not null,
uni(> sc_day character(2) not null,
uni(> sc_title varchar(60) not null,
uni(> sc_ketteiflg character(1)
uni(> );
NOTICE: CREATE TABLE will create implicit sequence 'tblsc_sc_no_seq' for SERIAL column 'tblsc.sc_no'
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'tblsc_pkey' for table 'tblsc'
CREATE
uni=>
uni=> insert into tblsc (sc_ym, sc_day, sc_title) values ('200406', '22', 'AAA');
NOTICE: tblsc_sc_no_seq.nextval: sequence was re-created
INSERT 17527 1
uni=> insert into tblsc (sc_ym, sc_day, sc_title) values ('200406', '22', 'BBB');
INSERT 17528 1
uni=> insert into tblsc (sc_ym, sc_day, sc_title) values ('200406', '22', 'CCC');
INSERT 17529 1
uni=> insert into tblsc (sc_ym, sc_day, sc_title) values ('200406', '22', 'DDD');
INSERT 17530 1

uni=> select * from tblsc;
sc_no | sc_ym | sc_day | sc_title | sc_ketteiflg
-------+--------+--------+----------+--------------
1 | 200406 | 22 | AAA |
2 | 200406 | 22 | BBB |
3 | 200406 | 22 | CCC |
4 | 200406 | 22 | DDD |
(4 rows)

Dropする時は
drop table tblSC;
drop sequence tblsc_sc_no_seq;

参考URL
http://ash.jp/db/pg_use.htm

ウェブページ

  • about
Powered by Movable Type 5.2.10

このアーカイブについて

このページには、過去に書かれたブログ記事のうちPostgreSQLカテゴリに属しているものが含まれています。

前のカテゴリはPersonal Computerです。

次のカテゴリはPowerSupplyです。

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