[pgsql-jp: 26595] Re: Oracle への移行

KUBO Takehiro kubo @ jiubao.org
2002年 7月 7日 (日) 09:07:26 JST


久保@茅ヶ崎市です。

Mikage Sawatari <mikage @ mikage.to> writes:

> > PostgreSQL7.1を使用しています。
> > DBの中の一部のテーブルをOracle8.1.7に移行したいのですが、
> > 現在この方法で行うと、主キーのところに、元はnullはないのに
> > import側で、nullになってしまいます。

どのようなデータが NULL になったのが例を出したほうが良いのでは。
これだけの情報では、よほど周知されていることでないかぎり、だれもわ
からないのではないかと思う。

> > Exportに問題があるのでしょうか?それともimport側なのか
> > わかりません。
>     
>     NULLになるのはVARCHAR型でしょうか?
>     
>     Oracle8.x では,'' (空文字列) と NULL は同値です.
>     ですので,もしデータ中に空文字列が含まれるのであれば,
>     NULL になるのが正常かと思います.

もしも主キーに空文字を使ってたら、動きとしては正常ですが、テーブル
設計は変なような。

> % ちなみに,Oracle9i で '' と NULL が同値でなくなったようです.
> % (ANSI準拠ということらしい)

最新版の Oracle9i Database Release 2 でも、'' と NULL が同値なのは
変わってないようです。

"Oracle9i SQL Reference Release 2 (9.2)"より引用:
http://technet.oracle.com/docs/products/oracle9i/doc_library/release2/server.920/a96540/sql_elements5a.htm

   Oracle currently treats a character value with a length of zero
   as null. However, this may not continue to be true in future
   releases, and Oracle recommends that you do not treat empty
   strings the same as nulls.

# この文言、Oracle 7.3 から変わってないような気がする....。

では、再見
-- 
神奈川県茅ヶ崎市在住 久保 健洋
email: kubo @ jiubao.org
web:   http://www.jiubao.org
GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1  9F47 C001 1F93 AC08 2262



pgsql-jp メーリングリストの案内