teradata

AVG関数の戻り値

細かい話ですが、AVGの戻り値はREAL型のようなので、明示的に変換しないと精度が失われます。*1 明示的にキャストすることで回避出来ます。(マニュアルにも記載あり) 厄介なことに、下手にCASE式で使うと他の条件の場合も精度落ちします。注意。 CREATE MU…

名前が被った時

列の別名 - 総天然色頁の続き。 SELECT 1 + 1 AS val, val * 10 AS val2 は、下記のようになります。 val val2 2 20 名前が被った場合は、解決順が変わるみたいです。 SELECT val + 1 AS val, val * 10 AS val2 FROM (SELECT 1 AS val) AS x val val2 2 10

列の別名

「Joe Celko / プログラマのためのSQL 第2版」でSQL覚えたくちなので、SELECT句は最後に実行されるはず、という理解だったんですが、Teradata Databaseでは、group byやorder byでも別名使えます。というか、これが通るのにはびっくりしたw select 1 as one,…

パーティション基本索引覚え書き(1)

パーティション基本索引(Partition Primary Index = PPI)を使うことで、テーブルのパーティショニングが可能。 テーブルのパーティショニングなので、SIには設定できない。 PRIMARY INDEX (COL1, COL2, ...) の後に PARTITION BY パーティショニング条件を付…

SETテーブルとMULTISETテーブル

何が違うのか判らなかったんですが、INSERT時に一意制約エラーが出るか出ないかが違う模様。 前提 一意制約エラーはUNIQUEになることを制約で保証している列に対して、既存の値をインサートしようとすると発生します。 Teradataでは、UPI(Unique Primary Ind…

UTF8の文字エクスポート幅

先日のJDBCのクライアント文字セットにUTF8を指定するとCHARが滅茶苦茶になる件は、ちゃんとドキュメント見たら載ってました。 The recommended workaround is to cast the char field to a varchar.え?VARCHARにするの? • Using cast SELECT CAST(col1 AS…

WeblogicでTeradataのDataSourceを使う

普通にTeradataにJDBC接続すると、初回のコネクション生成にやたら時間を食うので、 http://www.teradata.com/DownloadCenter/Topic9091-98-1.aspxを参考に、TeradataのDataSourceを設定してみました。記事はWeblogic8.1/9.1向けだけど、10でも大丈夫っぽい…

サーバー文字セットがUnicodeなのでクライアント文字セットをUTF-8にしたら、判定文が軒並みスルーされたでござるの巻

JDBC Type4ドライバー(Implementation-Version: 12.00.00.01)でCHAR型の文字長計算があれな件。 準備 サーバー文字セットがLATINの列を持つテーブルを用意する。(Teradata Sql Assistant等を使って、JDBC以外から実行) CREATE MULTISET TABLE FOO ( COL1 CHA…

ノアだけはガチ

Teradata Documentationの、Database Design(B035-1094-067A) p.374の表の中に、"Misawa" "Mitsuharu"の文字が!?

S2JDBCで@GeneratedValueなカラムしかないエンティティをインサートしてみる。

たまたまDialectの調査してたら気づいた。 create table FOO (ID int not null primary key generated always as identity); こんなテーブル定義にあうようなエンティティを作ってみる。 @Entity public class Foo { @Id @GeneratedValue public int id; } …

S2JDBC用のTeradataDialect調査

中の人はstandardDialectで問題ないって言ってたけど、折角だからそれっぽく作ってみる。 2008-07-29追記 convertGetCountSql order by句対策が必要 convertLimitSql distinct, order by句対策が必要 getDefaultGenerationType GenerationType#IDENTITY getI…

RI用のテーブル名は元テーブル名の28字まででござるの巻

CREATE TABLE AAAAAAAAAABBBBBBBBBBCCCCCCCCCC ( COL1 CHAR(2) CHARACTER SET LATIN PRIMARY KEY ) ; ALTER TABLE AAAAAAAAAABBBBBBBBBBCCCCCCCCCC ADD CONSTRAINT FOO FOREIGN KEY (COL1) REFERENCES HOGE(FUGA) ; > AAAAAAAAAABBBBBBBBBBCCCCCCCC_0テーブ…

参照制約をつけたら追加/削除できなくなったでござるの巻

事象 これはOKなケース CREATE TABLE table1 (col1 VARCHAR(5) PRIMARY KEY); CREATE TABLE table2 (col2 VARCHAR(5) PRIMARY KEY); CREATE TABLE table3 ( col3 VARCHAR(5) REFERENCES table1(col1), col4 VARCHAR(5) REFERENCES table2(col2), primary key…

Teradata Databaseの勉強 其の1

特徴 徹底した多重化 冗長性=信頼性 並列処理に特化 スケールアウトで線形に性能増加 分散配置に関する管理が不要 データは勝手にハッシュ分散される 領域管理は大雑把でかなり楽そう 空いてる領域を勝手に使うかんじ? チューニングが自動、データ・バラン…