こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL文を教えてください

下記表があり、列0のデータを条件に,
列1,列2,列3の値を更新する方法を教えてください

表 :t_test
列0:管理No
t_test_no VARCHAR2(7) NOT NULL PRIMARY KEY
列1:値(文字)
t_test_data VARCHAR2(20)
列2:値(数値)
t_test_suu NUMBER(3,2)
列3:値(数値)
t_test_jousuu NUMBER(1,0)

データ例
列0, 列1, 列2, 列3
A000001, abc, 1.2, 0
A000002, Null, Null, Null
A000003, a1b2c3, 1.23, 2
A000004, opqrstuv, 0.2, 4
A000005, あいう, 0, 1

列0 条件のデータは必ず既存するものとする
つまり、更新(update)処理

投稿日時 - 2005-11-05 12:24:08

QNo.1758465

すぐに回答ほしいです

質問者が選んだベストアンサー

Nullの更新については下記のお話の通りだと私も思います。
長さ0の文字列('')とNullの等価性については、Oracleのバージョン、IS NULL関数の動き、条件設定時、マニュアルの表記など
いまいち同期が取れていず、ややこしい問題です。

やっぱり、私個人の感覚ですが、長さ0の文字列≒Nullと認識して
更新時は''ではなく、一括でNullを使用した方が固いと思います。

あと、これも良く解らなかったのですが
Excelのデータを一括してOracle側に更新したいと言う事でしょうか?

でしたら、Excel側に格納されているデータにもよるのですが、
少し工夫して、NVL関数やDECODE関数、LENGTH、TRIM系を駆使する必要があるかもしれません。

あ、ご存知かもしれませんが、DECODE関数はレスポンスが悪化します。
万を超える件数をUPDATEする時はご注意下さい。苦情がきます。笑。

投稿日時 - 2005-11-06 11:27:06

お礼

ありがとうございました
うまく出来ました

投稿日時 - 2005-11-08 08:48:22

ANo.4

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

>数値型列のnull、文字型列のnullのupdate方法
>を教えてください。

列の型が数値、文字に関係なく、nullで更新できる
はずです。これはSQLの標準仕様です。

update t_test
set t_test_data = Null,
t_test_suu = Null,
t_test_jousuu = Null
where t_test_no = 条件

投稿日時 - 2005-11-06 06:36:45

お礼

ありがとうございました
うまく出来ました

投稿日時 - 2005-11-08 08:47:58

>列0を条件に、
> 数値型列のnull、文字型列のnullのupdate方法
>を教えてください。

where t_test_suu is null or t_test_jousuu is null

で、数値列2列のいずれかが、nullであるデータを対象とします。

>理由といたしまして、多数のデータをexcelに存在しており、・・・

このくだりは、オラクルにどう関わるのか?判らないので、理解不能です。(^^;

投稿日時 - 2005-11-05 18:05:58

お礼

ありがとうございました
うまく出来ました

投稿日時 - 2005-11-08 08:47:39

ANo.1

update t_test set
t_test_data = なにか,
t_test_suu = なにか,
t_test_jousuu = なにか
where
t_test_no = 条件

ですが、これだとただのupdate文ですから、初歩中の初歩ですよね。
お聞きになっている意味が違いますか?

投稿日時 - 2005-11-05 12:37:08

お礼

早速のご回答ありがとうございます
列0を条件に、
 数値型列のnull、文字型列のnullのupdate方法
を教えてください。
下記でしょうか??

update t_test set
t_test_data = '',
t_test_suu = Null,
t_test_jousuu = Null
where
t_test_no = 条件

理由といたしまして、多数のデータをexcelに存在
しており、それを一括で更新したいと考えています

投稿日時 - 2005-11-05 13:15:31

あなたにオススメの質問