argius note

プログラミング関連

database

OracleのBlob

これ推測が多いです。 実用性を考えると、バージョンアップで美しく改善するより、下位互換性を維持することのほうが重要とは思うが、とにかく美しくないな、と思う。"VARCHAR2"然り、"RTRIM(NAME) IS NULL"然り。"BLOB≠java.sql.Blob"というのを知ってたま…

Oracle10g 無償版

Error Page 404 (http://d.hatena.ne.jp/sardine/20060810#p1 経由) こういう調査を怠っている私はヤバイ。まとめとか見てる場合じゃねぇー>自分。やっぱり、こっちを使うべきですね。だけど、本当はPostgresに慣れちゃったし、ユーザ登録要るし、Oracleの(…

PostgreSQL8.0.7に置き換え

ちょっと前に8.0.7立てたけど、困ったことに型の扱いが厳しくなったみたい。Java1.4で試しています。 7.5.3の時点ではこれはOKでした。 > INSERT INTO TEST (A_NUMBER) VALUES ('0') # A_NUMBER's type is BIGINTところが、8.0.7では、 org.postgresql.util.…

from Oracle to PostgreSQL (2)

続き。関数は、ユーザ定義でエミュレートする。例えば、以下のようにする。 CREATE FUNCTION NVL(CHAR, CHAR) RETURNS CHAR AS ' BEGIN IF $1 IS NULL THEN return $2; END IF; RETURN $1; END; ' LANGUAGE SQL ユーザ定義も含めて関数のシステムテーブルは"…

from Oracle to PostgreSQL

Oracleに依存したSQLプログラム部分をPostgreSQL用に書き換える、のメモ。 JDBC URL jdbc:oracle:thin:@hostname:1521:schema jdbc:postgresql://hostname:5432/dbname Type (完全な互換ではなく読み替え) CHAR VARCHAR2 NUMBER(I,D) DATE CHAR VARCHAR INTE…

データベースの空文字列

Oracleでcharまたはvarchar2の文字列フィールド NAME VARCHAR2(32) (NULL可) に対して、「nullまたはスペース文字列」という条件で問い合わせを行おうとして、次のようなWHERE句を書いた。 WHERE NAME IS NULL OR LTRIM(RTRIM(NAME)) = '' これだと、NAMEがn…