‘oracle’ カテゴリーのアーカイブ

ODP.NetのOracleParameterをバインド変数名で使用するとOracleCommandデフォルト設定ではうまく動作しない

2008年12月20日 土曜日

ODP.NetでOracleParameterをバインド変数名でバインドしてもOracleCommandデフォルトの設定ではうまく動作しない。

OracleCommandのBindByNameプロパティをTrueに設定する必要がある。

ODP.NETでSQL TRACEをとる方法

2008年11月27日 木曜日

レジストリで下記の項目を設定する。

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\バージョン番号

でTraceLevelを設定する。

0..なし
1…入力、出力およびSQL実行情報
2…接続プーリング統計
4…分散トランザクション(登録および登録解除)

TraceFileNameにパスを設定する。

OracleのDATA PUMP(expdp/impdp)を使ったバックアップ方法

2008年7月30日 水曜日

sqlplusなどを使ってDBA権限でログオンし、登録しているバックアップ用のディレクトリの情報を確認する。

select * from dba_directories;

新しくディレクトリを登録するには下記コマンドを実行する。

create directory datapump_dir as ‘/usr/lib/oracle/xe/datapump’;

ユーザに権限を付与する。

grant read,write on directory datapump_dir to hr;

OSコマンドラインからexpdpを使用してバックアップを行う。

expdp hr/hr directory=DATA_PUMP_DIR dumpfile=hr.dmp

impdpを使用したリストア方法。下記のようにスキーマや表領域などをリマップすることも可能。

impdp hr2/hr2 dimpfile=DATA_PUMP_DIR:hr.dmp remap_schema=’hr’:'hr2′ remap_tablespace=’users’:'users2′ remap_datafile=’/usr/lib/oracle/xe/oradata/XE/users01.dbf’:/usr/lib/oracle/xe/oradata/XE/users02.dbf’

Oracleで検索結果からn件目からm件目までのデータを取り出すには

2008年7月25日 金曜日

rownumを利用する。1件目から取り出す場合は

select *  from emp where deptid = 123 and rownum <= 10

1件目を含まない場合、11件目から20件目までなどの場合は、サブクエリを使って

select * from (select rownum num, id, col1, col2, …. from emp where deptid = 123) where num between 11 and 20;

Oracle 10.2からパラメータファイルのsql_traceは非推奨に

2008年7月24日 木曜日

代わりにDBMS_MONITORパッケージを使用してsql_traceを設定する。

DBMS_MONITOR.DATABASE_TRACE_ENABLE(
waits IN BOOLEAN DEFAULT TRUE,
binds IN BOOLEAN DEFAULT FALSE,
instance_name IN VARCHAR2 DEFAULT NULL);

waits – 待機情報をトレースに出力
binds – バインド情報をトレースに出力
DBMS_MONITOR.DATABASE_TRACE_DISABLE(
instance_name IN VARCHAR2 DEFAULT NULL);

OracleでSPFILEからパラメータを削除するには

2008年7月24日 木曜日

下記SQLを実行する。(parameter_name),  (ORCL)には適切なものをセットする。

alter system reset (parameter_name) SCOPE=SPFILE SID=’(ORCL)’;

ODP.NetでOracleCommandのプレースホルダーを名前で指定するには

2008年7月15日 火曜日

デフォルトは位置指定になっているので、OracleCommandのBindByNameプロパティをTrueに設定する必要がある。