Sqlplusを操作する(覚え書き)
Sqlplusでの操作の覚書
ログイン
$ sqlplus system@localhost:1521
$ sqlplus sys@localhost:1521 as sysdba
$ sqlplus sys@localhost as sysdba
$ sqlplus sys@XE as sysdba
ローカル・ログイン
今までのはネットワーク越しの接続。 ローカルで接続する場合は、rootユーザーから oracleユーザーになる必要がある。
$ docker exec -it docker-oracle11 /bin/bash <== コンテナにログイン
bash-4.2# su oracle <== oracleユーザーになる
bash-4.2$ sqlplus sys as sysdba <== ログイン
実は、これがわかるまで、だいぶ苦労した。 このページを見てわかった。
シャットダウン
SQL> shutdown immediate
これでシャットダウンできる。
しかし、STARTUPができない。
スタート
STARTUP するためには、oracleユーザーでないとできない。
bash-4.2# su oracle
bash-4.2$ sqlplus / as sysdba
SQL> startup
パスワードの変更
systemユーザーのパスワードを変更してみる。
SQL> ALTER USER system IDENTIFIED BY "Pass123";
ユーザの作成
SQL> CREATE USER test IDENTIFIED BY Pass123;
これでユーザーの作成とパスワードの設定ができた。
他に以下のように各種権限を付与することもできる。
SQL> GRANT CREATE SESSION TO test;
SQL> GRANT CREATE TABLE TO test;
SQL> GRANT RESOURCE TO test;
SQL> GRANT UNLIMITED TABLESPACE TO test;
この権限はテーブルを作成して運用する権限である。
テーブルを作成する
create table emp ( empno number(4),
ename varchar2(4 char),
job varchar2(2 char),
sal number(6),
age number(3),
deptno number(4));
create table dept ( deptno number(4),
dname varchar2(3 char),1
telno varchar2(10));
自分(test)の作成したテーブルを一覧する
SQL> select table_name from user_tables;
テーブル定義を確認する(表emp)
SQL> describe emp
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPNO NUMBER(4)
ENAME VARCHAR2(4 CHAR)
JOB VARCHAR2(2 CHAR)
SAL NUMBER(6)
AGE NUMBER(3)
DEPTNO NUMBER(4)
テーブル定義を変更
SQL> alter table emp modify(
2 ename varchar2(12 char),
3 job varchar2(8 char));
SQL> describe emp
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPNO NUMBER(4)
ENAME VARCHAR2(12 CHAR)
JOB VARCHAR2(8 CHAR)
SAL NUMBER(6)
AGE NUMBER(3)
DEPTNO NUMBER(4)
データベースの文字コードの確認
SQL> select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET';
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
AL32UTF8
以下を .bashrc に追加。
export NLS_LANG=Japanese_Japan.AL32UTF8
これを設定しておくと、Sqlplusでのメッセージが日本語になる。
アカウントのロックと解除
アカウントのロック
ALTER USER <ユーザ名> ACCOUNT LOCK;
アカウントのロック解除
ALTER USER <ユーザ名> ACCOUNT UNLOCK;
列データの表示幅を調整する
SQL> COL[UMN] <列名> FORMAT A<バイト数>
行折返しの桁数を変更する
SQL> SET LINESIZE <桁数>
カテゴリー: memo, OracleDB
タグ: oracle, sqlplus
カウント: 205