Time of Update: 2017-01-18
You perform a Flashback Query by using a SELECT statementwith an AS OF clause.You use a flashback query to restrieve data as it existed at some time in the past.The query explicitly references a past time by menasof timestamp or SCN.It returns
Time of Update: 2017-01-18
如果使用者誤刪/更新了資料後,作為使用者並沒有什麼直接的方法來進行恢複,他們必須求助DBA來對資料庫進行恢複,到了Oracle9i,這一個難堪局面有所改善。Or(www.jb51.net)acle 9i中提供了一項新的技術手段--閃回查詢,使用者使用閃回查詢可以及時取得誤操作前的資料,並可以針對錯誤進行相應的恢複措施,而這一切都無需DBA幹預因為一時手賤,生產上的資料被我給delete掉了。用的是delete語句,然後很迅速的還給commit了下面這兩個語句:ALTER TABLE
Time of Update: 2017-01-18
資料庫安全配置中,需要做相關的安全強化工作。以確認資料庫的安全,但是,有些時候,操作不當或者資料庫業務帳號修改密碼後,而程式的串連資料庫的配置封裝在jar裡,如果jar內的串連資料庫的配置資訊沒有做相應的修改的話。就會對資料庫的此業務帳號造成嚴重的後果。因此,真正瞭解Oracle安全資料庫使用者的狀態,就顯得尤為重要了。下面我們就看一下oracle資料庫中的多種使用者狀態。ORACLE資料庫使用者有多種狀態,可查看視圖USER_ASTATUS_MAP。SQL> col status
Time of Update: 2017-01-18
大家在項目開發過程中應用mysql和sql server比較多,oracle用的比較少,mysql和sqlserver用起來比較類似,mysql和sqlserver直接通過create database “資料庫名”就可以建立資料庫了,而oracle在建立資料庫的時候要資料庫和使用者一般是意義對應的,下面是建立oracle資料庫的步驟:建立兩個資料庫的檔案建立使用者與上面建立的檔案形成映射關係給使用者添加許可權一、建立兩個資料庫的檔案(monitor.dbf 和monitor_temp.dbf
Time of Update: 2017-01-18
新手在初學oracle時,都會遇到兩大疑問:第一,索引範圍掃描(index range scan),第二,索引唯一掃描(index unique scan),下面就這兩種疑問通過圖文並茂的方式給大家詳細介紹下:1、索引範圍掃描(index range scan)複製代碼 代碼如下:select empno,ename from emp where empno >1orderby empno這種情況下不會使用索引範圍掃描?第二、索引唯一掃描(index unique
Time of Update: 2017-01-18
mysql等其他資料庫中有隨著記錄的插入而表ID自動成長的功能,而oracle卻沒有這樣的功能,我們有以下兩種方式可以解決欄位自增長的功能。因為兩種方式都需要通過建立序列來實現,這裡先給出序列的建立方式。CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/ MINVALUE n|NOMAXVALUE}][{CYCLE|NOCYCLE}][{CACHE n|NOCACHE}];解析:1)INCREMENT BY用於定義序列的步長,
Time of Update: 2017-01-18
程式猿都知道mysql等其他的資料庫都有隨著記錄的插入而表ID會自動成長的功能,反而oracle卻沒有這一功能,下面通過兩種方式來解決欄位增長的功能,具體內容情況下文。因為兩種方式都需要通過建立序列來實現,這裡先給出序列的建立方式。複製代碼 代碼如下:CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/ MINVALUE n|NOMAXVALUE}][{CYCLE|NOCYCLE}][{CACHE n|NOCACHE}];解析:
Time of Update: 2017-01-18
當我們不小心誤操作致使資料庫資料丟失、改變時, 需要對資料庫物件做基於時間點的恢複,找到我們需要的資料,這個時間點不能認為精確確定,我們可以通過對oracle日誌進行分析,而獲得無操作的精確時間點。oracle db提供了一個分析日誌包logmnrlogminer 工具的使用-------對redo log 進行挖掘,找出在某個時間點所作的DDL 或DML 操作(包括:時間點、datablock scn 、sql語句)實驗測試SQL> select name from
Time of Update: 2017-01-18
說明:Oracle資料庫伺服器作業系統:CentOSIP:192.168.0.198連接埠:1521SID:orclOracle資料庫版本:Oracle11gR2具體操作:1、root使用者登入伺服器mkdir -p /backup/oracledata #建立OracleDatabase Backup目錄chown -R oracle:oinstall /backup/oracledata -R
Time of Update: 2017-01-18
基本文法和執行個體: 1、EXP: 有三種主要的方式(完全、使用者、表) 1、完全: EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
Time of Update: 2017-01-18
row_number()over(partition by col1 order by col2)表示根據col1分組,在分組內部根據col2排序,而此Function Compute的值就表示每組內部排序後的順序編號(組內連續的唯一的)。 與rownum的區別在於:使用rownum進行排序的時候是先對結果集加入偽劣rownum然後再進行排序,而row_number()在包含排序從句後是先排序再計算行號碼。一、oracle中rownum用於從查詢返回的行的編號,返回的第一行分配的是1,第二行是2
Time of Update: 2017-01-18
前言:因為項目原因,近期開始學習Oracle資料庫。Oracle是目前最流行的資料庫之一,功能強大,效能卓越,相對的學習的難度還是不小。我打算將自己的學習過程記錄下來,做個積累,方便自己和其他的學習者。 寫在學習前面的話,主要是: 1、把一些常見問題的問答分享一哈; 2、對學習路線的一個安排; 3、預期的結果展望。1、Oracle資料庫學習常見問題問答Question1: Oracle資料庫的書很難看懂,oracle真的很難學習嗎?Answer1:
Time of Update: 2017-01-18
本文執行個體講述了Oracle中scott表結構與簡單查詢的方法。分享給大家供大家參考。具體分析如下:1、scott使用者的表的結構查看錶結構desc 表名;//desc emp;emp表:SQL> desc emp;名稱 是否為空白? 類型----------------- -------- ------------EMPNO NOT NULL NUMBER(4) 僱員編號ENAME VARCHAR2(10) 僱員姓名JOB VARCHAR2(9) 僱員職位MGR NUMBER(
Time of Update: 2017-01-18
本文執行個體講述了Oracle通過時間(分鐘)計算有幾天幾小時幾分鐘的方法。分享給大家供大家參考。具體如下:複製代碼 代碼如下:SELECT TRUNC(2013 / 24 / 60, 0) || '天' || trunc((2013 - 60 * 24 * TRUNC(2013 / 24 / 60, 0)) / 60, 0) || '小時' || &
Time of Update: 2017-01-18
今天一個同事突然問我索引為什麼失效。說實在的,失效的原因有多種:但是如果是同樣的sql如果在之前能夠使用到索引,那麼現在使用不到索引,以下幾種主要情況:1. 隨著表的增長,where條件出來的資料太多,大於15%,使得索引失效(會導致CBO計算走索引花費大於走全表)2. 統計資訊失效 需要重新搜集統計資訊3. 索引本身失效 需要重建索引下面是一些不會使用到索引的原因索引失效 1
Time of Update: 2017-01-18
本文執行個體講述了Oracle刪除死結進程的方法。分享給大家供大家參考。具體如下:步驟1:用以下SQL查看進程列表,判斷出被鎖定的表複製代碼 代碼如下:SELECT dob.OBJECT_NAME Table_Name,lo.SESSION_ID||', '||vss.SERIAL# 刪除號,lo.locked_mode,lo.SESSION_ID, vss.SERIAL#,vss.action Action,vss.osuser OSUSER,
Time of Update: 2017-01-18
本文執行個體講述了oracle實現多行合并的方法。分享給大家供大家參考。具體分析如下:在寫sql時,經常會有將某列的欄位合并起來,比如將某人名下每個月的工資列示,但是每個人只能佔一行。像這種情境,可能用行列轉換也能實現,但如果這個月份的資訊不固定,就無法使用行列轉換了。oracle10g以後,提供了一個函數WMSYS.WM_CONCAT,能很輕鬆實現該功能。複製代碼 代碼如下:select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From
Time of Update: 2017-01-18
在設定資料庫執行個體的密碼時,注意不要以數字開頭,否則您將會遇到 ORA-00988 missing or invalid password (口令缺失或無效) 錯誤。Oracle 10g 安裝完成後,您可使用 dbca 命令建立新的資料庫執行個體,或維護已有的資料庫執行個體。如果您安裝的是 Oracle XE 資料庫,則必須反安裝 Oracle XE 後重新安裝 Oracle XE,並在安裝過程中指定非數字開頭的密碼 (例如 password 或 pswd123)。ORA-00988:
Time of Update: 2017-01-18
改oracle資料庫使用者名稱稱和密碼(Linux為例),有需要的朋友可以參考下。一、修改前準備工作:使用ssh工具以root身份串連伺服器,然後切換到oracle使用者:su - oracle(斷行符號)使用sqlplus串連資料庫:sqlplus /nolog(斷行符號)以管理員身份登入sys使用者:conn sys/sys as
Time of Update: 2017-01-18
1、 USERENV(OPTION) 返回當前的會話資訊. OPTION='ISDBA'若當前是DBA角色,則為TRUE,否則FALSE. OPTION='LANGUAGE'返回資料庫的字元集. OPTION='SESSIONID'為當前工作階段識別項. OPTION='ENTRYID'返回可審計的工作階段識別項. OPTION='LANG'返回會話語言名稱的ISO簡記.