ラベル Oracle の投稿を表示しています。 すべての投稿を表示
ラベル Oracle の投稿を表示しています。 すべての投稿を表示

2015年8月29日土曜日

特定のキーでグループ化したものをそのグループ内で採番する


やりたいことの出力イメージ

オーバー関数を使うことでできた!

SELECT row_number() over(partition by id order by id) as no FROM sample

Oracle11gで検証

2014年4月10日木曜日

Oracleでディレクトリとかのメモ

create DIRECTORY XXX as 'C:\XXX';
XXX とC:\XXXは任意。XXXは名前。C:\XXXは
フォルダのパスを記述。

2014年2月24日月曜日

Oracle限定SQL備忘録その2 UPDATE

SQL備忘録第2弾

INSERTに続いてよく使うのはUPDATE(-。-;
あくまで、gggの話です(-。-;

UPDATE
読み:アップデート
機能:データを更新する
検証DB:Oracle10gR2
※参考にする場合は必ず動作検証してください

次の2つのテーブルをサンプルとして使用。
 ○テーブル名:酒
  列1:Jコード (varchar2)
  列2:名称 (varchar2)
  列3:酒造 (varchar2)

 ○テーブル名:日本酒
  列1:Jコード (varchar2)
  列2:名称 (varchar2)
  列3:酒造 (varchar2)


UPDATEの実行例を2点程
○ケース1:テーブル日本酒の酒造を特定の値で更新
   UPDATE 日本酒 SET Jコード = '9999999999999' WHERE 名称 = '鷹来屋'; 

○ケース2:テーブル日本酒とテーブル酒でJコードが一致するものにおいて、
  テーブル日本酒の名称でテーブル酒の名称を更新する
 UPDATE 酒 s SET (名称 ) =  (SELECT n.名称 FROM 日本酒 n WHERE s.Jコード = n.Jコード);

こんなとこかなぁー


2014年1月27日月曜日

Oracle限定SQL備忘録その1 INSERT

gggは業務の都合で、SQLを書かない日はないというと大げさですが、
何ら形で、毎日SQLとは関わっています。
が、SQLの構文を覚えれないのです。。。
いつもの書くときどーだっけってなりますw
ということで、SQLの備忘録として、ログっていきます。
gggはOracle以外のDBを触ることが殆ど無いので、なので、
備忘録はOracle限定ですw

記念すべき一回目はINSERT (インサート)
よく使うけど、空で書けないSQLのNO1です。ggg的にですが...

INSERT
読み:インサート
機能:データを登録する
検証DB:Oracle10gR2
※参考にする場合は必ず動作検証してください

次の2つのテーブルをサンプルとして使用。
 ○テーブル名:酒
  列1:Jコード (varchar2)
  列2:名称 (varchar2)
  列3:酒造 (varchar2)

 ○テーブル名:日本酒
  列1:Jコード (varchar2)
  列2:名称 (varchar2)
  列3:酒造 (varchar2)

INSERTの実行例を2点程
○ケース1:テーブル日本酒にレコードを登録
 INSERT INTO 日本酒 (Jコード,名称,酒造) VALUES ('9999999999999','獺祭','旭酒造');

 ○ケース2:テーブル日本酒を取得し、取得結果をテーブル酒に登録
 INSERT INTO 酒( SELECT * FROM 日本酒 WHERE Jコード = '9999999999999');
注意:テーブル酒とテーブル日本酒のテーブルレイアウトが同じである必要がある

よく使うINSERTのケースはこんところかな〜
次回はUPDATEにしよ☆












2011年7月27日水曜日

Oracle(11gR2)にてIndexヒント句を使う時のメモ

ヒント句はテーブル名とインデックス名を記述するけど、
FROM句でテーブル名に別名つけている場合は、ヒント句に記述するテーブル名も別名にしないとダメそう。

SELECT /*+ INDEX(a index_a) */ * FROM emp a WHERE a.emp_id = '999';

あと、ヒントを複数指定する場合
SELECT /*+ INDEX(a index_a) INDEX(b index_b) */ * FROM emp a,school b WHERE a.emp_id = b.emp_id;



2010年1月29日金曜日

忘れないうちにプロシージャについてメモ

シノニムを作ってアクセスしているテーブルをプロシージャからSELECT文を書きコンパイルすると、表が見つかりませんなるエラーがでた。
普通にSQLからSELECTするのはいけるのにと思ってここ数日悩んでいたが、やっと解決☆忘れないうちにうちにメモ☆


エラーメッセージの内容は表が見つからないだったけども、どうやら権限不足だったみたい。

次の文を発行して、権限を付加するとうまくいった。

grant select on ATABLE toスキーマ名

もちろん自分では解決していないwww
先輩ありがとう。