[Oracle] テーブル(table)定義を確認する DESCRIBE コマンド
- 2012 3/4
Oracle DB にて、テーブル定義を表示するコマンドは DESCRIBE です。
DESCRIBE tablename |
ちなみに、他のDBでテーブル定義を確認するにはそれぞれ以下のコマンドを実行します。
■ MySQL
desc tablename; |
■ PostgreSQL
\d tablename |
以上です。
【参考】
Oracle DB にて、テーブル定義を表示するコマンドは DESCRIBE です。
DESCRIBE tablename |
ちなみに、他のDBでテーブル定義を確認するにはそれぞれ以下のコマンドを実行します。
■ MySQL
desc tablename; |
■ PostgreSQL
\d tablename |
以上です。
【参考】
Oracle DB で自分で作成したテーブル一覧を表示するSQLを調べたのでメモ。
SELECT TNAME FROM TAB; SELECT TABLE_NAME FROM USER_TABLES; |
のどちらかを使えばOKです。
ちなみに、MySQLだと、
show tables; |
PostgreSQLだと、
\dt |
ですね。
【参考】
Oracleにて、ワイルドカード文字/パーセント(%)、アンダーバー/アンダースコア(_) の役割を調べたのでメモ。
■ SQL 文の特殊文字のエスケープ
ワイルドカード文字、パーセント(%)、アンダーバー、アンダースコア(_)を LIKE で抽出条件に使用するための方法
●パーセント(%)は 0 文字以上の任意の文字列
●アンダースコア(_)は 任意の 1 文字をあらわす
以上です。
Oracle のDBを使っていたら下記のようなエラーが発生して、解決方法を調べたのでご紹介します。
今回は DB を再起動したらエラーが消えました。
ORA-12505: TNS:listener does not currently know of SID given in connect descriptor tips ORA-12505: TNS: リスナーは接続記述子で指定されたSIDを現在認識していません |
サーバ側のリスナーは起動しているが、インスタンスが起動していないエラーでした。
各サービスの起動と停止手順
lsnrctl start lsnrctl stop |
sqlplus system/***** as sysdba SQL> startup SQL> shutdown |
set ORACLE_SID=winora10 emctl start dbconsole emctl stop dbconsole |
isqlplusctl start isqlplusctl stop |
以上です。
Oracle データベースにて、連番の自動採番方法を調べたのでメモ。
Oracle の場合、MySQL のようにカラムの属性の指定によって一意な番号を自動採番することができないみたいです。
代わりに、順序(SEQUENCE)オブジェクトを使用します。シーケンスオブジェクトの作成は以下の通りです。
1 | CREATE SEQUENCE ID_SEQ; |
シーケンスから一意な番号を取得するにはNEXTVAL擬似列を使用します。
1 | SELECT ID_SEQ.NEXTVAL FROM DUAL; |
また、現在の番号を取得するにはCURRVAL擬似列を使用します。
1 | SELECT ID_SEQ.CURRVAL FROM DUAL; |
以上です。
【参考】