1.有關(guān)PL/SQL監(jiān)聽器的配置
監(jiān)聽器一般在下面情況下可以找到相應(yīng)配置如:C:\Oracle\Dev6i\NET80\ADMIN C:\DevSuiteHome_1\NETWORK\ADMIN
其中有三個以ora作為后輟名的文件,分別是 sqlnet.ora、tnsnames.ora、listener.ora;它們的作用分別是:
sqlnet.ora內(nèi)容大致如下
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES, EZCONNECT, ONAMES, HOSTNAME)
第一行是可以用計算機的名稱默認(rèn)登錄,如果你的文件中沒有這一行,則不能用計算機名登錄,像我們在SQL*PLUS中,可以用這樣SQL>sqlplus / as sysdba 方式進行登錄,/ 就代表以本機;
第二行就是用數(shù)據(jù)庫的用戶名和密碼進行登錄。
listener.ora就是你要登錄本機數(shù)據(jù)庫時的監(jiān)聽配置,當(dāng)你要遠(yuǎn)程登錄其它計算機的數(shù)據(jù)庫時這個就不用;有這個你就得開啟相應(yīng)的監(jiān)聽服務(wù)程序。
tnsnames.ora 的配置就是你用像PL/SQL登錄數(shù)據(jù)庫時,彈出的登錄界面第三行可以選擇的數(shù)據(jù)庫名;我們可以在里面寫多個連接遠(yuǎn)程數(shù)據(jù)庫的代碼段,當(dāng)連接遠(yuǎn)程數(shù)據(jù)庫時就不用開啟本機的數(shù)據(jù)庫服務(wù)和監(jiān)聽服務(wù)
給段代碼好明白
VERSION9 = //自己命名的,顯示在登錄數(shù)據(jù)庫時可選的數(shù)據(jù)名
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = version9)(PORT = 1521)) //host計算機名,port端口號
)
(CONNECT_DATA =
(SERVICE_NAME = db) //db數(shù)據(jù)庫名
)
)
2. Oracle數(shù)據(jù)導(dǎo)入導(dǎo)出 imp/exp
功能:Oracle數(shù)據(jù)導(dǎo)入導(dǎo)出imp/exp就相當(dāng)與oracle數(shù)據(jù)還原與備份。
大多情況都可以用Oracle數(shù)據(jù)導(dǎo)入導(dǎo)出完成數(shù)據(jù)的備份和還原(不會造成數(shù)據(jù)的丟失)。
查詢服務(wù)器的字符集
select * from nls_database_parameters t where t.parameter = 'NLS_CHARACTERSET'
如果 value=utf8
則設(shè)置客戶端NLS_LANG=AMERICAN_AMERICA.UTF8
其它的字符集
AMERICAN_AMERICA.WE8ISO8859P1
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
導(dǎo)出:
exp scott/tiger tables=(s_region) file=d:\scott.dmp log=d:\scott.log
導(dǎo)入:
imp scott/tiger file=d:\scott.dmp tables=(s_region) ignore=y
imp userid=dbown/dbown@db file=staff.dmp ignore=y log=staff_imp.log
我發(fā)現(xiàn)沒有后面的ignore=y(忽略為yes)導(dǎo)入會有錯,在數(shù)據(jù)庫中查不到數(shù)據(jù)
3. 管理數(shù)據(jù)
/*create index*/
example:
/*創(chuàng)建一般索引*/
create index index_name on table_name(column_name) tablespace tablespace_name;
/*創(chuàng)建位圖索引*/
create bitmap index index_name on table_name(column_name1,column_name2) tablespace tablespace_name;
/*索引中不能用pctused*/
create [bitmap] index index_name on table_name(column_name) tablespace tablespace_name pctfree 20 storage(inital 100k next 100k) ;
/*大數(shù)據(jù)量的索引最好不要做日志*/
create [bitmap] index index_name table_name(column_name1,column_name2) tablespace_name pctfree 20 storage(inital 100k next 100k) nologging;
/*創(chuàng)建反轉(zhuǎn)索引*/
create index index_name on table_name(column_name) reverse;
/*創(chuàng)建函數(shù)索引*/
create index index_name on table_name(function_name(column_name)) tablespace tablespace_name;
/*建表時創(chuàng)建約束條件*/
create table user.table_name(column_name number(7) constraint constraint_name primary key deferrable using index storage(initial 100k next 100k) tablespace tablespace_name,column_name2 varchar2(25) constraint constraint_name not null,column_name3 number(7)) tablespace tablespace_name;
/*給創(chuàng)建bitmap index分配的內(nèi)存空間參數(shù),以加速建索引*/
show parameter create_bit;
/*改變索引的存儲參數(shù)*/
alter index index_name pctfree 30 storage(initial 200k next 200k);
/*給索引手工分配一個分區(qū)*/
alter index index_name allocate extent (size 200k datafile '$ORACLE/oradata/..');
/*釋放索引中沒用的空間*/
alter index index_name deallocate unused;
/*索引重建*/
alter index index_name rebuild tablespace tablespace_name;
/*普通索引和反轉(zhuǎn)索引的互換*/
alter index index_name rebuild tablespace tablespace_name reverse;
/*重建索引時,不鎖表*/
alter index index_name rebuild online;
/*給索引整理碎片*/
alter index index_name COALESCE;
/*分析索引,事實上是更新統(tǒng)計的過程*/
analyze index index_name validate structure;
desc index_state;
drop index index_name;
alter index index_name monitoring usage;-----監(jiān)視索引是否被用到
alter index index_name nomonitoring usage;----取消監(jiān)視
/*有關(guān)索引信息的視圖*/
select * from dba_indexes/dba_ind_columns/dbs_ind_expressions/v$object_usage;
########## 數(shù)據(jù)完整性的管理(Maintaining data integrity) ##########
alter table table_name drop constraint constraint_name;----drop 約束
alter table table_name add constraint constraint_name primary key(column_name1,column_name2);-----創(chuàng)建主鍵
alter table table_name add constraint constraint_name unique(column_name1,column_name2);---創(chuàng)建唯一約束
/*創(chuàng)建外鍵約束*/
alter table table_name add constraint constraint_name foreign key(column_name1) references table_name(column_name1);
/*不效驗老數(shù)據(jù),只約束新的數(shù)據(jù)[enable/disable:約束/不約束新數(shù)據(jù);novalidate/validate:不對/對老數(shù)據(jù)進行驗證]*/
alter table table_name add constraint constraint_name check(column_name like 'B%') enable/disable novalidate/validate;
select 'ALTER TABLE '||TABLE_NAME||' MODIFY CONSTRAINT '||CONSTRAINT_NAME||' ENABLE NOVALIDATE;'
FROM USER_CONSTRAINTS
WHERE TABLE_NAME IN ('STAFFBASE','STAFFCLAIM','STAFFJOB','STAFFPAY','STAFFREF','STAFFTIME','STAFF')
/*修改約束條件,延時驗證,commit時驗證*/
alter table table_name modify constraint constraint_name initially deferred;
/*修改約束條件,立即驗證*/
alter table table_name modify constraint constraint_name initially immediate;
alter session set constraints=deferred/immediate;
/*drop一個有外鍵的主鍵表,帶cascade constraints參數(shù)級聯(lián)刪除*/
drop table table_name cascade constraints;
/*當(dāng)truncate外鍵表時,先將外鍵設(shè)為無效,再truncate;*/
truncate table table_name;
/*設(shè)約束條件無效*/
alter table table_name disable constraint constraint_name;
alter table table_name enable novalidate constraint constraint_name;
/*將無效約束的數(shù)據(jù)行放入exception的表中,此表記錄了違反數(shù)據(jù)約束的行的行號;在此之前,要先建exceptions表*/
alter table table_name add constraint constraint_name check(column_name >;15) enable validate exceptions into exceptions;
/*運行創(chuàng)建exceptions表的腳本*/
start $ORACLE_HOME/rdbms/admin/utlexcpt.sql;
/*獲取約束條件信息的表或視圖*/
select * from user_constraints/dba_constraints/dba_cons_columns;
4.Devloper Form 6i 中導(dǎo)入Java類出現(xiàn)
PDE-UJI002: Unable to find required Java importer classes 問題的解決方案
設(shè)置classpath=.;C:\orant\TOOLS\COMMON60\JAVA\IMPORTER.JAR
5.數(shù)據(jù)庫文件
a.查詢數(shù)據(jù)文件
SELECT * FROM DBA_TABLESPAC
b.查看表空間的空余大小
SELECT TABLESPACE_NAME,SUM(BYTES/1024/1024) MB FROM DBA_FREE_SPACE GROUP BY
TABLESPACE_NAME;
c. 查看數(shù)據(jù)文件存放路徑
SELECT TABLESPACE_NAME,BYTES/1024/1024 FILE_SIZE_MB,FILE_NAME FROM DBA_DATA_FILES;