2019-02-01から1ヶ月間の記事一覧

オブジェクトサイズ取得

DB

Oracle select * from dba_segments;select * from user_segments; select d.tablespace_name, d.gbytes "total[GB]", NVL(f.gbytes,0) "free[GB]",d.gbytes - NVL(f.gbytes,0) "used[GB]",(1 - (NVL(f.gbytes,0)/d.gbytes))*100 "used_percent"from(SELECT …

パスワード入力省略

DB

Oracle OS認証であればパスワード入力不要 MySQL --(1)my.cnfに設定する方法 vim /etc/my.cnf [client]user = user1password = user1database = test [mysqldump]user = rootpassword = root --(2)環境変数に設定する方法export MYSQL_PWD='password' Postgr…

パスワード変更

DB

Oracle alter user sys identified by "oracle"; MySQL set password for 'user2'@'%' = password('password'); (8.0)set password for 'user2'@'%' = 'password'; PostgreSQL alter role postgres with password 'postgres'; SQL Server USE [master]GOALTE…

DDL取得

DB

Oracle set long 4000000set longchunksize 4000000 exec dbms_metadata.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM,'SQLTERMINATOR',true); select dbms_metadata.get_ddl('TABLE','TAB1','TEST') from dual; MySQL --テーブル定義mysqldump -u …

ディクショナリ

DB

Oracle --データベース一覧 ps -ef | grep pmon --テーブルスペース一覧 select * from dba_tablespaces;select * from v$tablespace;select * from dba_data_files; --スキーマ一覧 ユーザ一覧参照 --ユーザ一覧 select * from dba_users; --ロール一覧 sel…

グローバル変数

DB

Oracle show parametershow parameter optimizer_index_cost_adj alter system set optimizer_index_cost_adj = 200 scope=both sid='*'; alter session set optimizer_index_cost_adj = 201; MySQL ※変数名内の下線をダッシュとして指定できます show varia…

処理時間表示

DB

Oracle set time onset timing on MySQL ※デフォルトで表示される PostgreSQL \timing SQL Server https://qiita.com/maitake9116/items/ed3037badc90de18b0e6 SET STATISTICS TIME ONgo declare @time datetime2 = sysdatetime()exec dbo.proc1;select date…

区切り文字変更

DB

Oracle (19c)set colsep ',' SET MARKUP CSV ON ※SET MARKUP CSVは12cR2から使用可能 MySQL http://ryoff.hatenablog.com/entry/2013/01/07/145917 バッチモード(-B)で実行するとタブ区切りとなる PostgreSQL https://qiita.com/nozma/items/370f69b8bd09daf…

プロンプト変更

DB

Oracle set sqlprompt '&_connect_identifier(&_user)> ' MySQL (8.0.29) vim /etc/my.cnf [client]prompt='\\d(\\U)> ' prompt \d(\U)> PostgreSQL \set PROMPT1 '%/(%n)=# ' SQL Server ※変更機能はない模様

現在時刻確認

DB

Oracle alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';select sysdate from dual; MySQL SELECT NOW();SELECT CURRENT_TIMESTAMP();SELECT CURRENT_TIMESTAMP; PostgreSQL select clock_timestamp(); SQL Server select GETDATE(); select sys…

文字コード確認

DB

Oracle select * from v$nls_parameters; MySQL show variables like '%char%';show variables like '%collation%'; show character set;show collation; select @@character_set_database; PostgreSQL SELECT character_set_name FROM information_schema.c…

接続ユーザ確認

DB

Oracle sho user MySQL status; select current_user(); PostgreSQL select current_user; SQL Server select current_user; select SUSER_SNAME();

接続スキーマ確認

DB

Oracle 接続ユーザ確認と同様 MySQL 接続DB確認と同様 PostgreSQL select current_schema(); SQL Server postgresqlのように切り替えはできない。既定のスキーマは以下のSQLで確認できる select name,default_schema_name from sys.database_principals;go

接続DB確認

DB

Oracle select * from v$instance; MySQL SELECT database(); PostgreSQL select current_database(); SQL Server select @@SERVERNAME as 'サーバー名',DB_NAME() as 'データベース名';go

バージョン確認

DB

Oracle select * from v$version; MySQL select version(); PostgreSQL select version(); SQL Server SELECT @@VERSION;go sp_server_infogo SELECT name, compatibility_level FROM sys.databases go

リモート接続

DB

Oracle cd $ORACLE_HOME/network/admin vim listener.ora LISTENER = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=mmm050)(PORT=1521)) ) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=orcl.example.com) (SID_NAME=orcl) (ORACLE_HOME=/u01/…

複数インスタンス起動

DB

Oracle ORACLE_HOMEを変更すれば同一サーバに異なるインスタンスをインストール可能 export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_2 DB名をかえないと同じアラートログにログが書き込まれる MySQL --データディレクトリの初期化mkdir -p /var/…

シノニム

DB

Oracle create synonym syno1 for test.tab1; select * from syno1; MySQL ※MySQLにシノニムはない --データベースに一括で別名を付与するプロシージャがある。 (5.7) http://sakaik.hateblo.jp/entry/20170126/mysql_synonym_db 基のスキーマ内のすべての表…

マテビュー

DB

MySQL ※MySQLにネイティブなマテビューはない (5.6)--Flexviewshttps://archive.fosdem.org/2015/schedule/event/flexviews/attachments/slides/600/export/events/attachments/flexviews/slides/600/Flexviews_slides.pdfhttp://greenlion.github.io/swanha…

スケジューラ

DB

Oracle (19c)https://oracle.programmer-reference.com/dbms-scheduler-create-job/ BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'JOB1', job_type => 'STORED_PROCEDURE', job_action => 'TEST.PROC1', number_of_arguments => 1, start_date => TO_DAT…

シーケンス

DB

Oracle CREATE SEQUENCE seq1 START WITH 1000 INCREMENT BY 1 NOCACHE NOCYCLE; MySQL ※MySQLにシーケンスはない。AUTO_INCREMENTを使用する PostgreSQL \ds+ CREATE SEQUENCE seq1 START 101;CREATE SEQUENCE seq2 increment by 1 minvalue 1 maxvalue 100…

ビュー

DB

Oracle create view view1 as select * from tab1; MySQL show create view view1; CREATE VIEW view1 AS SELECT * FROM tab1; select TABLE_SCHEMA,TABLE_NAME from information_schema.tables where TABLE_TYPE = 'VIEW' and TABLE_SCHEMA = 'test'; Postg…

トリガー

DB

Oracle CREATE OR REPLACE TRIGGER trig1 BEFORE INSERT OR UPDATE OR DELETE ON tab1BEGIN CASE WHEN INSERTING THEN DBMS_OUTPUT.PUT_LINE('Inserting'); WHEN UPDATING THEN DBMS_OUTPUT.PUT_LINE('Updating'); WHEN DELETING THEN DBMS_OUTPUT.PUT_LINE(…