欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
oracle數據庫開(kāi)發(fā)的一些經(jīng)驗積累

  

oracle數據庫開(kāi)發(fā)的一些經(jīng)驗積累     1、不安裝Oracle客戶(hù)連接Oracle 8的方法 
請將以下文件拷貝到運行文件所在目錄 

一、ODBC動(dòng)態(tài)庫 :

ctl3d32.dll msvcrt40.dll odbc16gt.dll odbc32.dll odbc32gt.dll odbccp32.dll odbccr32.dll odbcint.dll 

二、建立EXTRA子目錄,將MSVCRT.DLL文件拷貝到該子目錄下

EXTRA\MSVCRT.DLL 

三、ORACLE動(dòng)態(tài)庫及配置文件 

Tnsnames.ora CORE35O.DLL NASNSNT.DLL NAUNTSNT.DLL NCRNT.DLL Nlnt.dll NLSRTL32.DLL Nnfdnt.dll NNFNNT.DLL NSNT.DLL NTNT.DLL NTTNT.DLL CIW32.DLL Ora73.dll OTRACE73.DLL Sqlnet.ora Sqltnsnt.dll CORE35.DLL 

四、PB動(dòng)態(tài)庫 

pbvm70.dll pbdwe70.dll Pbo7370.dll PBO8470.DLL pbodb70.dll libjcc.dll 


Oracle
的客戶(hù)端不安裝讓pb連上,我記得以前有帖子的,你可以搜索一下。
具體步驟。
(1).
先在某機器上安裝好客戶(hù)端(最好安裝在c盤(pán));
(2).
復制此客戶(hù)端oracle目錄下的所有文件作為獨立的oracle安裝文件;
(3).
搜索注冊表,找到 HKey_Local_machine\software\oracle,把此項目及分支全部導出。
(4).
打包好你的pb程序,并獨立打包好oracle客戶(hù)端和注冊表導出文件。
(5).
到干凈的客戶(hù)端,解開(kāi)兩個(gè)包,導入注冊表文件,然后加入路徑支持:
  path=%path%;"c:\Ora817\bin"
這樣處理,應該沒(méi)有問(wèn)題,因為我就是這樣快速處理了幾十個(gè)機器。

若不想搞注冊表,你可以在程序中自己寫(xiě)注冊表,構成Oracle客戶(hù)端必要的注冊表支持,至于路徑,手工添加應該不難。

至于Oracle客戶(hù)端那些文件不需要,這個(gè)不好說(shuō),你可以把那些bin目錄下的所有exe刪除,Oracle Document刪除(7x)

至于定義Oracle服務(wù),找到 Ora817\net80\admin\TnsName.ora,參照格式,程序中生成一個(gè)也不麻煩。

=======================================================
2
、在ORACLE中返回游標結果集

你需要寫(xiě)到一個(gè)包中:
create or replace package pag_cs_power as

    type c_Type is ref cursor;
  
FUNCTION FUN_CS_GETDICTLIST(
  v_DictIndex in  varchar2) return c_Type;

end pag_cs_power;

函數代碼:

FUNCTION FUN_CS_GETDICTLIST(
  v_DictIndex in  varchar2) return c_Type
     as
        c_cursor            c_Type;
begin
   open c_cursor for
      select DICTID,DICTNAME FROM SYS_DICT WHERE DICTINDEX = v_DictIndex;
   return c_cursor;
end FUN_CS_GETDICTLIST;
----------------------------------------------------------------------
3
、P4機器安裝ORACLE

(1)
、將ORACLE安裝軟件拷貝到硬盤(pán)。 
(2)
、將  硬盤(pán)目錄文件\stage\Components\oracle.swd.jre\1.1.7.30/1 
\DataFiles\Expanded\jre\win32\bin\symcjit.dll
的文件改名為symcjit.old 
(3).
再運行SETUP.exe  文件進(jìn)行安裝。 


-----------------------------------------------------------------------
4
、單引號的插入問(wèn)題

SQL> insert into a values(‘i‘‘m good‘);
       --兩個(gè)‘‘可以表示一個(gè)

SQL> insert into a values(‘i‘||chr(39)||‘m good‘);
 --chr(39)代表字符

SQL> insert into a values(‘a(chǎn)‘||‘&‘||‘b‘);
      

-----------------------------------------------------------------------
5
、全數據庫的導入與導出

exp username/password full=y file=yourdata.dmp grants=y rows=y
imp username/password full=y ignore=y file=yourdata.dmp grants=y

6
、expimp的具體用法

exp username/password@mzbs_61 full=y file=yourdata.dmp grants=y rows=y
imp username/password full=y ignore=y file=yourdata.dmp grants=y

exp mzbs/mzbs@mzbs_61 file = c:\zzzzzzz.dmp grants = y rows = y 
imp mzbs/mzbs@mzbs_61 file = c:\zzzzzzz.dmp grants = y ignore=y  FULL=Y


(1)

exp
參數:
關(guān)鍵字   說(shuō)明(默認)   
----------------------------------------------
USERID   
用戶(hù)名/口令
FULL   
導出整個(gè)文件 (N)
BUFFER   
數據緩沖區的大小
OWNER   
所有者用戶(hù)名列表
FILE   
輸出文件 (EXPDAT.DMP)
TABLES   
表名列表
COMPRESS  
導入一個(gè)范圍 (Y)
RECORDLENGTH  IO 
記錄的長(cháng)度
GRANTS   
導出權限 (Y)
INCTYPE   
增量導出類(lèi)型
INDEXES   
導出索引 (Y)
RECORD   
跟蹤增量導出 (Y)
ROWS   
導出數據行 (Y)
PARFILE   
參數文件名
CONSTRAINTS  
導出限制 (Y)
CONSISTENT  
交叉表一致性
LOG   
屏幕輸出的日志文件
STATISTICS  
分析對象 (ESTIMATE)
DIRECT   
直接路徑 (N)
TRIGGERS  
導出觸發(fā)器 (Y)
FEEDBACK  
顯示每 x  (0) 的進(jìn)度
FILESIZE  
各轉儲文件的最大尺寸
QUERY   
選定導出表子集的子句

imp
參數:
關(guān)鍵字   說(shuō)明(默認)   
----------------------------------------------
USERID   
用戶(hù)名/口令
FULL   
導入整個(gè)文件 (N)
BUFFER   
數據緩沖區大小
FROMUSER  
所有人用戶(hù)名列表
FILE   
輸入文件 (EXPDAT.DMP)
TOUSER   
用戶(hù)名列表
SHOW   
只列出文件內容 (N)
TABLES   
表名列表
IGNORE   
忽略創(chuàng )建錯誤 (N)
RECORDLENGTH  IO 
記錄的長(cháng)度
GRANTS   
導入權限 (Y)
INCTYPE   
增量導入類(lèi)型
INDEXES   
導入索引 (Y)
COMMIT   
提交數組插入 (N)
ROWS   
導入數據行 (Y)
PARFILE   
參數文件名
LOG   
屏幕輸出的日志文件
CONSTRAINTS  
導入限制 (Y)
DESTROY   
覆蓋表空間數據文件 (N)
INDEXFILE  
將表/索引信息寫(xiě)入指定的文件
SKIP_UNUSABLE_INDEXES 
跳過(guò)不可用索引的維護 (N)
ANALYZE   
執行轉儲文件中的 ANALYZE 語(yǔ)句 (Y)
FEEDBACK  
顯示每 x  (0) 的進(jìn)度
TOID_NOVALIDATE  
跳過(guò)指定類(lèi)型 id 的校驗
FILESIZE  
各轉儲文件的最大尺寸
RECALCULATE_STATISTICS 
重新計算統計值 (N)

(2)

一、建立一個(gè)expdata.sql文件

USERID=RMTAFIS/3       
這里寫(xiě)你的用戶(hù)名和密碼
BUFFER=32768
OWNER=RMTAFIS         
這里寫(xiě)導出的用戶(hù)
FILE=E:\Exp\RMTAFIS.DMP      
導出的文件,可以是相對路徑
ROWs=Y
GRANTS=Y
COMPRESS=Y
CONSISTENT=Y

