| 指令 | 行為 | 適用場景 |
sqlplus | 互動式提示輸入 user/pass@tns | 日常管理、臨時查詢 |
sqlplus /nolog | 啟動但不連線,停在 SQL> 提示符 | 腳本中先設定參數再 CONNECT;避免密碼顯示在歷史 |
sqlplus user/pass@tns | 直接連線 (密碼明文在命令列,生產禁用) | 自動化腳本 (搭配 Wallet/外部認證) |
sqlplus / as sysdba | OS 認證連線 SYSDBA (需屬 dba/ora_dba 群組) | DBA 維護、啟動/關閉資料庫 |
2. SQL*Plus 內部連線指令
SQL> CONNECT user/pass@tns_alias -- 切換使用者
SQL> CONNECT / AS SYSDBA -- 切換至 SYSDBA
SQL> CONNECT sys/pass@tns AS SYSDBA -- 密碼檔認證 SYSDBA
SQL> DISCONNECT -- 斷開當前連線,保留 SQL*Plus
SQL> EXIT / QUIT -- 離開 SQL*Plus
3. 帳號鎖定與解鎖 (DBA 權限)
-- 鎖定 (禁止登入)
SQL> ALTER USER target_user ACCOUNT LOCK;
-- 解鎖 (允許登入)
SQL> ALTER USER target_user ACCOUNT UNLOCK;
-- 重設密碼並解鎖 (一步到位)
SQL> ALTER USER target_user IDENTIFIED BY "NewComplex#Pass" ACCOUNT UNLOCK;
驗證:SELECT username, account_status FROM dba_users WHERE username = 'TARGET_USER';
4. 常用查詢與描述指令
-- 當前連線使用者
SQL> SHOW USER
-- 描述表/視圖/程序結構
SQL> DESC table_name
SQL> DESC procedure_name
-- 查詢當前 Schema 所有表
SQL> SELECT table_name FROM user_tables ORDER BY table_name;
-- 查詢所有可存取表 (含其他 Schema)
SQL> SELECT owner, table_name FROM all_tables WHERE owner = 'TARGET_SCHEMA';
-- 表結構詳細資訊
SQL> SELECT column_name, data_type, data_length, nullable, data_default
FROM user_tab_columns WHERE table_name = 'EMP';
5. SQL*Plus 格式化設定 (報表輸出)
SET LINESIZE 200
SET PAGESIZE 50
SET LONG 10000
SET TRIMSPOOL ON
SET TAB OFF
COL column_name FORMAT A30
COL salary FORMAT 999,999.99
BREAK ON deptno SKIP 1
COMPUTE SUM LABEL 'TOTAL' OF salary ON deptno
6. 執行腳本檔案
SQL> @/path/to/script.sql -- 相對/絕對路徑
SQL> @@sub_script.sql -- 相對於父腳本目錄
SQL> START /path/to/script.sql -- 同 @
7. 快速入門檢查清單
- 安裝 Oracle Client / Instant Client + SQL*Plus。
- 設定
tnsnames.ora 連線別名 (或使用 Easy Connect)。
- 以一般使用者連線:
sqlplus scott/tiger@orcl。
- 嘗試
DESC emp、SELECT * FROM emp WHERE rownum <= 5;。
- 練習
ALTER USER scott ACCOUNT LOCK/UNLOCK (需 SYSTEM/SYSDBA)。
- 學會
SET LINESIZE 200 PAGESIZE 100 讓輸出不換行。
- 上一篇文章: Oracle 11g/12c/19c/21c 解鎖 SCOTT 使用者並重設密碼標準流程
- 下一篇文章: Oracle 11g Windows 安裝 Loopback Adapter 配置與大小寫敏感密碼坑點避雷
Copyright ©
程式碼之家 All Rights Reserved