編輯 $ORACLE_HOME/sqlplus/admin/glogin.sql。
ALTER SESSION SET NLS_DATE_FORMAT='YYYYMMDDHH24MISS';
-- 或 init.ora 加入
NLS_DATE_FORMAT='YYYYMMDDHH24MISS'
ALTER TABLE XXX STORAGE (BUFFER_POOL KEEP);
查閱 ORAINVENTORY 目錄記錄。
SELECT ROWNUM, COL FROM TABLE;
SELECT TABLESPACE_NAME FROM USER_TABLES WHERE TABLE_NAME='TEST';
-- 或查 USER_TABLES 的 TABLESPACE_NAME 欄位
-- 或查 DBA_SEGMENTS
CREATE TABLE NEW_TABLE AS (SELECT * FROM OLD_TABLE);
SELECT LINE, TRIM(TEXT) T FROM USER_SOURCE WHERE NAME='A' ORDER BY LINE;
ALTER SYSTEM KILL SESSION ... (先查 SID)Oracle 官方 SQL 語法參考手冊,含語法、函數等,官網文檔中心可下載。
PS -EF | GREP ORAALTER TABLE AAA DROP CONSTRAINT AAA_KEY;
ALTER TABLE AAA ADD CONSTRAINT AAA_KEY PRIMARY KEY (A1,B1);
ALTER DATABASE DATAFILE '...' RESIZE ...;
手動縮減需確保檔案末端無資料,否則會報錯。
SELECT * FROM V$SESSION;
SELECT * FROM DBA_TABLESPACES;
修改 INITSID.ORA 的 PROCESSES 參數並重啟。
使用 LOGMINER 分析歸檔日誌。
使用 UTL_FILE 套件。
INSERT INTO A VALUES (TRANSLATE('AT{&}T','AT{}','AT'));
EXP USER/PASS FILE=A.DMP TABLES=(BSEMPMS)
QUERY='"WHERE EMP_NO=\'S09394\'"'
ZHS16GBK 支援簡體中文。
Standby Database 的升級產品,提供災難復原與資料保護。
SQL> CONNECT / AS SYSDBA
SQL> CREATE SPFILE FROM PFILE='E:\ORA9I\ADMIN\EYGLE\PFILE\INIT.ORA';
SQL> CREATE SPFILE='E:\ORA9I\DATABASE\SPFILEEYGLE.ORA' FROM PFILE='...';
| 參數 | 含義 | 建議值 |
|---|---|---|
| SHMMAX | 單一共享記憶體段最大值 | 物理記憶體 50% |
| SHMMIN | 共享記憶體段最小值 | 1 |
| SHMMNI | 系統最大共享記憶體段數 | 100 |
| SHMSEG | 每進程最大附掛共享記憶體段數 | 20 |
| SEMMNI | 系統最大信號量集合數 | 所有實例 PROCESSES 最大值 + 10 |
| SEMMNS | 系統最大信號量總數 | Σ(其它實例 PROCESSES) + MAX_PROCESSES×2 + 10×實例數 |
| SEMMSL | 單一信號量集合最大信號量數 | 10 + 最大 PROCESSES |
SELECT * FROM V_$PWFILE_USERS;
EXP USER/PASS TABLES=(TABLE1,TABLE2) FILE=EXP.DMP
EXP SYSTEM/MANAGER OWNER=(USER1,USER2) FILE=EXP.DMP
SELECT * FROM A WHERE DBMS_LOB.INSTR(A.A,'K',1,1) > 0;
SHOW USER
COL FILE_NAME FORMAT A50
SELECT TABLESPACE_NAME, FILE_ID, BYTES/1024/1024, FILE_NAME
FROM DBA_DATA_FILES ORDER BY FILE_ID;
COL SEGMENT FORMAT A30
SELECT SEGMENT_NAME, OWNER, TABLESPACE_NAME, SEGMENT_ID, FILE_ID, STATUS
FROM DBA_ROLLBACK_SEGS;
ALTER TABLE XXX DROP CONSTRAINT CONSTRAINT_NAME;
ALTER TABLE XXX ADD CONSTRAINT CONSTRAINT_NAME CHECK(...);
V$DATABASE, V$DATAFILE, V$LOGFILE, V$CONTROLFILE, V$PARAMETER
-- 內連接
SELECT A.* FROM BSEMPMS A, BSDPTMS B WHERE A.DPT_NO = B.DPT_NO;
-- 外連接 (Oracle 舊語法)
SELECT A.* FROM BSEMPMS A, BSDPTMS B WHERE A.DPT_NO = B.DPT_NO(+);
SELECT A.* FROM BSEMPMS A, BSDPTMS B WHERE A.DPT_NO(+) = B.DPT_NO;
SQL> @$PATH/FILENAME.SQL
TRUNCATE TABLE TABLE_NAME;
SELECT * FROM V$INSTANCE;
SELECT * FROM ALL_TABLES;
SET TIMING ON;
SELECT * FROM TABLENAME;
ASCII()
SELECT CHR(65) FROM DUAL; -- 'A'
SELECT ASCII('A') FROM DUAL; -- 65
SELECT CONCAT(COL1,COL2) FROM TABLE;
SELECT COL1 || COL2 FROM TABLE;
SPOOL C:\ABCD.TXT
SELECT * FROM TABLE;
SPOOL OFF
SET AUTOTRACE ON;
SELECT * FROM TABLE;
-- 或查 V$FILESTAT
ALTER TABLE TABLE_NAME MODIFY (FIELD_NAME VARCHAR2(100));
-- 只能加大,縮小需欄位全為 NULL
SELECT * FROM TABLE_NAME
WHERE TRUNC(日期欄位) = TO_DATE('2003-05-02','YYYY-MM-DD');
CREATE TABLE BSYEAR (D DATE);
INSERT INTO BSYEAR
SELECT TO_DATE('20030101','YYYYMMDD') + ROWNUM - 1
FROM ALL_OBJECTS
WHERE ROWNUM <= TO_CHAR(TO_DATE('20031231','YYYYMMDD'),'DDD');
ALTER TABLE OLD_TABLE_NAME RENAME TO NEW_TABLE_NAME;
SQLCODE = 0 表示成功
SELECT * FROM DBA_SYS_PRIVS;
功能無差別,但下載版僅供開發測試,不可用於商業生產環境,否則構成侵權。