二、建立一個(gè)expdata.bat
exp parfile=expdata.sql
如果是805
exp80 parfile=expdata.sql
雙擊expdata.bat就導出數據了


7
、如果在like的變量中,是以‘%’開(kāi)頭的話(huà),是不會(huì )使用index的。反之,不是以‘%‘開(kāi)頭,而又有相應的index,是會(huì )使用index的。具體可以用plain plan來(lái)看一下。

8
、復制空表結構
   create table new_table
as select * from old_table where 1=2;
   
復制表(含記錄)
   create table new_table
as select * from old_table ;

9
、把一個(gè)用戶(hù)下的表導入到另一個(gè)用戶(hù)下,但需要改名

先用exp導出所有的表;
imp將導出的表導入到新用戶(hù);
在新用戶(hù)下,執行
  select ‘RENAME TABLE ‘||tname||‘ TO NEW_‘||tname||‘;‘ 
    from tab
   where tabtype=‘TABLE‘;
將上面的查詢(xún)結果保存到一個(gè)sql文件中,處理后執行就可以了。


10
、審計步驟

 
修改參數文件init.ora,參數audit_trail值為true;
 
重新啟動(dòng)數據庫;
 
打開(kāi)審計audit session; (audit session by username)
 
執行登錄操作;
 
察看審計結果:
   select * from dba_audit_session;
   select * from sys.aud$;
   select * from dba_audit_trail;
   select * from dba_audit_exists;
 
關(guān)于審計:

   
為了使oracle8i的審計功能可用,必須在數據庫參數文件中修改audit_trail初始參數,而這個(gè)修改并不支配oracle8i把生成的審計記錄記入審計痕跡中,
由于狀態(tài),特權和模式對象已被修改,因而審計的默認值不可用,其參數應設置為none.下面列出了audit_trail 可用的參數

db_
使數據庫審計和全部直屬審計記錄到數據庫審計的痕跡中
os_
是數據庫審計依據直屬審計記入到操作系統的審計很集中
none_
不可用

11
、BFILE的用法

(1)
、create or replace directory 
BFILE_TEST 
as 
‘/oracle/oradata/bfiles‘; 

(2)
、grant read on directory BFILE_TEST to SCOTT; 

(3)
、host ls -l /oracle/oradata/bfiles/1.TXT 

(4)
、connect SCOTT/TIGER 
create table BFILES (ID number, TEXT bfile ); 

(5)
、insert into BFILES values ( 1, 
bfilename ( ‘BFILE_TEST‘, ‘1.TXT‘ ) );


12
、如何在Windows 2000下將Oracle完全卸載? 
 
一、系統環(huán)境: 
(1)
、操作系統:Windows 2000 Server,機器內存128M
(2)
、數據庫: Oracle 8i R2 (8.1.6) for NT 企業(yè)版
(3)
、安裝路徑:D:\ORACLE

二、卸載步驟: 
(1)
、開(kāi)始->設置->控制面板->管理工具->服務(wù)
   
停止所有Oracle服務(wù)。

(2)
、開(kāi)始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer
   
卸裝所有Oracle產(chǎn)品

(3)
、運行regedit,選擇HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del鍵刪除這個(gè)入口。

(4)
、運行regedit,選擇HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滾動(dòng)這個(gè)列表,刪除所有Oracle入口

(5)
、從桌面上、STARTUP(啟動(dòng))組、程序菜單中,刪除所有有關(guān)Oracle的組和圖標

(6)
、重新啟動(dòng)計算機,重起后才能完全刪除Oracle所在目錄

(7)
、刪除與Oracle有關(guān)的文件,選擇Oracle所在的缺省目錄C:\Oracle,刪除這個(gè)入口目錄及所有子目錄,

  并從Windows 2000目錄(一般為C:\WINNT)下刪除以下文件

  ORACLE.INI、oradim80.INI

(8)
、WIN.INI文件中若有[ORACLE]的標記段,刪除該段

--------------------------------------------------------------------
13
、如何使用SQLPLUSSVRMGRL運行腳本

(1)
、用sqlplus調用:

c:\script.txt
的內容
startup;

命令行:sqlplus internal/oracle @c:\script.txt

(2)
、用svrmgrl調用:
c:\script.txt
的內容

connect internal/oracle;
startup;

命令行:svrmgrl @c:\script.txt

--------------------------------------------------------------------
14
、ORACLE的臨時(shí)表

CREATE GLOBAL TEMPORARY TABLE TABLENAME (
   COL1  VARCHAR2(10),
   COL2  NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ;
這種臨時(shí)表不占用表空間,而且不同的SESSION之間互相看不到對方的數據
在會(huì )話(huà)結束后表中的數據自動(dòng)清空,如果選了DELETE ROWS,則在提交的時(shí)候即清空數據,PRESERVE則一直到會(huì )話(huà)結束

----------------

Oracle8i中,可以創(chuàng )建以下兩種臨時(shí)表:
(1)
會(huì )話(huà)特有的臨時(shí)表
   CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
   ON COMMIT PRESERVE ROWS
;

(2)
事務(wù)特有的臨時(shí)表
   CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
   ON COMMIT DELETE ROWS
;
  CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的臨時(shí)表雖然是存在的,但是你試一下insert 一條記錄然后用別的連接登上去select,記錄是空的,明白了吧,我把下面兩句話(huà)再貼一下:
--ON COMMIT DELETE ROWS 
說(shuō)明臨時(shí)表是事務(wù)指定,每次提交后ORACLE將截斷表(刪除全部行)
--ON COMMIT PRESERVE ROWS 
說(shuō)明臨時(shí)表是會(huì )話(huà)指定,當中斷會(huì )話(huà)時(shí)ORACLE將截斷表。
沖突的問(wèn)題更本不用考慮.

臨時(shí)表只是保存當前會(huì )話(huà)(session)用到的數據,數據只在事務(wù)或會(huì )話(huà)期間存在。

通過(guò)CREATE GLOBAL TEMPORARY TABLE命令創(chuàng )建一個(gè)臨時(shí)表,對于事務(wù)類(lèi)型的臨時(shí)表,
數據只是在事務(wù)期間存在,對于會(huì )話(huà)類(lèi)型的臨時(shí)表,數據在會(huì )話(huà)期間存在。

會(huì )話(huà)的數據對于當前會(huì )話(huà)私有。每個(gè)會(huì )話(huà)只能看到并修改自己的數據。DML鎖不會(huì )加到
臨時(shí)表的數據上。下面的語(yǔ)句控制行的存在性。
 
● ON COMMIT DELETE ROWS 
表名行只是在事務(wù)期間可見(jiàn)
● ON COMMIT PRESERVE ROWS 
表名行在整個(gè)會(huì )話(huà)期間可見(jiàn)

可以對臨時(shí)表創(chuàng )建索引,視圖,出發(fā)器,可以用exportimport工具導入導出表的
定義,但是不能導出數據。表的定義對所有的會(huì )話(huà)可見(jiàn)。

例如:
CREATE GLOBAL TEMPORARY TABLE TEMP_TAB1(
table_name VARCHAR2(20),
primary_key VARCHAR2(100),
field VARCHAR2(1000))
ON COMMIT PRESERVE ROWS;

CREATE GLOBAL TEMPORARY TABLE TEMP_TAB2(
table_name VARCHAR2(20),
primary_key VARCHAR2(100),
field VARCHAR2(1000))
ON COMMIT DELETE ROWS;

 

 

15
、如何使用OEM
先啟數據庫服務(wù),再啟oracle manager服務(wù)。
否則重建檔案資料庫
如果還不行就把ORACLEHOME\NETWORK\sqlnet.ora文件的內容
     sqlnet.authentication_services=(NTS)
     
改成sqlnet.authentication_services=(NONE)

登錄 sysman/oem_temp

16
、TNS:沒(méi)有監聽(tīng)器的問(wèn)題。

(1)
查一下監聽(tīng)服務(wù)是否啟動(dòng),
   
如果沒(méi)有啟動(dòng),則運行lsnrctrl start。
(2)
查看一下 LISTENER.ORA內監聽(tīng)的服務(wù)器名、服務(wù)器IP、數據庫名是否正確。
(3)
查看一下 TNSNAMES.ORA內服務(wù)器名、服務(wù)器IP、數據庫名是否正確。

17
、LINUX、UNIX下自動(dòng)啟動(dòng)ORACLE服務(wù)

(1)

 !/bin/sh 

# chkconfig: 345 51 49 
# description: starts the oracle dabase deamons 


ORA_HOME=/u01/app/oracle/product/8.1.7 
ORA_OWNER=oracle 
case "$1" in 
‘start‘) 
echo -n "Starting Oracle8i: " 
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart 
touch /var/lock/subsys/oracle8i 
echo 
;; 

