目次
userdataテーブルのレコードを5件検索したいんです!という時。
SQL> select * from USERDATA where rownum between 1 and 5; UID NAME BIRTHDAY ---------- ---- ----------- 0000000001 KKTK 18-MAR-1983 0000000002 HGYS 13-NOV-1980 0000000003 NJAR 21-FEB-1983 0000000004 STKK 28-DEC-1982 0000000005 YMNY 08-AUG-1981
レコードを誕生日順にソートして尚且つ5件だけ表示させたいの!という場合はこんな感じ。
SQL> select * from (select UID, NAME, BIRTHDAY from 2 (select * from USERDATA order by BIRTHDAY)) 3 where rownum between 1 and 5; UID NAME BIRTHDAY ---------- ---- ----------- 0000000002 HGYS 13-NOV-1980 0000000005 YMNY 08-AUG-1981 0000000004 STKK 28-DEC-1982 0000000003 NJSR 21-FEB-1983 0000000001 KKTK 18-MAR-1983
これで5人の中でKKTKが一番若いって事が分かる訳です。非常に画期的!
ストアド・オブジェクトのテキスト・ソースを表示。
SQL> desc user_source Name Null? Type -------------- -------- ---------------------------- NAME VARCHAR2(30) TYPE VARCHAR2(12) LINE NUMBER TEXT VARCHAR2(4000)
ここを見るのが一番早いかも
oracleのアカウントを持ってる人はここが便利かも
上記以外
・ORA-00933: SQL command not properly ended
→SQL コマンドが正しく終了されていません。
SQL*Loaderで大量にデータを投入する際の留意点メモ。
・UNDO領域の領域不足
→デフォルトで64行毎にcommitされるので、1レコード長*64以上の領域が必要。
・アーカイブREDOログファイルの肥大
※ 尚、ダイレクト・パスモードで実行する場合は、上記について考慮する必要無し。
ある特定の列の表示属性を指定する。表示属性は以下のとおり。
・列見出しのテキスト
・列見出しの文字位置
・数値データのフォーマット
・列データの折返し
構文
column [{column|expr} [option ...]]
optionは幾つかあるが、今回は業務で必要なもののみ記載。
format
列の表示フォーマットを指定する。
usernameカラムの長さ(表示)を10にしたい場合は以下のとおり。
SQL> column username format a10
件数を指定してする。
とりあえずここ参照
set lines n
→結果の1行の文字数をnに設定する。
set pages n
→結果の1ページの行数を指定する。
set feed {n|OFF|ON}
→問い合わせがn件以上だった場合に、戻される行数を表示する。
set echo on/off
→入力文のエコー表示をするかどうかの設定を変更する。
データの件数の関係なく非常に高速にデータを削除することができる。
また、HWM(High Water Mark)をリセットできる。
SQL> TRUNCATE TABLE テーブル名
※HWMって何?って人はGoogleに…