k_o_r_o_c_h_a_n の回答履歴
- AテーブルからBテーブルへの展開
表題のとおりAテーブルのデータを展開し、 BテーブルへINSERTするというPLSQLを考えています。 以下ような感じです。 Aテーブル No 列A1 列B1 列C1 列D1 列A2 列B2 列C2 列D2 列A3 列B3 列C3 列D3 -------------------------------------------------------------- 上記表のデータを Bテーブル No 列BA 列BB 列BC 列BD ------------------------- No 列A1 列B1 列C1 列D1 ←列名の末尾が1のもの No 列A2 列B2 列C2 列D2 ←列名の末尾が2のもの No 列A3 列B3 列C3 列D3 ←列名の末尾が3のもの と、いう感じでBテーブルへ。 Aテーブルの列名は”列A1”のように末尾に数字がついておりBテーブルへは 末尾が同じものを1レコードとしてINSERTします。 これを実現する方法として CURSOR csr IS SELECT * FROM ( SELECT 列A1 ,列B1 ,列C1 ,列D1 FROM Aテーブル UNION SELECT 列A2 ,列B2 ,列C2 ,列D2 FROM Aテーブル UNION SELECT 列A3 ,列B3 ,列C3 ,列D3 FROM Aテーブル ); 上記のようにカーソルで処理してINSERTする以外に方法がありますでしょうか 因みにこの例では1~3項目ですが実際には1~15項目まであります。 BテーブルへINSERTする列数も13列存在します。 DBはORACLE9iです
- SQL*Plusから接続出来ません
使用OS:Windows2000Server Oracle9i Clientをあるパソコンにインストールを行い、SQL*Plusを起動してユーザ名、パスワード、ホスト文字列を入力しOKボタンをクリックしても、接続することが出来ません。 ちなみに、Oracle Enterprise Managerからは接続出来ます。何故このようなことが起こるのでしょうか?以上、宜しくお願い致します。
- コラムの値からコラム・テーブルを検索
プライマリキーが様々なテーブルで別の名前で利用されていると、テーブル同士の関連の全てが把握できずに困っています。以前にコラム名からテーブルを検索する方法を質問したのですが、私が扱っているデータベースでは、プライマリキーがシステムの別の場所で少しだけ異なる名前で利用されていることが多いので、その方法では把握できない関連が出てきます。 具体的には、EMPLOYEES__KEYというEMPLOYEESテーブルのプライマリキーがPERSONALIZE_EMPOYEESというテーブルでPSNLZ_EMP__KEYという名前で使われている状況を考えていただきたいと思います。PSNLZ_EMP__KEYのコラムのレコードは全てEMPLOYEES__KEY内のデータからとられているとします。 以前にselect TABLE_NAME from USER_TAB_COLUMNS where COLUMN_NAME = 'EMPLOYEES__KEY' というSQLで特定のコラムを使っているテーブルを全てリストアップできると教えていただいたのですが、今回のケースでは、同じような内容のコラムなのですが名前が異なるため上記のSQLでは検索できないテーブルがある場合、それをどうやってとってきたらよいのかということです。 コラムの値にtaro, jiro, hanakoなどのようにテーブルまたはシステム内でユニークな値が指定されている場合、コラムの値を指定し、「その値が使われているコラム・テーブルを列挙せよ」というような命令を与えればよいのだということまでは分かりますが、どのようにSQLを書けば良いか教えてください。
- ベストアンサー
- melechjapani
- Oracle
- 回答数2
- SELECT文内での条件分岐
すみませんが、ご指導お願いします。 ACCESS97+ORACLEを用いまして、データベースを操作するのを作成しています。 うまくいかなく立ち止まってしまいました。 パススルークエリを使用し、SELECT文内部の1項目内にcase文を使用して、値をだしたいのですが。 内容ですが: 条件項目のところ: (1)販売数が0のものは0とし (2)日当数/在庫数が1以下のものは、1とし (3)それ以外は、(日当数/在庫数)+0.9 上記の各それぞれでだされた値に「在庫数」をかける。 SELECT 商品コード,在庫数,販売数,販売数/稼動日 AS 日当数,(CASE WHEN 販売数=0 THEN 0 ELSE (日当数/在庫数) < 1 THEN 1 ELSE (日当数/在庫数)+0.9 END) END) * 在庫数 select文自体がcase文はできないのか、もし可能でしたら、自分の構文が何が悪いのか、ご指導お願い致します。
- SELECT文内での条件分岐
すみませんが、ご指導お願いします。 ACCESS97+ORACLEを用いまして、データベースを操作するのを作成しています。 うまくいかなく立ち止まってしまいました。 パススルークエリを使用し、SELECT文内部の1項目内にcase文を使用して、値をだしたいのですが。 内容ですが: 条件項目のところ: (1)販売数が0のものは0とし (2)日当数/在庫数が1以下のものは、1とし (3)それ以外は、(日当数/在庫数)+0.9 上記の各それぞれでだされた値に「在庫数」をかける。 SELECT 商品コード,在庫数,販売数,販売数/稼動日 AS 日当数,(CASE WHEN 販売数=0 THEN 0 ELSE (日当数/在庫数) < 1 THEN 1 ELSE (日当数/在庫数)+0.9 END) END) * 在庫数 select文自体がcase文はできないのか、もし可能でしたら、自分の構文が何が悪いのか、ご指導お願い致します。
- SELECT文内での条件分岐
すみませんが、ご指導お願いします。 ACCESS97+ORACLEを用いまして、データベースを操作するのを作成しています。 うまくいかなく立ち止まってしまいました。 パススルークエリを使用し、SELECT文内部の1項目内にcase文を使用して、値をだしたいのですが。 内容ですが: 条件項目のところ: (1)販売数が0のものは0とし (2)日当数/在庫数が1以下のものは、1とし (3)それ以外は、(日当数/在庫数)+0.9 上記の各それぞれでだされた値に「在庫数」をかける。 SELECT 商品コード,在庫数,販売数,販売数/稼動日 AS 日当数,(CASE WHEN 販売数=0 THEN 0 ELSE (日当数/在庫数) < 1 THEN 1 ELSE (日当数/在庫数)+0.9 END) END) * 在庫数 select文自体がcase文はできないのか、もし可能でしたら、自分の構文が何が悪いのか、ご指導お願い致します。
- SQL*Plusのhostコマンドについて
ご存知の方、アドバイスをお願いします。 SQL*PlusのLogin.sqlを使用して、Cドライブ上のExeが実行されるように、 "host c:\aaaaa.exe"という記述をしているのですが、 DOS画面までが開いてしまいます。 DOS画面は起動させずにExeファイルのウィンドウだけを起動させたいのですが、 どういう対処をしたら実現できますでしょうか? SQL*Plusのバージョンは8.1.6、OSはWindows2000です。 どうぞ宜しくお願いします。
- SQL*Plusのhostコマンドについて
ご存知の方、アドバイスをお願いします。 SQL*PlusのLogin.sqlを使用して、Cドライブ上のExeが実行されるように、 "host c:\aaaaa.exe"という記述をしているのですが、 DOS画面までが開いてしまいます。 DOS画面は起動させずにExeファイルのウィンドウだけを起動させたいのですが、 どういう対処をしたら実現できますでしょうか? SQL*Plusのバージョンは8.1.6、OSはWindows2000です。 どうぞ宜しくお願いします。