‘stop‘) 

echo -n "Shutting down Oracle8i: " 
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut 
rm -f /var/lock/subsys/oracle8i 
echo 
;; 

‘restart‘) 

echo -n "Restarting Oracle8i: " 
$0 stop 
$0 start 
echo 
;; 

*) 
echo "Usage: oracle8i { start | stop | restart }" 
exit 1 

esac 
exit 0 

我仿照su - $ORA_OWNER -c $ORA_HOME/bin/dbshut 的形式
添加su - $ORA_OWNER -c $ORA_HOME/bin/lsnrctl start
但是在系統啟動(dòng)的時(shí)候listener啟動(dòng)不了

(2)

/etc/rc.local
改成如下就可以了
touch /var/lock/subsys/local
#echo 2147483648 > /proc/sys/kernel/shmmax
echo -n "Starting Oracle Database:"
date +"%D %T %a"
su - oracle -c "lsnrctl start"
#su - oracle -c "sqlplus /nolog @startmaster.sql"
echo -n "Oracle Database Started:"
date +"%D %T %a"
-------------
第一個(gè)#是改共享內存大小的
第二個(gè)#是啟動(dòng)數據庫的。

(3)
ftp://ftp.rpmfind.net/linux/rhcontri ... lerun9i-1.0-1.i386.rpm

下載這個(gè)軟件包并安裝。

里面每個(gè)文件都有一些要修改的地方。配置完成之后,就可以在系統服務(wù)配置中找到它,選中它就可能以自啟動(dòng)了。

18
、回滾段不夠的處理方法

(1)
、先使回滾段脫機一個(gè),
如果不好用,則再脫機一個(gè)。直至好用。
   ALTER rollback segment rollbackname offline;
(2)
、增加回滾段數據文件的大小
   alter database datafile ‘datafile‘ resize 200M;


19
、WINNTWIN2000移植

不用EXPIMP

停掉數據庫的服務(wù)后,可以做一個(gè)數據庫的全備份。

WIN2000上建一個(gè)同名的數據庫,隨便建,越小越好,可以縮短時(shí)間。
WINNT下的數據庫備份恢復到WIN2000的數據庫上就可以了。但建庫的目錄
必須一樣。(也可以不一樣,但需要更改數據文件的連接)

我曾多次為用戶(hù)這樣移植數據,萬(wàn)無(wú)一失的。
注意:因為數據很重要,所以建議你先EXP備份一下。這是我們的習慣。


20
、ORACLE SQL PLUS Worksheet亂碼問(wèn)題。

dbappscfg.properties
,修改該文件即可解決上述問(wèn)題。$ORACLE_HOME\sysman\config目錄下,修改
# SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK。

對于Windows操作系統,還需要修改一項
#SQLPLUS_SYSTEMROOT=c:\\WINNT40
SQLPLUS_SYSTEMROOT=C:\\WINNT

如操作系統的主目錄在C盤(pán)的Winnt

對于后面一項的修改只對Windows操作系統進(jìn)行,對UNIX操作系統則不需要。如果在Windows操作系統中不修改該項,在Oracle Enterprise Manager中,連接系統時(shí),會(huì )提示如下的錯誤:
ORA-12560 TNS:protocol adapter error 
或者 
ORA-12545 Connect failed because target host or object does not exist 
重新連接SQL PLUS Worksheet


21
、DROP掉名字是小寫(xiě)的表(用雙引號括起來(lái))。

    drop table "tablename"
    select * from "tablename"

22
、日期的顯示格式
注意:SIMPLIFIED CHINESE(簡(jiǎn)體中文需要" "括起來(lái))
      
別的國家不用" " 例如:ENGLISH 
select to_char(sysdate,‘DAY‘,‘NLS_DATE_LANGUAGE=‘‘SIMPLIFIED CHINESE‘‘‘) from dual;
------------
星期四
------------

23
、一個(gè)從ORACLE中讀表信息的存儲過(guò)程

可以在vc下調用存儲過(guò)程來(lái)實(shí)現
例子:
先修改init.ora
例如:
utl_file_dir=/usr    //
路徑為 oracle所在的盤(pán):/usr
此過(guò)程將用戶(hù)TEMPP1過(guò)程的代碼保存到ORACLE安裝盤(pán)下/USR/TEXT.TXT
create or replace procedure TEST
is
  file_handle utl_file.file_type;
  STOR_TEXT VARCHAR2(4000);
  N NUMBER;
I NUMBER;
 begin
I:=1;
   SELECT MAX(LINE) INTO N FROM ALL_SOURCE WHERE OWNER=‘TEMP‘ AND NAME=‘P1‘;
file_handle:=utl_file.fopen(‘/usr‘,‘test.txt‘,‘a(chǎn)‘);
WHILE I<=N LOOP
   SELECT TEXT  INTO STOR_TEXT FROM ALL_SOURCE WHERE OWNER=‘TEMP‘ AND NAME=‘P1‘ AND LINE= I;
   I:=I+1;
   utl_file.put_line(file_handle,stor_text);
END LOOP;
   utl_file.fclose(file_handle);
commit;
end TEST;
/

24
、關(guān)于修改ORACLE的列寬
(1)
、不論如何都要備份數據。
(2)
、如果沒(méi)有數據,則可以修改寬度。比如NUMBER,CHAR,VARCHAR2
(3)
、如果有數據,則可以增加寬度。比如NUMBER,CHAR,VARCHAR2
   
注意:不可以減小寬度。
(4)
、語(yǔ)法:alter talbe tablename modify columnname columntype not null;

25
、如何查看用戶(hù)的存儲過(guò)程和函數

select name,text from user_source where name= Procedurename and type = ‘PROCEDURE‘ order by line;

26
、在批處理中自動(dòng)啟動(dòng)ORACLE服務(wù)(win2000)

編一個(gè)批處理文件
net start OracleServiceSID
OracleServiceSID
ORACLE的實(shí)例名稱(chēng)

27
、對行加鎖時(shí),只對tb1加鎖

select tb1.r1 from tb1, tb2  where tb1.r2 = tb2.r2 and tb2.r1 = xxx for update of tb1.r1 nowait

28
、得到列的信息

desc tablename
select cname from col where tname=‘TABLENAME‘;
select column_name from user_tab_columns where table_name=‘TABLENAME‘;
select column_name from ALL_tab_columns where table_name=‘TABLENAME‘;
select column_name from dba_tab_columns where table_name=‘TABLENAME‘;
select column_name from user_col_comments where table_name=‘TABLENAME‘;    
select column_name from all_col_comments where table_name=‘TABLENAME‘; 
select column_name from dba_col_comments where table_name=‘TABLENAME‘; 

29
、使觸發(fā)器無(wú)效(login_on)

svrmgrl
connect internal/oracle
alter trigger login_on disable;

使觸發(fā)器為無(wú)效alter trigger yourtriggername disable

如果是對于某一個(gè)表的所有的觸發(fā)器:
alter table yourtablename disable all triggers


30
、如在SQLPLUS中何調用存儲過(guò)程和函數。

    call
只能調用存儲過(guò)程后面加上括號就可以了
    call 
存儲過(guò)程名();
    exec procedurename;(
可以不加())
    
