かきスタンプ

福岡で物流系のエンジニアやってます

Oracle

Oracle:文字列を日付型に変換するファンクション(できなければ nullを返す)

Oracleで、文字列を日付型に変換し、できなければnullを返すファンクションを書いてみた。 create or replace function CONVERT_TO_DATE ( ARG_DATE in varchar2) return date is FORMATTED_DATE varchar2(8); begin FORMATTED_DATE := substr(replace(ARG_D…

Oracle:インポートエラー(IMP:00013)の対処

エクスポート・ファイルはEXPORT:V10.02.01によって従来型パス経由で作成されました。 IMP-00013:DBAのみ別のDBAがエクスポートしたファイルをインポートできます IMP-00000:エラーが発生したためインポートを終了します。 というメッセージが出た時の対処。…

Oracle:主キーのカラム抽出

Oracleで主キーのカラムを抽出するSQL select USER_CONS_COLUMNS.OWNER ,USER_CONS_COLUMNS.TABLE_NAME ,USER_CONS_COLUMNS.COLUMN_NAME from USER_CONS_COLUMNS join USER_CONSTRAINTS on USER_CONS_COLUMNS.CONSTRAINT_NAME = USER_CONSTRAINTS.CONSTRAINT…

Oracle:サービス名を記述しないDBLINK

Oracleで異なるDBを使用する場合、DBLINKを使いますが、サービス名を記述しない書き方でもOKです。 記述例 CREATE DATABASE LINK <dblink_name> CONNECT TO <user_name> IDENTIFIED BY <password> USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521))(CONNECT_DATA=(SER</password></user_name></dblink_name>…

Oracle:デフォルト設定のパスワード有効期限切れ対策

Oracle11g以降は、パスワードの有効期限がデフォルトで180日となっています。 そのままにしておくと、180日経過後に突然ログインできなくなるので、パスワードの有効期限を延ばす(もしくは無期限に設定する)必要があります。 以下、SYSDBAで実行。 パスワ…

Oracle:テーブルのみをエクスポート

Oracleでテーブルのみをエクスポートする方法。 expを使う場合 exp user/pass@net_service_name TABLES=% FILE=filename.dmp expdpを使う場合 expdp \"user/pass@net_service_name AS SYSDBA\" DIRECTORY=dump_save_directory DUMPFILE=filename.dmp TABLES=…

Oracle:表領域ごとの使用量、使用率、空き容量を表示

Oracleにて、表領域ごとの使用量、使用率、空き容量を表示するSQLを書いてみた。 SQL select DBA_DATA_FILES.TABLESPACE_NAME ,min(DBA_DATA_FILES.BYTES)/1024/1024 as "現サイズ(MB)" ,round(min(DBA_DATA_FILES.BYTES)/(1024*1024) - sum(DBA_FREE_SPACE.…

Oracle:どんなSQLが過去に発行されたか追跡

過去に発行されたSQLを表示 select * from v$sqlstats これだけだと、誰が実行したか(ユーザ、マシンなど)がわからないので、合わせて知りたい場合はセッション情報と結びつける。 セッション確認 select * from v$session v$sqlstats.sq_id と v$session.…

Oracle:テーブル名一覧とカラム名一覧を取得

テーブル名一覧とコメントを取得 select USER_TABLES.TABLE_NAME ,USER_TAB_COMMENTS.COMMENTSfrom USER_TABLES left join USER_TAB_COMMENTS on USER_TABLES.TABLE_NAME = USER_TAB_COMMENTS.TABLE_NAMEwhere 1=1order by 1 カラム名一覧とコメントを取得 s…

Oracle:ロックセッションKILL(削除)

デッドロック発生時の対策。 ロックセッションサーチ SELECT SID, SERIAL# FROM V$SESSIONWHERE SID IN (SELECT SID FROM V$LOCKWHERE TYPE IN ('TM','TX')) SID、SERIAL# をメモし、以下のコマンドを実行。 ロックセッションKILL ※要管理者権限 alter syste…

Oracle:ORDCOM登録方法

Oracleを使用しているシステムにて、サーバ側でエクスポートを実行する処理をクライアントからキックする時、ORDCOM(RPC)を使用してます。内部ではバージョンごとに異なるバイナリを使っていて、バージョンが切り替わるたびに入れ替える必要がある模様。 …

Oracle:DB領域拡張

OracleでDB領域が足りなくなった時の拡張方法 1.DBFを拡張する alter database datefile 'E:oraclespace\tbspace01.dbf' resize 8192M ※resizeにて容量を指定。「MB」でなく「M」 2.DBFを追加する。(複数のdbfで構成する) alter tablespace TBL01 add …

Oracle:SYSDBAでのエクスポート/インポート

エクスポートをSYSDBAで実行する時、ログイン識別子をエスケープシーケンスで囲ってやればOKです。 実行例 expdp \"user/pass@net_service_name AS SYSDBA\" DIRECTORY=dump_save_directory DUMPFILE=filename.dmp SCHEMAS=schema_name expdpは、旧コマン…

Oracle:tnsnames.oraを記述しないDB接続

Oracleでの接続設定は tnsnames.oraに記述をしますが、別に書かなくても接続できちゃいます。 例:sqlplusからの接続 sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE…

EC2へのOracleインストール

EC2にOracleをインストールした時に躓いた点のメモ。 Windows Serverインスタンスを作成すると英語版が立ち上がり、デフォルト文字コードはANSIとなっています。「別に英語読む事なんか苦にならねーぜ!」と意気揚々とそのままOralceインストールしちゃうと…