カテゴリー : Oracle

[Oracle] テーブル(table)定義を確認する DESCRIBE コマンド

Oracle DB にて、テーブル定義を表示するコマンドは DESCRIBE です。

DESCRIBE tablename

ちなみに、他のDBでテーブル定義を確認するにはそれぞれ以下のコマンドを実行します。

■ MySQL

desc tablename;

■ PostgreSQL

\d tablename

以上です。

【参考】

全ては時の中に… : 【Oracle】表定義をDESCRIBEコマンドで確認する はてなブックマーク - 全ては時の中に… : 【Oracle】表定義をDESCRIBEコマンドで確認する

[Oracle] テーブル一覧を表示する

Oracle DB で自分で作成したテーブル一覧を表示するSQLを調べたのでメモ。

SELECT TNAME FROM TAB;
SELECT TABLE_NAME FROM USER_TABLES;

のどちらかを使えばOKです。

ちなみに、MySQLだと、

show tables;

PostgreSQLだと、

\dt

ですね。

【参考】

oracleでテーブル一覧を表示する – Linoブログ はてなブックマーク - oracleでテーブル一覧を表示する - Linoブログ

[Oracle] ワイルドカード文字/パーセント(%)、アンダーバー/アンダースコア(_) の役割

Oracleにて、ワイルドカード文字/パーセント(%)、アンダーバー/アンダースコア(_) の役割を調べたのでメモ。

■ SQL 文の特殊文字のエスケープ

ワイルドカード文字、パーセント(%)、アンダーバー、アンダースコア(_)を LIKE で抽出条件に使用するための方法

●パーセント(%)は 0 文字以上の任意の文字列

●アンダースコア(_)は 任意の 1 文字をあらわす

・引用元:SELECT 文の活用(実践) – オラクル・Oracle SQL 入門 はてなブックマーク - SELECT 文の活用(実践) - オラクル・Oracle SQL 入門

以上です。

[Oracle] ORA-12505, TNS:listener does not currently know of SID given in connect descriptor エラーの解決方法

Oracle のDBを使っていたら下記のようなエラーが発生して、解決方法を調べたのでメモ。

今回は、DBを再起動したらエラーが消えました。
 

■ エラー

ORA-12505: TNS:listener does not currently know of SID given in connect descriptor  tips
ORA-12505: TNS: リスナーは接続記述子で指定されたSIDを現在認識していません

サーバ側のリスナーは起動しているが、インスタンスが起動していない。
 

■ 解決方法

各サービスの起動と停止手順

● リスナー(TNSListener)の起動と停止

lsnrctl start
lsnrctl stop

● インスタンス(OracleService)の起動と停止

sqlplus system/***** as sysdba
SQL> startup
SQL> shutdown

● Database Console(5500番ポート)の起動と停止

set ORACLE_SID=winora10
emctl start dbconsole
emctl stop dbconsole

● iSQL*Plus(5560番ポート)の起動と停止

isqlplusctl start
isqlplusctl stop

以上です。

【参考】

ORA-12505 – 解決!ORACLE! はてなブックマーク - ORA-12505 - 解決!ORACLE!

[DB] Oracle Database 10g トライアル版 Kawanet Tech Blog/ウェブリブログ はてなブックマーク - [DB] Oracle Database 10g トライアル版 Kawanet Tech Blog/ウェブリブログ

[Oracle] 連番の自動取得方法

 

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;

 

以上です。
 

【参考】

連番の自動採番方法|Archive Redo Blog はてなブックマーク - 連番の自動採番方法|Archive Redo Blog

スキーマ – オラクル・Oracleをマスターするための基本と仕組み はてなブックマーク - スキーマ - オラクル・Oracleをマスターするための基本と仕組み