調用函數用sql語(yǔ)句
    select 
函數名(參數) from dual;

31
、函數中如果調用DML語(yǔ)句就不可以調用SELECT語(yǔ)句

32
、REDO LOG BUFFER 什么時(shí)候寫(xiě)到REDO LOGFILE
    (1)
、在COMMIT的時(shí)候
    (2)
、重做日志緩沖區1/3滿(mǎn)的時(shí)候
    (3)
、重做日志緩沖區大于1M的時(shí)候
    (4)
、它寫(xiě)信息必須是在數據寫(xiě)進(jìn)程前調用
    (5)
、一般CHECKPOINT在日志組切換的時(shí)候進(jìn)行或者由初始化參數設定
         
CHECKPOINT的時(shí)候需要調用數據寫(xiě)進(jìn)程   

33
、ORACLEhttp server 把原有的WEB server沖掉,如何解決?

    (1).
如果你原來(lái)的http server是用IIS等其他發(fā)布工具做的,那么可以在服務(wù)中停掉         oracle http server服務(wù),并且改為手動(dòng)啟動(dòng)。
    (2).
如果原來(lái)的http server是用apache發(fā)布,則可以改變http.conf中的參數

34
、關(guān)于創(chuàng )建重建查看索引


創(chuàng )建索引:
CREATE INDEX IND_NAME ON TABLE_NAME(COL1,COL2,...);

重建索引:
ALTER INDEX IND_NAME REBUILD;

查看索引:

SELECT * FROM USER_INDEXES WHERE INDEX_NAME=‘IND_NAME‘;

35
、ORACLE如何查殺用戶(hù)的進(jìn)程
  
   
|根據用戶(hù)的應用程序和SQL語(yǔ)句,在DBA STUDIO找到用戶(hù)的SESSION并斷開(kāi)其連接
 
   
二、
   
   (1)
、要殺掉一個(gè)session應先應知道其sidserial#,假設你已經(jīng)知道。
   (2)
、select paddr from v$session where sid=v_sid and serial#=v_serial#
   select spid from v$process where addr=paddr(
以上語(yǔ)句所查出的);

   (3)
、使用ALTER SYSTEM KILL SESSION ‘v_sid,v_serial#‘ immediate; 試一試如不行轉    
   
   
三、LINUXUNIX
   
轉到操作系統下執行:kill -9 spid (以上語(yǔ)句所查出的)  
   
36
、ORACLE中檢查表是否被鎖的語(yǔ)句

    SELECT A.OWNER,   
         A.OBJECT_NAME,   
         B.XIDUSN,   
         B.XIDSLOT,   
         B.XIDSQN,   
         B.SESSION_ID,   
         B.ORACLE_USERNAME,   
         B.OS_USER_NAME,   
         B.PROCESS,   
         B.LOCKED_MODE,   
         C.MACHINE,   
         C.STATUS,   
         C.SERVER,   
         C.SID,   
         C.SERIAL#,   
         C.PROGRAM  
    FROM ALL_OBJECTS A,   
         V$LOCKED_OBJECT B,   
         SYS.GV_$SESSION C 
   WHERE ( A.OBJECT_ID = B.OBJECT_ID ) 
     AND (B.PROCESS = C.PROCESS )
   ORDER BY 1,2     
殺掉:alter system kill session ‘sid, serial#‘ 
37
、ORACLE的登錄問(wèn)題,用戶(hù)名和密碼。

可以直接輸入:
    internal/oracle@serivce_name
  sys/change_on_install@serivce_name
  system/manager@serivce_name
  scott/tiger@serivce_name
注意:
9i
中沒(méi)有internal/oracle
如果選擇典型安裝則有 scott用戶(hù)
如果自定義可以不安裝  scott用戶(hù)
如果是本機則可以省略@serivce_name

oem:
ORACLE ENTERPRISE MANAGER
sysman/oem_temp


38
、修改表的列名

Oracle9i:
alter table xxx rename column xx to yy;

Oracle8i & lower version
connect sys/passed;
update col$ set name=xx where obj#=
對象id and name = 字段
(
一般不要這樣用,會(huì )造成意想不到的結果)
注:最好是刪除再建立新的列


39
、把用戶(hù)模式對象所在的表空間移到新的表空間
(1). create the new tablesapce
(2). alter user test default tablespace test_data;
(3). alter user test quota unlimited on test_data;
(4). alter table the_table_name move tablespace test_data;
    
生成腳本:
    select ‘a(chǎn)lter table‘||tname||‘ move tablespace test_date;‘ 
    from tab
   where tabtype=‘TABLE‘
(5). rebuild the indexes;

40
、使用OEM備份或者EXP的步驟
 WIN2000
下:

(1). 
控制面板――>管理工具―― >計算機管理――>本地用戶(hù)和組――>用戶(hù)――>新建用戶(hù)syssysman(syssysman 的賬號要和登陸數據庫的賬號相同);
(2)
.控制面板――>管理工具―― >本地安全策略――>本地策略――>用戶(hù)權利指派――>
作為批處理作業(yè)登陸――>添加syssysman兩個(gè)賬號。
(3)
.使用Enterprise Manager配置輔助工具
開(kāi)始程序Oracle - OraHome81Enterprise ManagerConfiguration Assistant
a
、使用Configuration Assistant工具來(lái)創(chuàng )建一個(gè)新的資料檔案庫。

(4)
.控制面板――>管理工具―― > 服務(wù),查看OracleOraHome81ManagementServer是否啟動(dòng),如果沒(méi)有啟動(dòng),則手動(dòng)啟動(dòng)該服務(wù)。
(5)
.以sysman/oem_tempdefault)登陸DBA Studio
(第二個(gè)選項:登陸到Oracle Management Server,立即修改密碼為你剛才在NT下建的用戶(hù)sysman的密碼。
(6)
 sysman/ *** (bluesky) 從開(kāi)始程序Oracle - OraHome81Console 登陸到 控制臺。
 系統首選項首選身份證明(我的首選身份設置如下:) 
DEFAULT
節點(diǎn):name:sysman
DEFAULT
數據庫:name:sys
(7)
 在搜索/添加結點(diǎn)后,以sysman/ *** 登陸到該結點(diǎn),以sys/ *** as sysdba登陸數據庫(也就是在首選身份設置的結果)。
(8)
 在工具備份管理向導預定義備份策略(自定義備份策略)提交備份計劃
(9)
.從開(kāi)始程序Oracle - OraHome81Console 登陸到 控制臺,查看活動(dòng)(歷史記錄)可以看到你的備份是否成功,如果不成功,可以點(diǎn)擊備份看明細。(我第一次也沒(méi)成功,后來(lái)我修改系統的臨時(shí)目錄C:\WINNT\Tempc:\temp\systmp,重新啟動(dòng)機器就ok了)

41
、如何修改INTERNAL的口令
  
以下是oracle88i你可以仿照來(lái)做

(1)
、進(jìn)入DOS

(2)
、默認internal密碼文件在c:\orant\database下,是隱藏屬性,文件名稱(chēng)與數據庫實(shí)例名有關(guān)

  如默認ORACLE實(shí)例名為ORCL,則internal密碼文件名為pwdorcl.ora

(3)
、建立新的internal密碼文件,起個(gè)新名字為pwdora8.ora

  orapwd80 file=pwdora8.ora password=B entries=5     --注:password項一定要用大寫(xiě),并且不要用單引號

(4)
、拷貝pwdora8.ora文件到c:\orant\database目錄下

(5)
、運行regedit,修改口令文件指向

(6)
、找到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

  定位ORA_ORCL_PWFILE子項,改變其值為c:\orant\database\pwdora8.ora

(7)
、關(guān)閉ORACLE數據庫,重新啟動(dòng)

(8)
、進(jìn)入svrmgr30服務(wù)程序,測試internal密碼是否更改成功


42
、憑證檢索失敗的決絕方法。

原因由于Oracle不能應用OS認證而導致憑證檢索失敗
    
解決辦法
    
    (1).
打開(kāi)network/admin下的sqlnet.ora 
        
修改SQLNET.AUTHENTICATION _SERVICES=(NONE)。 
    
    (2).
啟動(dòng)Net8 configuration assistant-->選第三項本地網(wǎng)絡(luò )服務(wù)名配置 
    -->
刪除...(刪除原來(lái)的本地網(wǎng)絡(luò )服務(wù)名

    (3).
重復第二步 
    -->
添加.. (新建本地網(wǎng)絡(luò )服務(wù)名

    (4).restart oracle
   
    
注意:NTSWinNT的認證方式

43
、命令行編譯存儲過(guò)程

    ALTER PROCEDURE procedure_name COMPILE;

44
、關(guān)于如何建立數據庫鏈接(DBlink)

可以通過(guò)建立客戶(hù)機數據庫網(wǎng)絡(luò )服務(wù)名的辦法,將服務(wù)器的名字或是IP地址設置為你需要連接的那個(gè)機器就行

如果你要在一個(gè)應用中連接它,現在做好上步工作,然后按如下處理

建立數據庫連接
CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING ‘NetServiceName‘;
DBaseLinkName  
是建立的數據連接名稱(chēng)
UserName       
是可以連接到的用戶(hù)名
Password        
是可以連接到的用戶(hù)的密碼
NetServiceName  
是可以連接的數據庫網(wǎng)絡(luò )服務(wù)名或是數據庫名

查詢(xún)建立數據連接的表實(shí)例
Select * From TableName@ DBaseLinkName;

注意:如果在CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING ‘NetServiceName‘;NetServiceName  是數據庫名修改init.ora中:global_names = true
否則global_names = false
init.ora
中:global_names = false
  
45
、Object Browser7.0中文版的破解方法

OBJECT BROWSER的目錄里,找到DeIsL1.isu文件,用記事本打開(kāi),看到的是亂碼吧?沒(méi)關(guān)系,將Stirling Technologies ,Inc 這個(gè)字符串前面的亂碼去掉(如果有的話(huà)),讓后在Stirling之前加一個(gè)空格(一定要加的),保存,退出,重新運行一下看看,雖然還有提示輸入驗證信息,但是不用管他,直接確定就行。是不是可以用了呢?保證好使。

46
、錯誤號ORA-01536:space quota exceeded for table space ‘ALCATEL‘的解決辦法
     
     
三個(gè)解決辦法,任你選擇:
    (1) alter user USERNAME quota 100M on TABLESPACENAME;
    (2) alter user USERNAME quota unlimited on TABLESPACENAME;
    (3) grant unlimited tablespace to USERNAME;

47
、如何在Oracle中捕獲到SQL語(yǔ)句的全部操作內容

       SELECT osuser, username, sql_text from v$session a, v$sqltext b 
       where a.sql_address =b.address order by address, piece;   

48
、ORACLE中如何實(shí)現自增字段:

(1)
第一種方法 
ORACLE
一般的做法是同時(shí)使用序列和觸發(fā)器來(lái)生成一個(gè)自增字段.
CREATE SEQUENCE SEQname
 INCREMENT BY  1
 START WITH  1
 MAXVALUE  99999999
/
CREATE TRIGGER TRGname
BEFORE  INSERT  ON table_name
REFERENCING
 NEW AS :NEW
FOR EACH ROW
Begin
   SELECT SEQname.NEXTVAL
     INTO :NEW.FIELDname
     FROM DUAL;
End;

(2)
第二種方法:
CREATE OR REPLACE TRIGGER TR1
  BEFORE INSERT ON temp_table
  FOR EACH ROW
declare 
com_num NUMBER;
BEGIN
SELECT MAX(ID) INTO COM_NUM FROM TEMP_TABLE; 
:NEW.ID:=COM_NUM+1;
END TR1;

49
、job的使用:

修改initsid.ora參數
job_queue_processes = 4            8i,9i  (
允許同時(shí)執行的JOB)
job_queue_interval = 10            8i  
job_queue_keep_connections=true       8i


DBMS_JOB.SUBMIT(:jobno,//job

                ‘your_procedure;‘,//
要執行的過(guò)程
                trunc(sysdate)+1/24,//
下次執行時(shí)間
                ‘trunc(sysdate)+1/24+1‘//
每次間隔時(shí)間
               );
刪除job:dbms_job.remove(jobno);
修改要執行的操作:dbms_job.what(jobno,what);
修改下次執行時(shí)間:dbms_job.next_date(job,next_date);
修改間隔時(shí)間:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
啟動(dòng)job:dbms_job.run(jobno);

注意:修改后一定要COMMIT;


例子:
VARIABLE jobno number;
begin
      DBMS_JOB.SUBMIT(:jobno, 
              ‘Procdemo;‘,//Procdemo
為過(guò)程名稱(chēng) 
               SYSDATE, ‘SYSDATE + 1/720‘);
         commit;
end;

50
、如何配置mts

修改初始化參數文件
增加以下內容:
mts_dispatchers = "(protocol=TCP)(disp=2)(con=1000)"
mts_max_dispatchers = 50
mts_servers = 20 
mts_max_servers = 50

51
、取出一個(gè)表的最后一條記錄

select * from (select rownum id,tname.* from tname) a where a.id=(select count(*) from a);

52
、重做日志(Redolog)被刪掉,通過(guò)什么方法才能恢復!

mount數據庫,然后再目錄下建同名文件redo01.log、redo02.log、redo03.log
然后執行alter databse clear logfile group n
對于currentgroup,執行alter databse clear unarchived logfile group n
然后,再open,就ok

53
、Oracle常見(jiàn)服務(wù)

幾個(gè)主要的:

OracleOraHome81TNSListener     
監聽(tīng)服務(wù)
OracleServiceSID               ORACLE
服務(wù)
OracleOraHome81Agent           
智能代理服務(wù)
OracleOraHome81CMan            
連接管理服務(wù)
OracleOraHome81HTTPServer      APACHE WEB 
服務(wù)
OracleOraHome81ManagementServer ORACLE 
企業(yè)管理器服務(wù)
OracleOraHome81Names            ORACLE
命名服務(wù)

剩下的也不常用。

54
、ORACLE的熱備份

在不關(guān)閉數據庫的時(shí)候進(jìn)行ORACLE的備份。

原理停復雜的,你去找本書(shū)看看吧。

舉個(gè)簡(jiǎn)單的例子:備份表空間USERS

ALTER TABLESPACE USERS BEGIN BACKUP
COPY USERS TABLESPACE 
的數據文件到備份目錄
ALTER TABLESPACE USERS END BACKUP

55
、導致索引不起作用的解決辦法

你的問(wèn)題我剛處理過(guò),是由optimizer_mode參數引起的,該參數的默認值為choose,即為如表有statis則查詢(xún)走基于cost的方式,否則走基于rule的方式,因些你可以有以下幾個(gè)解決方法。
(1)
、簡(jiǎn)單的在init<sid>.ora中設optimizer_mode=rule,重起數據庫。
(2)
、使用analyze table table_name(索引基表) delete statistics;
(3)
、最后一個(gè)萬(wàn)能辦法,將表和索引drop掉,重建。

56
、關(guān)于數據庫進(jìn)程的問(wèn)題。

(1).
查看相關(guān)進(jìn)程在數據庫中的會(huì )話(huà)
Select a.sid,a.serial#,a.program, a.status ,
substr(a.machine,1,20), a.terminal,b.spid
from v$session a, v$process b
where a.paddr=b.addr
and b.spid = &spid;

(2).
查看數據庫中被鎖住的對象和相關(guān)會(huì )話(huà)
select a.sid,a.serial#,a.username,a.program,
c.owner, c.object_name 
from v$session a, v$locked_object b, all_objects c
where a.sid=b.session_id and
c.object_id = b.object_id;

(3).
查看相關(guān)會(huì )話(huà)正在執行的SQL
select sql_text from v$sqlarea where address = 
( select sql_address from v$session where sid = &sid );


57
、查看IP地址
select SYS_CONTEXT(‘USERENV‘,‘IP_ADDRESS‘)  from dual;

58
、運行SQLPLUS時(shí)不用輸入用戶(hù)名和密碼,進(jìn)入之后使用CONNECT
             
        SQLPLUS /NOLOG
        SQL>CONNECT SCOTT/TIGER

59
、查看當前會(huì )話(huà)

        userenv() 
函數

        select userenv(‘language‘) from dual 
字符集
        select userenv(‘isdba‘) from dual 
是否DBA
        select userenv(‘sessionid‘) from dual sessionid
        select userenv(‘TERMINAL‘) from dual 
客戶(hù)端名字
        select userenv(‘INSTANCE‘) from dual 
實(shí)例數

        SYS_CONTEXT() 
函數
     
        select SYS_CONTEXT(‘USERENV‘,‘CURRENT_SCHEMA‘)  from dual;  
當前模式
        select SYS_CONTEXT(‘USERENV‘,‘CURRENT_SCHEMAID‘)  from dual;  
當前模式ID
        select SYS_CONTEXT(‘USERENV‘,‘CURRENT_USER‘)  from dual; 
當前用戶(hù)  
        select SYS_CONTEXT(‘USERENV‘,‘DB_NAME‘)  from dual; 
數據庫 
        select SYS_CONTEXT(‘USERENV‘,‘HOST‘)  from dual; 
主機
        ..........

60
、刪除重復列的方法

(1) DELETE FROM table_name A WHERE ROWID > (
       SELECT min(rowid) FROM table_name B
        WHERE A.key_values = B.key_values);
(2) create table table2 as select distinct * from table1;
     drop table1;
     rename table2 to table1;
(3) Delete from mytable where rowid not in(
       select max(rowid) from mytable
       group by column_name );
(4) delete from mytable t1
      where  exists (select ‘x‘ from my_table t2
                   where t2.key_value1 = t1.key_value1
                     and t2.key_value2 = t1.key_value2
                     ...
                     and t2.rowid > t1.rowid);

61
、ORA-12571: TNS:packet writer failure(包寫(xiě)入程序失?。?/font>

   (1) 
這個(gè)錯誤在客戶(hù)端遇到過(guò),通常重新連接一下服務(wù)器就好了。
   
服務(wù)器重新啟動(dòng)的時(shí)候,在client也會(huì )遇到該錯誤。
   
這個(gè)錯誤你是在server還是client上遇到的?最常用的辦法就是加上跟蹤,查看一下    跟蹤記錄,分析分析錯誤的原因。
   
網(wǎng)絡(luò )問(wèn)題也會(huì )出現該錯誤,比如網(wǎng)絡(luò )路由沒(méi)有配置好。
   (2) 
安裝的殺毒軟件導致的
   (3) 
服務(wù)器端的IP是否被改動(dòng)
   (4) 
最后不行的話(huà),重新創(chuàng )建監聽(tīng)器
    
62
、ORACLE服務(wù)不能自動(dòng)啟動(dòng)的解決辦法   

   
ORACLEHOME\network\ADMIN\sqlnet.ora
   
文件中的 sqlnet.authentication_service=(nts) 
   
注釋掉就可以了


63
、不完全的時(shí)間點(diǎn)恢復

shutdown immediate
copy 
備份文件到需要恢復的目錄下
startup mount
recover database until time ‘2002-12-26 09:00:00‘

alter database open resetlogs

自己仔細檢查一下,不會(huì )發(fā)生這樣的問(wèn)題的。

64
、oracle如何設置查詢(xún)超時(shí)

select  /*+  timeout  30*/  *  from  veryLargeTable  

65
、修改字符集

(1)
、ALTER DATABAE CHARACTER SET SIMPLIFIED CHINESE_CHINA.ZHS16GBK ; 

(2)
、update props$ set value$=‘ZHS16CGB231280‘ 
where name=‘NLS_CHARACTERSET‘;
update props$ set value$=‘ZHS16CGB231280‘ 
where  name=‘NLS_NCHAR_CHARACTERSET‘;

建議不使用(2)

注意:
(1)
、執行ALTER DATABASE CHARACTER SET必須有SYSDBA權限,并且在STARTUP RESTRICT模式下執行
(2)
、原字符集必須是目標字符集的一個(gè)真子集(就是浪子所說(shuō)的只能從WE8ISO8859P1轉到ZHS16GBK的原因)
(3)
、CLOB字段裝換可能有問(wèn)題,建議在轉換以前把有CLOB字段的表導出后DROP,轉換以后再導回
(4)
、該轉換不可逆,所以在做這個(gè)操作以前建議做數據庫全備份

66
、修改數據庫名字

(1)
、啟動(dòng)svrmgrl,以文本方式備份控制文件
 oracle>svrmgrl
 svrmgrl>connect internal
 svrmgrl>alter system backup controlfile to trace
(2)
、編輯產(chǎn)生的跟蹤文件,在udump目錄下
 
CREATE CONTROLFILE REUSE DATABASE "CTC" NORESETLOGS ARCHIVELOG
 
中的REUSESET
 
然后把create controlfile這段語(yǔ)句拷出
(3)
、正常宕庫,后啟動(dòng)到nomount
 svrmgrl>shutdown immediate
 svrmgrl>startup nomount
(4)
、執行create controlfile那段語(yǔ)句
(5)
、打開(kāi)數據庫
 svrmgrl>alter database open
 如提示用resetlogs選項則使用
  svrmgrl>alter database open resetlogs
(8)
、相應修改初始化參數

 

67
、rownum的用法

   select * from (select t.*,rownum id from dept t)
   where id between 1 and 20


68
、oracle的內部參數

   SELECT a.ksppinm NAME,
       b.ksppstdf default_val,
       a.ksppdesc DESCRIPTION
  FROM x$ksppi a,
       x$ksppcv b
 WHERE a.indx=b.indx
   AND substr(a.ksppinm,1,1)=‘_‘
 ORDER BY a.ksppinm

69
、9i安裝時(shí)報areasqueries錯誤的解決辦法
    
包括IAS  IDS 
    
    
把安裝源文件目錄全部改為英文字母或數字
    
注意:不能是中文的路徑

70
、我如何知道一個(gè)表空間還有多少可以用

(1)
、
SELECT upper(f.tablespace_name) 
表空間名,
       d.Tot_grootte_Mb "
表空間大小(M)",
       d.Tot_grootte_Mb - f.total_bytes "
已使用空間(M)",
       round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2) "
使用比",
       f.total_bytes "
空閑空間(M)",
       f.max_bytes "
最大塊(M)"
 FROM      
    (SELECT tablespace_name,
            round(SUM(bytes)/(1024*1024),2) total_bytes,
            round(MAX(bytes)/(1024*1024),2) max_bytes
      FROM sys.dba_free_space
     GROUP BY tablespace_name) f,
    (SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb
      FROM   sys.dba_data_files dd
      GROUP BY dd.tablespace_name) d
WHERE d.tablespace_name = f.tablespace_name    
ORDER BY 4 DESC
(2)
、select tablespace_name,round(sum(bytes)/1024/1024,2) "M" from dba_free_space 
group by tablespace_name

71
、creck pl/sql developer 的方法

(1)
、安裝pl/sql developer
(2)
、用UltraEdit將程序PLSQLDev.exe打開(kāi)
(3)
、將UltraEdit設置為16進(jìn)制模式
(4)
、查找串:BA 1E 00 00 00 2B D0
   
修改:2B D0  為:4A 90
(5)
、存盤(pán)退出
(6)
、運行PLSQLDev.exe,如果提示你還有29天的時(shí)間可用,那就恭喜你了!

72
、使索引無(wú)效

ALTER INDEX idx UNUSABLE;
ALTER INDEX idx_acctno DISABLE;(only to a function based index)

73
、在SQLPLUS中給指定用戶(hù)進(jìn)行 set autotrace on/off
    
    
SCOTT用戶(hù)為例:

    SQL>CONNECT scott/tiger 
    
    connected.
    
    SQL>@$ORACLE_HOME/RDBMS/ADMIN/UTLXPLAN.SQL 
    
    Table created.
    
    SQL>CONNECT / AS SYSDBA 
    
    connected.
    
    SQL>@$ORACLE_HOME/SQLPLUS/ADMIN/PLUSTRCE.SQL 
    
    drop role plustrace;
    Role dropped.
    create role plustrace;
    Role created.
    .
    grant plustrace to dba with admin option;
    Grant succeeded.

    SQL>GRANT PLUSTRACE TO SCOTT; 

    Grant succeeded.

    SQL>CONNECT SCOTT/TIGER

    connected.        

    SQL>set autotrace on

    SQL>

74
、關(guān)于約束的四種狀態(tài)

Disabled novalidate
:當約束使不能時(shí),約束的規則不能強制在列
       
(包含在約束中)的數據之上。但約束的定義保存在數據字典中。
       
在執行數據倉庫卷起(rollup)或裝載且要加快裝載過(guò)程時(shí)該方式
       
是有用的。
Enabled novalidate
:是能無(wú)效,該狀態(tài)的表可以包含非法
      
的數據,但不可能加入新的非法數據。
Enabled validate
:使能有效,一個(gè)使能的約束是強制的,表的數據檢查
      
有效

75
、在SQLPLUS中調用存儲過(guò)程

SET SERVEROUTPUT ON 
declare
 out_param varchar2(100);
begin
 your_proc(1,out_param);
 dbms_output.put_line(out_param);
end;
/
SET SERVEROUTPUT OFF 

75
、生成系統表和存儲過(guò)程的三個(gè)文件。

     cat*.sql
     dbms*.sql
     utl*.sql

76
、JOB中日期的使用

每個(gè)月1:
last_day(sysdate)+1
每個(gè)季度的第一天:
to_date(decode(to_char(sysdate,‘q‘),‘1‘,to_char(sysdate,‘yyyy‘)||‘0101‘,
    ‘2‘,to_char(sysdate,‘yyyy‘)||‘0401‘,‘3‘,to_char(sysdate,‘yyyy‘)||‘0701‘,
    ‘4‘,to_char(sysdate,‘yyyy‘)||‘1001‘),‘yyyymmdd‘)
每天:
sysdate+1
每個(gè)星期幾:
decode(to_char(sysdate,‘w‘),‘1‘,sysdate+7,
to_char(sysdate,‘w‘),‘2‘,sysdate+6,to_char(sysdate,‘w‘),‘3‘,sysdate+5,
to_char(sysdate,‘w‘),‘4‘,sysdate+4,to_char(sysdate,‘w‘),‘5‘,sysdate+3,
to_char(sysdate,‘w‘),‘6‘,sysdate+2,to_char(sysdate,‘w‘),‘7‘,sysdate+1)

每個(gè)星期x下午三點(diǎn):interval(21, ‘next_day(trunc(sysdate),x+1)+15/24‘);

每個(gè)季度的第一個(gè)星期x
interval(21, ‘next_day(trunc(sysdate,‘‘Q‘‘),3),5)‘);


77
、使用execute immediate 的問(wèn)題

8i
以上才支持execute immediate 
8.05
只能用dbms_sql  
最好使用execute immediate


78
、ORACLE9i中刪除表空間中數據文件的方法
 
drop tablespace tbsname including contents 

79
、找出串中的數字

SELECT TRANSLATE(‘2KRW229‘,
   ‘0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ‘,‘0123456789‘)
   "Translate example"
     FROM DUAL
/

2229

--
全是數字的:
select * from 
你的表 where translate(你的列,‘0123456789‘,‘ ‘)=‘‘;

select * from 
你的表 where trim(ltrim(rtrim(replace(col_name,‘0123456789‘,‘ ‘)))) is null

 

80
、分析表
analyze table mzbs.db_code ESTIMATE STATISTICS SAMPLE 20 PERCENT;


81
、表空間管理和用戶(hù)管理

--
查看表空間和數據文件

select file_name,tablespace_name,autoextensible from dba_data_files;

--
數據表空間

CREATE TABLESPACE USER_DATA 
    LOGGING 
    DATAFILE ‘D:\ORACLE\ORADATA\ORCL\test.DBF‘ SIZE 50m REUSE ,
             ‘c:\USERS01112.DBF‘ SIZE 50m REUSE  
    AUTOEXTEND 
    ON NEXT  1280K MAXSIZE  16383M EXTENT MANAGEMENT LOCAL

--
臨時(shí)表空間

CREATE TEMPORARY 
    TABLESPACE  USER_DATA_TEMP TEMPFILE ‘D:\TEMP0111.DBF‘ 
    SIZE 50M REUSE AUTOEXTEND 
    ON NEXT  1024K MAXSIZE  16383M EXTENT MANAGEMENT LOCAL UNIFORM 
    SIZE 1024K


--
增加數據文件

ALTER TABLESPACE  USER_DATA
  ADD DATAFILE ‘c:\USERS01113.DBF‘ SIZE 50M;

ALTER TABLESPACE USER_DATA
  ADD DATAFILE ‘c:\USERS01114.DBF‘  SIZE 50M
  AUTOEXTEND ON
;


--
刪除表空間

DROP TABLESPACE USER_DATA INCLUDING CONTENTS;


--
修改數據文件大小
 ALTER DATABASE
 DATAFILE ‘c:\USERS01113.DBF‘ RESIZE 40M;

--
創(chuàng )建用戶(hù)、賦予權限

CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY  USER_DATA 
    DEFAULT 
    TABLESPACE USER_DATA  TEMPORARY 
    TABLESPACE USER_DATA  ACCOUNT UNLOCK;
 
GRANT CONNECT TO USER_DATA;
GRANT RESOURCE TO USER_DATA;

--
把表移到另一個(gè)表空間
ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;

--
創(chuàng )建索引

CREATE INDEX INDEXNAME ON TABLENAME(COLUMNNAME);

CREATE INDEX INDEXNAME ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;

--
重新建立索引

ALTER INDEX INDEXNAME REBUILD TABLESPACE  TABLESPACE;


--
創(chuàng )建表

CREAE TABLE TABLENAME
(COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)
(COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);


--
建表的索引存儲分配


CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX  STORAGE(INITIAL 100K NEXT 100K)
TABLESPACE indx, 
last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,
dept_id NUMBER(7))
TABLESPACE data;


--
建立主鍵

ALTER TABLE TABLENAME
ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)


--
使約束無(wú)效

ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT CONSTRANAME;

ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT CONSTRANAME;

--
刪除約束

ALTER TABLE TABLENAME  DROP CONSTRAINT constraintname;

DROP TABLE TABLENAEM CASCADE CONSTRAINTS;(
刪除表后將所用的外鍵刪除)

--
給表增加列

ALTER TABLE TABLENAME
ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;

--
給列增加缺省值

ALTER TABLE TABLENAME
MODIFY COLUMNNAME  DEFAULT(VALUE) NOT NULL;


--
給表增加外鍵
 ALTER TABLE  TABLENAME
 ADD CONSTRAINT  CONSTRAINTNAME 
 FOREIGN KEY(COLUMN) REFERENCES TABLE1NAME(COLUMN1);

1
、分析表
analyze table mzbs.db_code ESTIMATE STATISTICS SAMPLE 20 PERCENT;


2
、表空間管理和用戶(hù)管理

--
查看表空間和數據文件

select file_name,tablespace_name,autoextensible from dba_data_files;

--
數據表空間

CREATE TABLESPACE USER_DATA 
    LOGGING 
    DATAFILE ‘D:\ORACLE\ORADATA\ORCL\test.DBF‘ SIZE 50m REUSE ,
             ‘c:\USERS01112.DBF‘ SIZE 50m REUSE  
    AUTOEXTEND 
    ON NEXT  1280K MAXSIZE  16383M EXTENT MANAGEMENT LOCAL


--
修改表空間數據文件的路徑

ALTER TABLESPACE app_data
  RENAME
    DATAFILE ‘/DISK4/app_data_01.dbf‘
    TO   ‘/DISK5/app_data_01.dbf‘;


ALTER DATABASE
  RENAME FILE ‘/DISK1/system_01.dbf‘
    TO ‘/DISK2/system_01.dbf‘;


--
臨時(shí)表空間

CREATE TEMPORARY 
    TABLESPACE  USER_DATA_TEMP TEMPFILE ‘D:\TEMP0111.DBF‘ 
    SIZE 50M REUSE AUTOEXTEND 
    ON NEXT  1024K MAXSIZE  16383M EXTENT MANAGEMENT LOCAL UNIFORM 
    SIZE 1024K


--
增加數據文件

ALTER TABLESPACE  USER_DATA
  ADD DATAFILE ‘c:\USERS01113.DBF‘ SIZE 50M;

ALTER TABLESPACE USER_DATA
  ADD DATAFILE ‘c:\USERS01114.DBF‘  SIZE 50M
  AUTOEXTEND ON
;


--
刪除表空間

DROP TABLESPACE USER_DATA INCLUDING CONTENTS;

 

--
修改表空間的存儲參數

ALTER TABLESPACE tablespacename 
  MINIMUM EXTENT 2M; 


ALTER TABLESPACE tablespacename
  DEFAULT STORAGE (
    INITIAL 2M
    NEXT 2M
    MAXEXTENTS 999 );


--
表空間聯(lián)機/脫機/只讀

ALTER TABLESPACE tablespacename OFFLINE/ONLINE/READ ONLY;

 

--
修改數據文件大小
 ALTER DATABASE
 DATAFILE ‘c:\USERS01113.DBF‘ RESIZE 40M;

--
創(chuàng )建用戶(hù)、賦予權限

CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY  USER_DATA 
    DEFAULT 
    TABLESPACE USER_DATA  TEMPORARY 
    TABLESPACE USER_DATA  ACCOUNT UNLOCK;
 
GRANT CONNECT TO USER_DATA;
GRANT RESOURCE TO USER_DATA;

 

3
、表的管理

--
創(chuàng )建表

CREAE TABLE TABLENAME
(COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)
(COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);


--
建表的索引存儲分配


CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX  STORAGE(INITIAL 100K NEXT 100K)
TABLESPACE indx, 
last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,
dept_id NUMBER(7))
TABLESPACE data;

--
修改表的存儲分配

ALTER TABLE tablename
PCTFREE 30
PCTUSED 50
STORAGE(NEXT 500K
MINEXTENTS 2
MAXEXTENTS 100);

ALTER TABLE tablename
ALLOCATE EXTENT(SIZE 500K
DATAFILE ‘/DISK3/DATA01.DBF‘);

--
把表移到另一個(gè)表空間

ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;


--
回收空閑的空間(回收到High-water mark)
  
全部回收需要TRUNCATE TABLE tablename

ALTER TABLE tablename
DEALLOCATE UNUSED;

--
刪除表(連同所用constraint)

DROP TABLE tablename
CASCADE CONSTRAINTS;


--
給表增加列

ALTER TABLE TABLENAME
ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;


--
刪除表中的列

ALTER TABLE tablename
DROP COLUMN columnname;


ALTER TABLE tablename
DROP COLUMN columnname
CASCADE CONSTRAINTS CHECKPOINT 1000;


--
標記列不可用

ALTER TABLE tablename
SET UNUSED COLUMN columnname
CASCADE CONSTRAINTS;

--
刪除標記為不可用的列

ALTER TABLE tablename
DROP UNUSED COLUMNS CHECKPOINT 1000;

--
繼續刪除列選項

ALTER TABLE tablename
DROP COLUMNS CONTINUE CHECKPOINT 1000;

--
把表放到BUFFER_POOL中去

ALTER TABLE tablename
  STORAGE (BUFFER_POOL RECYCLE);

--
避免動(dòng)態(tài)分配EXTENT

ALTER TABLE tablename ALLOCATE EXTENT;


--
把表放到CACHE中去

ALTER TABLE tablename ALLOCATE CACHE/NOCACHE;


4
、索引管理


--
創(chuàng )建索引

CREATE INDEX indexname ON TABLENAME(COLUMNNAME);

CREATE INDEX indexname ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;

--
重新建立索引

ALTER INDEX indexname REBUILD TABLESPACE  TABLESPACE;


--
索引分配參數

ALTER INDEX indexname
STORAGE(NEXT 400K
 MAXEXTENTS 100);


--
釋放索引空間

ALTER INDEX indexname
ALLOCATE EXTENT (SIZE 200K
DATAFILE ‘/DISK6/indx01.dbf‘);

ALTER INDEX indexname
DEALLOCATE UNUSED;

--
重新整理索引表空間碎片

ALTER INDEX indexname COALESCE;

--
刪除索引

DROP INDEX indexname


--
把索引放到BUFFER_POOL

ALTER INDEX cust_name_idx
  REBUILD
  STORAGE (BUFFER_POOL KEEP);


5
、約束管理


--
建立主鍵

ALTER TABLE TABLENAME
ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)


--
使約束無(wú)效

ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT constraintname;

ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT constraintname;

--
刪除約束

ALTER TABLE tablename  DROP CONSTRAINT constraintname;

DROP TABLE tablename CASCADE CONSTRAINTS;(
刪除表后將所用的外鍵刪除)


--
給列增加缺省值

ALTER TABLE TABLENAME
MODIFY columnname  DEFAULT(value) NOT NULL;


--
給表增加外鍵
 ALTER TABLE  tablename
 ADD CONSTRAINT  constraintname 
 FOREIGN KEY(column) REFERENCES table1name(column1);


6
、安全策略

--
加密傳輸

把客戶(hù)端環(huán)境變量ora_encrypt_login設為true
把服務(wù)器端參數dblink_encypt_login設為true

--
數據庫管理員安全策略

a
、建庫后立即修改SYS/SYSTEM的口令(9.2后必須修改其口令)
b
、只有數據庫管理員才能以SYSDBA登錄系統
c
、建立不同角色的管理員,分配不同的權限

   
比如:對象創(chuàng )建于維護
         
數據庫的調整與維護
         
創(chuàng )建用戶(hù)分配角色
         
啟動(dòng)關(guān)閉
         
恢復備份
         
--
應用開(kāi)發(fā)者的安全策略

a
、開(kāi)發(fā)者的特權只能在測試開(kāi)發(fā)的數據庫中賦予權限
b
、自由開(kāi)發(fā)者、受控開(kāi)發(fā)者
   
自由開(kāi)發(fā)者:create table\index\procedure\package
   
受控開(kāi)發(fā)者:沒(méi)有以上權限 


7
、日志文件管理

--
切換日志文件

ALTER SYSTEM SWITCH LOGFILE;

--
增加日志文件

ALTER DATABASE ADD LOGFILE 
(‘/DISK3/log3a.rdo‘,
‘/DISK4/log3b.rdo‘) size 1M;

--
增加日志成員

ALTER DATABASE ADD LOGFILE MEMBER
‘/DISK4/log1b.rdo‘ TO GROUP 1
‘/DISK4/log2b.rdo‘ TO GROUP 2;

--
刪除日志文件

ALTER DATABASE DROP LOGFILE GROUP 3;

--
刪除日志成員

ALTER DATABASE DROP LOGFILE MEMBER ‘/DISK4/log2b.dbf‘;

--
清除日志文件內容

ALTER DATABASE CLEAR LOGFILE ‘/DISK3/log2a.rdo‘;

 

[ 閱讀字體大?。?/span> ]  [ 收藏此頁(yè)到: 新浪ViVi | 365Key | 博采中心 ]

本站聲明:此文章來(lái)源于網(wǎng)絡(luò ),如果未屬名,可能因為此文被轉摘多次,原作者不詳,如果您認為侵權,請聯(lián)系我。我將在第一時(shí)間按要求做出處理,并消除影響。

引用通告地址 (92)
http://www.mikecat.net//trackback.asp?tbID=1162
http://www.mikecat.net//trackback.asp?tbID=1162&CP=GBK

 

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久