原地址:http://blog.sina.com.cn/s/blog_5e0ed6fd0100i1z2.html手動刪除數(shù)據(jù)庫中冗余數(shù)據(jù)可能遇到外鍵關聯(lián)導致數(shù)據(jù)無法刪除的問題。這個問題的解決及思考記錄如下:問題的產(chǎn)生是因為在數(shù)據(jù)庫設計的時候,在建立外鍵關聯(lián)的時候沒有設置級聯(lián)刪除,也就是說在設置外鍵的時候并沒有加上ondeletecascade限定。對于這個問題,我的想法是:在數(shù)據(jù)庫設計的時候一般情況下都是應該加上這樣的限制的。如果說擔心“級聯(lián)刪除”可能會誤
系統(tǒng) 2019-08-12 01:51:51 2120
數(shù)據(jù)庫事務(ACID)中的I指隔離性(isolation):未完成的(也就是未提交的)事務必須不可視。在某個事務進行期間,只有執(zhí)行該事務的一個會話能看到所做的變化。oracle是通過使用還原段來實現(xiàn)隔離性的。還原段(undo)的目的:(1)事務恢復;(2)事務回滾;(3)讀一致性代碼SQL>selectname,valuefromv$parameterwherenamelike'%undo%';NAMEVALUE----------------------
系統(tǒng) 2019-08-12 01:53:46 2114
在向大家具體介紹OracleHints之前,首先讓大家了解下OracleHints是什么,然后全面介紹OracleHints,希望對大家實用?;诖鷥r的優(yōu)化器是非常聰明的,在絕大多數(shù)情況下它會選擇正確的優(yōu)化器,減輕了DBA的負擔。但有時它也聰明反被聰明誤,選擇了非常差的運行計劃,使某個語句的運行變得奇慢無比。此時就須要DBA進行人為的干預,告訴優(yōu)化器使用我們指定的存取路徑或連接類型生成運行計劃,從而使語句高效的運行。比如,假設我們覺得對于一個特定的語句,運
系統(tǒng) 2019-08-12 01:52:50 2114
長期以來,我一直用的是MSSQLServer/Access數(shù)據(jù)庫,通過.NET訪問MS自家的東西幾乎沒碰到過什么麻煩。最近項目中要用Oracle作為數(shù)據(jù)庫,學習研究了一些.NET訪問Oracle的東西,發(fā)現(xiàn)問題倒真的不少。1。System.Data.OracleClient和System.Data.OleDb命名空間雖然通過這兩個命名空間的類都可以訪問Oracle數(shù)據(jù)庫,但和SQLServer類似的(System.Data.SqlClient命名空間的類效
系統(tǒng) 2019-08-12 01:32:20 2114
普通排序SQL是這樣的:SELECTNAMEFROMTABLEORDERBYNAME;這時候我們需要按照自己定義的NAME的排序規(guī)則進行排序,如按照某個字典ARRAY進行排序,就需要用個臨時表來完成如建立表:C_SORT_TcreatetableC_SORT_T(SORT_IDNUMBER(10),SORT_NAMEVARCHAR2(20),SORT_SEQNUMBER(10))然后把原有的SQL聯(lián)合排序表進行查詢,然后用SORT_SEQ排序就可以了。如果
系統(tǒng) 2019-08-12 01:51:28 2113
--==============================================--Oracle閃回特性(FLASHBACKDROP&RECYCLEBIN)--==============================================FLASHBACKDROP特性允許在不丟失任何數(shù)據(jù)庫的情況下將指定的表恢復至其被刪除的時間點,并保持數(shù)據(jù)庫為當前狀態(tài)。閃回刪除并不是真正的刪除表,而是把該表重命名并放入回收站,類似于Windo
系統(tǒng) 2019-08-12 01:55:31 2112
在Oracle里面,我通過圖形界面創(chuàng)建dblink,老是不成功,報錯。問了同事后,同事建議我用sql創(chuàng)建,于是復制了如下sqlcreatedatabaselinkdblink_testconnectto登錄用戶名identifiedby登錄密碼using'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=19.19.19.19)(PORT=1521)))(CONNECT_DATA=(SERVIC
系統(tǒng) 2019-08-12 01:54:29 2110
--==========================================--使用OEM,SQL*Plus,iSQL*Plus管理Oracle實例--==========================================/*一、管理組件Oracle10g數(shù)據(jù)庫管理包含三個組件,本文主要介紹DatabaseControl,SQL*Plus及iSQL*PlusDatabaseinstance(數(shù)據(jù)庫實例)-->系統(tǒng)使用的后臺進程Li
系統(tǒng) 2019-08-12 01:54:26 2110
偶然需要了解,學習了這篇文章,轉載記錄一下自:http://blog.csdn.net/jxzkin/article/details/79496291.創(chuàng)建測試數(shù)據(jù)[html]viewplaincopyCREATETABLECC(StudentNVARCHAR2(2),CourseNVARCHAR2(2),ScoreINT);[html]viewplaincopyINSERTintoCCselectN'張三',N'語文',78fromdualunional
系統(tǒng) 2019-08-12 01:54:42 2102
好久沒寫博客了,最近這段項目再在遷移所以有點忙.下面是這段時間學習并用到的命令.首先查詢當前目錄信息select*fromdba_directories;1.導出數(shù)據(jù)庫.首先賦予用戶對目錄的權限,然后再導出log為日志.Ⅰ:SQL>>createorreplacedirectoryexportDIRas'/opt/oracle/oradata';Ⅱ:SQL>>grantread,writeondirectoryexportDIRtouserX;Ⅲ:[cmd
系統(tǒng) 2019-08-12 01:52:07 2102
如果要插入固定有序的數(shù)據(jù),用一個SQL可以用下面的方法selectrownum-1fromdualconnectbyrownum<21但只支持9I或者更高版本,如果是8I就要建立個臨時表了:altertableCMES.C_PARAMETER_NUM_Tdropprimarykeycascade;droptableCMES.C_PARAMETER_NUM_Tcascadeconstraints;createtableCMES.C_PARAMETER_NUM
系統(tǒng) 2019-08-12 01:51:31 2102
exists先從外層查詢中取第一個元組,然后和內(nèi)層查詢中相關的屬性值,處理內(nèi)層查詢,若內(nèi)層where子句為真,則外層的這個元組放入到結果集中。in先執(zhí)行內(nèi)層查詢,將結果存放在臨時表中,然后執(zhí)行外層查詢。in不對null進行處理,見下圖,沒有返回結果??偨Y:內(nèi)層查詢得出的結果集記錄較少,外層查詢中得到的結果集較大且有索引,適合用in。外層查詢得出的結果集記錄較少,內(nèi)層查詢中得表較大其有索引,適合用exists。外層查詢得出的結果集記錄較多,內(nèi)層查詢中得到的結
系統(tǒng) 2019-08-12 01:55:25 2100
插入數(shù)據(jù)庫CLOBtempClob=null;try{Connectionconn=getConnection();PreparedStatement==conn.prepareStatement("UPDATEPROGRAM_HISTORYSETDETAILS=?WHEREID=12");tempClob=CLOB.createTemporary(conn,true,CLOB.DURATION_SESSION);tempClob.open(CLOB.MO
系統(tǒng) 2019-08-12 01:54:09 2100
太多的在線電子郵件存儲過程。我不轉發(fā),弄個作為一個簡單的例子演示。createorreplaceprocedureSend_mail(mail_bodyvarchar2)issmtp_connutl_smtp.connection;user_namevarchar2(20):=utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw('username@email.com')
系統(tǒng) 2019-08-12 01:54:05 2100
1.IntervalPartitioning分區(qū)11g新特性_分區(qū)表按時間自動創(chuàng)建,具體見如下示例:CREATETABLEtest_01(idnumber,cjsjdate)PARTITIONBYRANGE(cjsj)INTERVAL(NUMTOYMINTERVAL(1,'month'))-----這里的1表示增加的間隔,表示每一個月作為一個分區(qū);這里的month表示間隔是月,還有另外一個參數(shù);year(PARTITIONP0VALUESLESSTHAN(
系統(tǒng) 2019-08-29 23:28:28 2099