tnsping netサービス名
上記コマンドでどのtnsnames.oraを見ているのか、接続先に物理的につながるか(ID/PASSWORDは別)が確認できる。
SELECT NLS_CHARSET_NAME(NLS_CHARSET_ID('CHAR_CS')), NLS_CHARSET_NAME(NLS_CHARSET_ID('NCHAR_CS')) FROM DUAL;
SQL> select object_name,owner,object_type from all_objects where object_name='EMP';
SQL> SELECT SYSDATE FROM DUAL ; SQL> ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'; SQL> SELECT SYSDATE FROM DUAL ;
そのユーザーのセッションのみ変更なので、システム全体としてそろえたい場合は別の方法を検討せよ
SELECT * FROM テーブル WHERE 調査対象カラム <> TO_MULTI_BYTE(調査対象カラム) ;
select index_name, table_owner, table_name, status from user_indexes
使われていないインデックスを監視する仕組み
ALTER INDEX 索引名 MONITORING USAGE;
select * from v$object_usage;
ALTER INDEX 索引名 NOMONITORING USAGE;
dbms_output.put_lineを出すために、set serveroutput on;実行する
CREATE OR REPLACE TRIGGER tst_trigger before delete or insert or update -- before/after 対象の操作 on TABLE_NAME for each row (new.STATUS = 2) -- 新しい値が2の時。beforeトリガじゃないとダメ begin IF (:old.STATUS = 1) THEN dbms_output.put_line('-------------------------'); dbms_output.put_line('ID:' || :old.ID); dbms_output.put_line('STATUS:' || :old.STATUS); END IF; end tst_trigger;
select table_name from user_tables;
alter table テーブル名 MODIFY ( 列名 VARCHAR2(100));
desc テーブル名
RACの場合は各ノードで通信が発生するため、キャッシュを設定して増分値も挙げておくこと
create sequence シーケンス名
create sequence シーケンス名
increment by 1 start with 0 maxvalue 10000
select sequence_name from user_sequences;
select sequence_name, last_number from user_sequences;
SELECT シーケンス名.CURRVAL FROM DUAL
SELECT シーケンス名.NEXTVAL FROM DUAL
これを実行するとシーケンスが+されるので注意!ロールバックも効かない
select index_name ,table_name ,column_name from user_ind_columns where table_name = 'EMP';
execute プロシージャ名
select text from user_source where NAME = 'プロシージャ名' order by line
set serveroutput onを実施する必要がある。
SQL> set serveroutput on SQL> begin 2 dbms_output.put_line('test message'); 3 end; 4 / test message
http://centromezzo.sakura.ne.jp/wiki/?ORACLE%2FTABLESPACE
exp 接続文字列 file=好きなファイル名 tables=対象テーブル名 [statistics=none]
最後のオプションはWindowsのコマンドから実行するときによく出る「不審な統計をエクスポートしています」のエラー回避の為。
tables=TABLE1,TABLE2
imp接続文字列 file=好きなファイル名 tables=TABLE_A,TABLE_B IGNORE=Y [FROMUSER=EXPUSER] [TOUSER=IMPUSER]
大量データを投入するときはダイレクトパスインサートの利用を検討する。
alter session kill session (254,18520)