SQL*Plus の共通コマンド

大家讲道理
大家讲道理オリジナル
2016-11-10 11:44:281209ブラウズ

1. データベースへのリンク方法
オペレーティングシステムによる検証方法:

SQL>conn / as sysdba

データベースによる検証方法
SQL>CONN username/password @databaseIdentified AS sysdba

databaseIdentified はリンク識別子であり、データベースとは関係がなく、自由に名前を付けることができます。
AS の後にはロールが続きます
2. SQL スクリプト ファイルの実行方法
SQL>start file_name 
SQL>@ file_name
複数の SQL ステートメントをテキスト ファイルに保存できるので、このファイル内のすべての SQL ステートメントを実行したい場合は、上記のコマンドのいずれかを使用します。 、これは DOS のバッチ処理に似ています。

3. 最後の SQL ステートメントを再実行します run
SQL> run


4. 表示された内容を指定したファイルに出力します
SQL> SPOOL file_name

入力した SQL ステートメントを含む、画面上のすべての内容がファイルに含まれます。

5. スプール出力をオフにする
SQL> SPOOL OFF

スプール出力をオフにした場合にのみ、出力ファイルに出力内容が表示されます。

6.テーブルの構造を表示します
SQL> desc table_name


7. COL コマンド:
書式設定メソッド
COL columnname format a20

を使用してデフォルトの列ヘッダーを変更します
COLUMN column_name HEADING column_heading 
For example: 
Sql>select * from dept; 
DEPTNO DNAME LOC
---------- --------- -- ---------------- --------
10 会計ニューヨーク
sql>col LOC heading location 
sql>select * from dept; 
DEPTNO DNAME location
----------- -------- --- ------------------ ----------
10 ACCOUNTING NEW YORK
8. コマンドを設定します:
私の通常の使用
set linesize 1000
setラップオフ
SQL ステートメントの長さが LINESIZE より大きい場合、表示中に SQL ステートメントをインターセプトするかどうか。
SQL> SET WRA[P] {ON|OFF}

出力行の長さが設定行長(set linesize n コマンドで設定)より大きい場合、wrap on に設定すると、出力行内の余分な文字は別の行に表示されます。それ以外の場合は、出力行が表示されます。それ以上の文字は切り取られて表示されません。
9. SQL バッファーの現在の行に表示される最初の文字列
C[HANGE] /old_value/new_value 
SQL> l 
1* select * from dept 
SQL> c/dept/emp 
1* select * from emp
10 を変更します。 SQLバッファー内のSQL文を表示し、list nはSQLバッファーのn行目を表示し、n行目を現在の行にする
L[IST] [n]


10。 SQL バッファ
I[NPUT]


11 の現在行の下に 1 行以上追加します。指定されたテキストを SQL バッファ
A[PPEND] 
SQL> select deptno, 
2 dname 
3 from dept; 
DEPTNO DNAME
---------- --------------
10 ACCOUNTING 
20 RESEARCH 
30 SALES 
40 OPERATIONS 
 
SQL> L 2 
2* dname 
SQL> a ,loc 
2* dname,loc 
SQL> L 
1 select deptno, 
2 dname,loc 
3* from dept 
SQL> / 
 
DEPTNO DNAME LOC 
---------- -------------- ------------- 
10 ACCOUNTING NEW YORK 
20 RESEARCH DALLAS 
30 SALES CHICAGO 
40 OPERATIONS BOSTON
12 の現在行の末尾に追加します。
RUN 
or
/
13 で実行したばかりの SQL ステートメントを再度実行します。ストアドプロシージャ
EXECUTE procedure_name
を実行する
14. SQL*plusコマンド
HELP
のヘルプを表示
15. sql*plus システム変数の値、または sql*plus 環境変数の値を表示します。
Syntax 
SHO[W] option
1) 現在の関数、ストアド プロシージャ、トリガー、パッケージを作成しているエラー メッセージを表示します。関数やストアド プロシージャなどの作成時にエラーが発生した場合、このコマンドを使用してエラーの発生箇所と対応するエラー メッセージを確認し、修正して再度コンパイルすることができます。
3) . 初期化パラメータの値を表示します:
Show all

4) . データベースのバージョンを表示します:
Show error

6) . 現在のユーザー名を表示します:
show PARAMETERS [parameter_name]


***** ******* *************************************
ORA-00054: リソースがビジーですNOWAIT を指定して取得します
症状:
Locked_mode が 2、3、および 4 の場合、DML (挿入、削除、更新、選択) 操作には影響しませんが、DDL (変更、ドロップなど) 操作では ora-00054 エラーが表示されます。 。
主キー制約と外部キー制約がある場合、更新/削除... ; 4 つまたは 5 つのロックが生成される可能性があります。
DDLステートメントのロックは6です。
処理方法:
DBA は、次の SQL ステートメントを使用して現在のデータベースのロック状況を確認できます:
select object_id,session_id,locked_mode from v$locked_object
または select t2.username,t2.sid,t2; .serial#, t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time
長時間出現する列がある場合、ロックがかからない可能性があります。解放されます。
次の SQL ステートメントを使用して、長期間解放されていない異常なロックを強制終了できます:
alter system kill session 'sid,serial#';
最終的に通常に戻ります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。