サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPad Air
oracle.se-free.com
※UNIX系OSの場合は、HOSTコマンドの替わりに「!」を使用できる 例2) HOSTコマンドで、OSコマンド実行モードへ移り、CDコマンド、DIRコマンド実行後、SQLPLUSへ復帰する
スポンサード リンク ALL_SYNONYMS は、ログインしているユーザーがアクセスできるシノニムをすべて示します。 DBA_SYNONYMS は、データベース内のシノニムをすべて示します。 USER_SYNONYMS は、ログインしているユーザーが所有するシノニムをすべて示します。 ALL_SYNONYMS/DBA_SYNONYMS/USER_SYNONYMSの主要項目一覧
スポンサード リンク SQLLOADERでロードするタイプは、以下の4つあります。 ・INSERT ロードするテーブルが空の場合に、テーブルにロードされます。 データがロード先のテーブルに存在してた場合、ロードされません。 ロードタイプを指定しない場合も、デフォルトはINSERTになります。 ・APPEND ロード先のテーブルにデータが存在する/しないに関わらず、ロードします。 ・REPLACE ロード先のテーブルにデータが存在してる場合、削除してから、ロードします。 エラー発生時は、ロールバックしますが大量データロード時には時間が掛かります。 ・TRUNCATE ロード先のテーブルにデータが存在してる場合、削除してから、ロードします。 エラー発生時は、lロールバックしませんが、大量データをロードする時の速度は REPLACEに比べると格段に早くなります。 例1) ロードタイプ「APPEN
スポンサード リンク グループ単位に、検索したレコードのn行前のデータを取得するには、LAG関数を使用する 分析関数のLAGは、ウィンドウ(window)を操作して、検索レコードのn行前のデータを取得します。
スポンサード リンク @の後に実行するSQLファイル名を指定します。 また、引数を受け取るには、SQLファイル内で'&1'、'&2'...と記述します。 例1) SQLファイル「c\cmd\select_data.sql」を実行する
スポンサード リンク DB_FILE_MULTIBLOCK_READ_COUNTは、全表走査時に一回のI/Oで読み込むブロック数を指定します。 指定サイズは大きければそれだけ早くなることになります。 しかしながら、一定サイズ以降は頭打ちになります。 頭打ちになるサイズは、 DB_FILE_MULTIBLOCK_READ_COUNT = OSの最大I/Oサイズ / DB_BLOCK_SIZE となります。 通常OSの最大I/Oサイズは1MBであるため、ブロックサイズが8KBとすると128となります。 DB_FILE_MULTIBLOCK_READ_COUNTの属性情報
CREATE TABLESPACE テーブルスペース名 [ DATAFILE ファイル名 [SIZE ファイルサイズ] [AUTOEXTEND { ON|OFF } ] ]
スポンサード リンク ●入力ファイル(事前に用意するファイル) ・データファイル DBへロードするデータが格納されたファイル。 拡張子は通常.datが使用されます。 ・制御ファイル データファイルのフォーマット、ロード先テーブル、ロードする条件などのロードする為の制御命令が指定されるファイル 拡張子は通常.ctlが使用されます。 ●出力ファイル(SQLLOADER実行で出力されるファイル) ・ログファイル SQLLOADERの処理結果が出力されます。 ・不良ファイル データの不正などで、テーブルにロード出来なかったデータファイルのレコードが出力されます。 ・破棄ファイル 制御ファイルのWHEN句で指定した、ロード条件を満たさなかったデータファイルのレコードが出力されます。 データファイル、不良ファイル、破棄ファイルは制御ファイルで指定します。
スポンサード リンク 管理者としてSQLPLUSにログインする場合は、ログイン時に「as sysdba」オプションを指定します。 ● 管理者でログインする。 C:\>sqlplus sys/change_on_install as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on 木 3月 29 00:43:45 2007 Copyright (c) 1982, 2005, Oracle. All rights reserved. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options に接続されました。 SQL> SQL> shutdown imm
CREATE OR REPLACE FUNCTION ファンクション名 [ (パラメータ変数1 [ IN | OUT | INT OUT ] データ型, : パラメータ変数n [ IN | OUT | INT OUT ] データ型) ] RETURN データ型 { AS | IS } /* 宣言セクション */ BEGIN /* 実行可能セクション */ EXCEPTION /* 例外セクション */ END [ ファンクション名 ]; ストアドプロシージャと似ているが、戻り値が存在することが異なる。 戻り値(RETURN)に指定するデータ型に、長さを指定することはできない。 例) × return char(2) ○ return char ファンクションは、SQL関数としてSQLから呼び出すことが出来ますが、以下の制約があります。 ・データベース表に変更を加えてないこと。 ・データベー
SQL> select * from emp01; EMP_ID DEPT_ID EMP_NAME YEARS SALARY ----- ----- ---------- ---------- ---------- E01 D01 なまえ1 3 150 E02 D02 なまえ2 7 200 E03 D03 なまえ3 7 300 E04 D02 なまえ4 7 400 E05 D03 なまえ5 3 500 E06 D02 なまえ6 3 600
CREATE TABLE 表1 ( 列名 データ型 制約,・・・) [ TABLESPACE 表領域名 ]
スポンサード リンク DBA_ROLE_PRIVS は、データベース内のすべてのユーザーおよびロールに付与されたロー ルを示します。 USER_ROLE_PRIVS は、ログインしているユーザーに付与されたロー ルを示します。 DBA_ROLE_PRIVS/USER_ROLE_PRIVSの主要項目一覧
表から取得した複数レコードの項目を、まとめてコレクションにセットする。 LIMITオプションで、一回に処理する件数を指定することもできる。 例えば、「LIMIT 100」と指定した場合、一回に100件処理することになる。 declar -- 表「emp」のコレクション型「emp_type」定義 type emp_type is table of emp%rowtype; -- コレクション型「emp_type」の配列定義 emp_rec emp_type; -- カーソル定義 cursor emp_rows is select * from emp; begin open emp_rows; -- 表「emp」から取得した項目を、配列「emp_rec」に代入する。 fetch emp_rows bulk collect into emp_rec; for i in 1 .. emp_rec
スポンサード リンク Oracle10gから、SGA_TARGETを指定することで、SGAのメモリー管理が自動化されます。 自動管理させる場合は、SGA_MAX_SIZEよりも小さいサイズで指定可能ですが、同じ値で設定した方がいいでしょう。 自動モードにすれば、パラメータDB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE、STREAMS_POOL_SIZEを、システム負荷や処理傾向に応じて自動的にリサイズされるので、個々に調整する必要はありません。 ただ、LOG_BUFFERなどの上記以外のSGAを構成するパラメータは、自動管理の対象外となります。 SGA_TARGETを使用するには、統計の収集レベルのパラメータである、STATISTICS_LEVELが「TYPICAL(デフォルト)」か「ALL」になっている必要があり
IN句を使用するより、EXISTS句を使用する方が、パフォーマンスが大幅に改善されることがあるので、IN句を使用するときは、EXISTS句で代替することも検討しましょう。詳細はチューニングを参照。 サンプル表「emp」データ SQL> select * from emp; EMP DEP NAME SALARY --- --- ---------- ---------- E01 D01 なまえ1 96 E02 D01 なまえ2 105 E03 D02 なまえ3 300 SQL>
スポンサード リンク ALL_TAB_COLUMNS は、ログインしているユーザーがアクセスできる全ての表、ビューおよびクラスタの列を 示します。 DBA_TAB_COLUMNS は、データベース内全ての表、ビューおよびクラスタの列を示し ます。 USER_TAB_COLUMNS は、ログインしているユーザーが所有する全ての表、ビューおよびクラスタの列を 示します。 ALL_TAB_COLUMNS/DBA_TAB_COLUMNS/USER_TAB_COLUMNSの主要項目一覧
スポンサード リンク PL/SQLを独立したトランザクションで実行するには、ストアドプログラムで「PRAGMA AUTONOMOUS_TRANSACTION」句を宣言します。 これにより、コール元のトランザクションとストアドプログラムのトランザクションは完全に分離されます。 その為、コール元でロールバックしても、ストアドプログラムではその影響を受けません。 同じように、ストアドプログラムでロールバックしても、コール元はその影響を受けません。 create or replace procedure insert_emp ( v_emp_id in char, v_emp_name in varchar2) as pragma autonomous_transaction; begin insert into emp values(v_emp_id,v_emp_name); commit; e
スポンサード リンク ファンクション・インデックスは、事前にインデックス検索で使用する関数を定義して値を変換させて、ツリー構造を作成します。 Bツリーインデックス列に関数を使用しても、インデックスは使用されずにテーブルフルスキャンになりますが、ファンクションインデックスを作成しておけば、SQL発行時に関数を使用しても、インデックスを使った検索が可能になります。 CREATE [ UNIQUE ] INDEX インデックス名 ON 表名 [ (関数名,・・・) ] [ TABLESPACE 表領域名 ]
初期化パラメータの設定値を表示します。 引数の、パラメータ名を省略した場合は、全てのパラメータの設定内容を表示します。 指定した、パラメータ名は部分一致で表示されるので、部分一致した該当するパラメータ名が全て表示されます。 以下のディクショナリを参照することでも、初期化パラメータを確認できます。 現在のセッションで有効なパラメータの確認 : V$PARAMETER、V$PARAMETER2 SPFILEに設定されているパラメータの確認 : V$SPPARAMETER 現在のインスタンスのパラメータの確認 : V$SYSTEM_PARAMETER、V$SYSTEM_PARAMETER2 例1) 初期化パラメータ「*block*」を確認する。 SQL> show parameters db_block NAME TYPE VA
SQL> select * from emp; EMP DEP JOB FIRST_NAME LAST_NAME SALARY --- --- --- ---------- ---------- ---------- E01 D01 J01 名字1 名前1 100 E02 D01 J01 名前2 名前2 250 E03 D02 J02 名前3 名前3 200 E04 D02 J03 名前4 名前4 220 E05 D02 J03 名前5 名前5 130 E06 D03 J03 名前6 名前6 150 SQL> select 2 dept_id,job_id,sum(salary) 3 from emp 4 group by cube(dept_id,job_id); DEP
スポンサード リンク エクスポートするレコードの条件を指定するには、QUERYオプションを指定する。 例1) テーブル「emp」の、列「salary」 >= 200 のレコードをEXPORTする ※エクスポートされたファイルは、カレントディレクトリの「export.dmp」となる queryオプションでは、SQL文のWHERE句を指定します。 queryオプションのダブルクウォート(")の前に円マーク(\)を指定していますが、これは制御文字ではなく、 通常の文字として、ダブルクウォート(")を認識させる為です。
一般ユーザー用のシステム権限。 ALTER SESSION、CREATE CLUSTER、CRETAE DAYABASE LINK、CREATE SEQUENCE、CREATE SESSION、CREATE SYNONYM、CREATE TABLE、CREATE VIEW 開発者のシステム権限。 CREATE CLUSTER、CRETAE INDEX TYPE、CREATE OPERATOR、CREATE SEQUENCE、CREATE PROCEDURE、CREATE TRIGGER、CREATE TABLE、CREATE TYPE
SQL> select * from emp01; EMP DEP NAME SALARY --- --- ---------- ---------- E01 D01 なまえ1 100 E02 D01 なまえ2 200 E03 D02 なまえ3 300 E04 D03 なまえ4 400 SQL> select * from emp02; EMP DEP NAME SALARY --- --- ---------- ---------- E01 D01 なまえ1 100 E02 D01 なまえ2 200 E05 D05 なまえ5 500
テーブルの列の型と同じ型で変数が定義される。 テーブルの型変更に、PL/SQLを変更しないで済むメリットがある。 NOT NULL制約のある列でも、変数にNOT NULLは適用されないのでNULLの代入が可能
スポンサード リンク ORACLE9iから、WITH句がサポートされました。 WITH句で指定したSQLの結果は、VIEWの様にSQL内部から参照することができます。 これにより、インランインビュー、や、内部結合、外部結合を使った複雑なSQLを分かりやすく見せることが出来ます。 構文は、WITHキーワードの後に、副問合せSQL結果のVIEW名と、ASキーワードに続いて括弧内にSQLを指定します。 以下の例では、副問合せ結果の「view01」と表「table01」を内部結合しています。 with view01 as ( select column99 from table99 where column01 = '01' ) select view01.column99, table01.column77 from table01, view01 where table01.column99
UTL_FILE.FRENAME(移動元ディレクトリパス,移動元ファイル名, 移動先ディレクトリ,移動先ファイル名); ファイル移動操作をする前に、移動するユーザにディレクトリの操作権限を付与する必要があります。 create directory ディレクトリオブジェクト名 as ディレクトリパス; grant read on directory ディレクトリオブジェクト名 to ユーザ名; grant write on directory ディレクトリオブジェクト名 to ユーザ名; create directory temp_from as 'c:\temp\from'; grant read on directory temp_from to user01; grant write on directory temp_from to user01; create directory
スポンサード リンク SQLの中でIF文のような条件式を使うなら、CASE WHEN ~ または DECODE関数を使用します CASE 式 WHEN 条件1 THEN 値1 WHEN 条件2 THEN 値2 ・ ・ ・ WHEN 条件n THEN 値n ELSE デフォルト値 END 式が条件1に一致(TRUEと評価)したら値1を戻し、条件1に一致せず条件2に一致したら値2を戻し、このように式と条件が一致する最初の値が戻されます。 どの条件とも一致しなかった場合は、ELSE句に指定したデフォルト値を戻します。 ただし、ELSE句(デフォルト値)は省略可能で、省略されたときはNULL値が戻されます。
SQL> @C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\UTLXPLAN.SQL 表が作成されました。 SQL> スポンサード リンク 例2)SQL「select * from emp where emp_id = 'E01';」の実行計画を取得する。 インデックス項目「emp_id」を検索キーとしている。 SQL> explain plan for 2 select * from emp where emp_id = 'E01'; 解析されました。 SQL> SQL> @C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\UTLXPLS.SQL PLAN_TABLE_OUTPUT ------------------------------------------------------------- Plan
次のページ
このページを最初にブックマークしてみませんか?
『忘れっぽいエンジニアのオラクルSQLリファレンス』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く