- - PR -
対象が不特定で多数の場合の update について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-06-01 16:27
初歩的な質問をさせてもらいます。
update 社員情報 set ステータス=1 where 社員番号 in(1001,1002,1003); 上の例で、任意の既存社員の"ステータス"を1にすることを考えていて、 対象となる社員番号はエクセルなど別のファイルに持っています。 この場合は、どのように処理するのがお勧めですか。 処理対象となる社員番号一覧がDB上にないので、 直接sqlのin句に記述するのか、 エクセル上の対象者一覧を一旦DBのテンポラリに入れて処理する、 などを考えています。(対象となるのは数千件程度です) ただ件数が多いので、sql文にするのもやっかいかと。。 ※DBは特定していません・・・ 何か簡単な方法があるのかもしれませんが 宜しくお願いします! |
|
投稿日時: 2005-06-01 17:01
はじめまして
>対象となる社員番号はエクセルなど別のファイルに持っています。 >処理対象となる社員番号一覧がDB上にないので、・・・ ということでしたら、まず、処理対象となる社員番号一覧をDB上に登録して、 update 社員情報 ステータス=1 where 社員番号 in (select 社員番号 from 社員番号一覧) とするのが一番素直な方法かと。 Oracleでしたら、@ITの記事が参考になると思います。 ExcelデータをOracleに格納する裏技 http://www.atmarkit.co.jp/fdb/single/03_excel2oracle/excel2oracle_01.html 上の他にExcel⇒Oracleの一方通行でよいのでしたら、Execlをcsv形式で保存して、 SQL*Loaderで表にInsertという方法もあります。 もしかして、ファイルをDBに上げる事に支障があるんでしょうか? |
|
投稿日時: 2005-06-01 17:57
回答ありがとうございます。
>ということでしたら、まず、処理対象となる社員番号一覧をDB上に登録して、 >update 社員情報 ステータス=1 where 社員番号 in (select 社員番号 from 社員番号一覧) >とするのが一番素直な方法かと。 やはりそうですか。。 >もしかして、ファイルをDBに上げる事に支障があるんでしょうか? いえ、ODBCの環境を整えているので、エクセル、アクセスからのexportが可能です。 普段やらない操作だったので、手間をかけずにどうやるのが無難なのか どなたかに相談したいと思っていたところです。 あまり深く考えず、DB上のテンポラリを作ってやってみます。 |
1
