概要
いつもはmysqlを使うが、色々なデータベースに触れる機会があり苦しめられたので、
備忘録として役に立ったことを書いていく。随時更新していく。
記録
GUIを使う。(SQL developer)
RDS にアクセスするとき
ここをしっかり見るのが大事だが、特に
[SID]にORCL
と書くのに注意!
また、database 名が ORCL
となることにも注意!!
コマンドラインからアクセス
https://yohei-a.hatenablog.jp/entry/20170918/1505738926
ここなどを参考にする。
basicとsqlplusの2つのzipをダウンロードした後、フォルダに格納してPATHを通す。
mkdir -p /opt/oracle &&\
cd /opt/oracle &&\
wget https://download.oracle.com/otn_software/linux/instantclient/19600/instantclient-basic-linux.x64-19.6.0.0.0dbru.zip&&\
sudo apt-get install unzip &&\
unzip instantclient-basic-linux.x64-19.6.0.0.0dbru.zip &&\
sudo apt-get install libaio1 &&\
sudo sh -c "echo ./instantclient_19_6 > /etc/ld.so.conf.d/oracle-instantclient.conf" &&\
sudo ldconfig && export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_6:$LD_LIBRARY_PATH
さらに、http://tazakazushi.net/sqlplus_ora_12162.html
ここにあるように念のため
export ORACLE_HOME=admin
及びexport ORACLE_SID=ORCL
を設定。
そして、接続してみる。
sqlplus ‘user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))’
このとき、dns_name
, port
, database_name
を適宜設定すること。
sqlplusのよく使うコマンドたち
show tables
SELECT TABLE_NAME FROM USER_TABLES;
各カラムのデフォルト値を取得する
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from DBA_TAB_COLUMNS where TABLE_NAME = '<table_name>';
各カラムのコメントを取得する
SELECT COLUMN_NAME,COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME = '<table_name>'
sqlalchemy を噛ませて接続しようとする時
Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help
と出たら、上のリンクに飛び、コマンドをフォローする。
それで、ODPI-Cをインストールすれば良い。
cx_Oracle.DatabaseError: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor