Oracle Database クエリ/PLSQLメモ

提供: Programming-Knowleodge.com
Oracle Databaseメモから転送)
移動先: 案内検索

SQL*Plus

SQLの内容をCSVに書き出す

SET NUMWIDTH 30
set pagesize 0
set linesize 10000
set trimspool on;
set colsep ',' -- カラムのセパレータ
set echo off
spool /usr/home/hogehoge/worker.csv -- クエリ実施の内容を書き出すファイルを指定
-- クエリを打つ
spool off -- クエリの実行結果をファイルにフラッシュ


SQLの実行計画を確認する

sqlplusにてSYSDBA権限でログイン(他にも方法はある。ロールさえ作成できればSYSDBA権限でなくても大丈夫なのかな?)

# sqlplus /@<ネットワークサービス名> as SYSDBA


実行計画を確認

@?/sqlplus/admin/plustrce.sql
GRANT PLUSTRACE TO <ユーザ名>;
conn <ユーザ名>/<パスワード>@<ネットワークサービス名>

set autotrace on explain
set autotrace on statistics
set autotrace on
set autotrace traceonly

SELECT  -- 実行計画採取SQL


実施中のSQLをキャンセルする

下記がわかりやすかったのでメモ http://tryerror.net/tryerror/wordpress/post-219


中間一致検索・後方一致検索でパフォーマンスを改善する

https://blogs.oracle.com/oracle4engineer/entry/oracleoracle_text

PL/SQL

UPDATE後、更新された行数を得る

http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19257-01/sqloperations.html#2356


メモ

SET NEWPAGE 0
SET PAGESIZE 0
SET TRIMSPOOL ON
SET TRIMOUT ON
SET ECHO ON
SET FLUSH OFF
SET HEADING ON
SET FEEDBACK OFF
SET VERIFY OFF
set SERVEROUTPUT on

--システムエラー発生時、1を戻り値にセットしてロールバック
WHENEVER OSERROR EXIT 1 ROLLBACK;
--ORACLEエラー発生時、1を戻り値にセットしてロールバック
WHENEVER SQLERROR EXIT 1 ROLLBACK;

SQL

物理テーブル名をDDLのコメント(論理テーブル名)から検索する

select 
 t1.TABLE_NAME as テーブル物理名, 
t1.COMMENTS as テーブル論理名
from user_tab_comments t1
where t1.COMMENTS like '%コメントを入れる%' 
order by t1.TABLE_NAME;