データベース関連

SQL一般

Oracleに関するメモ

T-SQL関連メモ

このページでは主にOracleのSQLに関する情報を載せる。 Sql ServerのSQLに関しては T-SQL関連メモを参照のこと

Tips

ストアドプロシージャのソースを見たい

  • ユーザオブジェクトの中からストアドプロシージャ名を列挙するにはこうする。
    select object_name,object_type from user_objects where object_type='PROCEDURE';
  • ソースを見たいときはこういうふうにする。
    select text from user_source where name='適当なプロシージャ名';

外部表の使い方

  • 外部表とは、外部ファイルをあたかも表であるかのように直接参照したもの。ビューの一種と考えられる。
  • 具体的な設定の仕方は下記URLを参照。

一時表領域のファイルをリサイズする方法

一時表領域は通常のalter tablespaceなどではリサイズできない。以下のようにする。

--作成時のCREATE文
CREATE TEMPORARY TABLESPACE WEBGIS_TEMP
TEMPFILE 'E:\GISDB\TEMP\WEBGIS_TEMP01.DBF' SIZE 18434M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED

このような表領域があるとする。これに対して以下のコマンドを適用する。

SQL> alter database tempfile 'E:\GISDB\TEMP\WEBGIS_TEMP01.DBF' drop including datafiles;
データベースが変更されました。

この時点で一時表領域のあるファイル(.DBF)が削除される。
次に新しいDBFを希望のサイズで作成する。

SQL>alter database tempfile 'E:\GISDB\TEMP\WEBGIS_TEMP01.DBF' drop including datafiles size 1000M;
表領域が変更されました。

temp領域を使っているセッションがあると失敗するので全部止めてからやること。

あるテーブルのフィールドにインデックスがあるか調べる

こんな感じ

select * from user_ind_columns where table_name = <table_name> and column_name=<field_name>;

結果が0件ならインデックスはない。そうでないならある。

DBに入っている文字列の文字コードを16進ダンプする

SELECT RAWTOHEX(フィールド名) from テーブル名

実行例

>select fld_1,rawtohex(fld_1) from kizon
FLD_1
-----------------------
RAWTOHEX(FLD_1)
-----------------------
店舗1
935895DC8250

店舗2
935895DC8251

大久保店
91E58B7695DB9358

馬場店
946E8FEA9358

t戸山店
748CCB8E529358

各テーブルのフィールドプレフィックスを一覧表示するSQL

SELECT
 table_name, pr
FROM 
(
 SELECT
  table_name,
  SUBSTR(column_name,1,INSTR(column_name,'_') - 1) pr
 FROM
  user_tab_columns
)
GROUP BY
 table_name, pr
ORDER BY
 pr
;

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-06-29 (木) 21:48:58 (1418d)