|
錯誤寫法:
select a.*, rownum rfrom (select * from lg_order o order by o.order_id) awhere rownum <= 20 and rownum >= 10
正確寫法:
select *from (select a.*, rownum r from (select * from lg_order o order by o.order_id) a where rownum <= 20) bwhere r >= 10
第一句是錯誤的,由于rownum是一個總是從1開始的偽列,Oracle 認為這種條件不成立,查不到記錄 SQL的執行順序從內到外,從右到左。
在數據庫中,UNION和UNION ALL關鍵字都是將兩個結果集合并為一個,但這兩者從使用和效率上來說都有所不同。
UNION在進行表鏈接后會篩選掉重復的記錄,所以在表鏈接后會對所產生的結果集進行排序運算,刪除重復的記錄再返回結果。
實際大部分應用中是不會產生重復的記錄,最常見的是過程表與歷史表UNION。如:
select * from gc_dfys union select * from ls_jg_dfys
這個SQL在運行時先取出兩個表的結果,再用排序空間進行排序刪除重復的記錄,最后返回結果集,如果表數據量大的話可能會導致用磁盤進行排序。
而UNION ALL只是簡單的將兩個結果合并后就返回。這樣,如果返回的兩個結果集中有重復的數據,那么返回的結果集就會包含重復的數據了。
從效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認合并的兩個結果集中不包含重復的數據的話,那么就使用UNION ALL,如下:
select * from gc_dfys union all select * from ls_jg_dfys
本機安裝了Oracle數據庫和客戶端,在公司完全正常使用,晚上回賓館加班,沒有網線,發現Oracle和Listener都啟動了卻無法訪問數據庫,提示的信息還是關于監聽器。
Oracle10g 我不插網線的時候安裝總是報告IP信息錯誤,就是沒有聯網無法指定IP,導致安裝不成功。大家都知道本機的IP為127.0.0.1,那么,把 E:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN目錄下的listener.ora和tnsnames.ora 以及E:\oracle\product\10.1.0\Client_1\NETWORK\ADMIN目錄下的tnsnames.ora的HOST值都改為127.0.0.1,聯網打開Oracle,再拔除網線,用PL/SQL或其他數據庫管理工具連接數據庫,成功!
注意:
數據庫的HOST和客戶端的HOST配置必須完全相同。
近日在配置Oracle 10G的流復制環境時,遇到一個問題,關閉數據庫(shutdown immediate)后,通過SQL Plus連接數據庫:conn sys/his@orc0 as sysdba,出現如下錯誤:
ORA-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務
通過重啟服務的方式啟動數據庫,再次連接卻能成功登錄,也就是說在關閉數據庫狀態下無法連接服務器。
開始以為是系統環境變量Oracle_SID的配置問題,因為機器有多個實例,一陣折騰后還是不能連接。后來查資料得知:
Oracle9i以后,后臺進程PMON自動在監聽器中注冊在系統參數SERVICE_NAMES中定義的服務名,SERVICE_NAMES默認為 DB_NAME+DOMAIN_NAME。監聽配置文件listener.ora中可以不必指定監聽的服務名。但是,當數據庫處于關閉狀態下PMON進程沒有啟動,也就不會自動注冊監聽的實例名,所以使用sqlplus sys/his@orc0 as sysdba 會出現ORA-12514錯誤。
如果在listener.ora文件中指定監聽的實例名,則即使數據庫處于關閉狀態,仍然可以連接。
listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = zyk)(PORT = 1521))
)
)
以上粗體部件為增加的內容,修改后重啟監聽服務后即可。
附:通過在lsnrctl中輸入set display verbose,然后再通過命令service查看,服務狀態為READY表示PMON自動注冊的服務名,而UNKNOWN則表示該服務是手工在LISTENER.ORA中配置的數據庫服務。
由于本本升級到了4G內存,操作系統是Win7旗艦版,只能識別3G內存,感覺有點浪費,于是下了個64位的Win7裝上了。之前裝的Oracle10是32位Vista版的,現在得重新下64位的Vista版。但是啟動安裝程序后被禁止了,如圖,最后在網上找到了通過驗證的方法,記錄下來備忘。

修改文件:\database\stage\prereq\db\refhost.xml 追加:
<!--Microsoft Windows 7-->
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
如圖:

修改文件:\database\install\oraparam.ini 找到 Windows=5.0,5.1,5.2,6.0 追加,6.1,你懂的!如圖

修改完成后再運行“setup.exe”,順利通過!

今天下午沒事想裝一下MySQL5.5,裝這小東西我早就輕車熟路,唰唰唰,其利卡察到了最后,配置數據庫,可到最后一步的時候把我整肌無力了。大家都知道裝MySQL在最后配置數據庫的時候需要關閉系統防火墻和其他三方防火墻的,這是嘗試,可明明已經關了為啥還要提示下面的錯誤呢? 

我反反復復的檢查電腦上是否還有第三方的防火墻開著,360安全衛士、QQ電腦管家、NOD32,統統被關掉了
網絡可真是個好東西,馬上Google了一下,發現別人同樣遇到了此問題,按照他的方法解決了這個問題
在我們配置數據庫的時候,有一個允許遠程機器訪問的復選框,都是因為我們勾選了它,才導致此問題出現的,取消勾選就可以了,如圖

我想一般我們在自己的電腦上裝MySQL基本上都是自己用,不會有其他人連咱們的數據庫,如果有這需求那就得找其他解決方案了
點擊“Next”

OK,配置完畢!
PS:第一次配置失敗了,咱們再配置就得先刪掉之前配置的那個實例,如圖:

點擊“Next”

點擊“Finish”后窗口關閉,再重新配置就可以了
IE6 的郵件可以直接去掉地址欄,但IE7不行,使用window.open,設置location=no,可地址欄依舊可見,只是變成只讀而已。在網上搜索了一下,說微軟為了安全,防止釣魚程序,在安全設置的時候關閉了,腳本可以初始化窗口的功能,需要自己手動啟用才有效,方法如下:
工具-->Internet選項-->安全-->Internet-->自定義級別-->設置,在設置中調整兩個選項: 充許網站打開沒有地址欄和狀態欄的窗口:啟用; 充許由腳本初始化窗口,不受大小和位置限制:啟用;
重新啟動IE7即可,地址欄消失;
因為打開了新窗口,所以想關閉原來的窗口,調用了window.close,可提示是否關閉,這個在IE6里也是沒有的,看來IE7相對IE6確實改變很大,在網上搜了個方法,可以去掉提示,如下:
window.opener = null;
window.open('', '_self');
window.close();
彈出窗口在WEB開發中經常遇見,偶爾也會有打開窗口最大化的需求。我們的系統為了擴大可用區域范圍,以及禁止用戶刷新或在地址欄里直接敲入地址,采用了window.open的方式彈出一個沒有地址欄,以及那些減小可用范圍的瀏覽器元素。一直以來我們采用的方式都是如下:
screenWidth = window.screen.width - 10;
screenHeight = window.screen.height;window.open(url,'','width='+screenWidth+',height='+screenHeight+',left=0,top=0,titlebar=no,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes');
也就是獲取屏幕的寬高,再設置打開窗口的寬高,但這和鼠標點擊點擊最大化是不同的,窗口雖說是和屏幕一樣寬高了,但和用鼠標拉成的效果一樣,最大化按鈕還在那里,看著不算滿意。還有一種是全屏的方案,這個方案僅次于我們用的這種,真正意義上的可視化區域最大,但窗口沒有了邊框,看著不舒服,命令如下
//window.open(url, '', 'fullscreen'); // 開啟一個全屏的窗口。
網上還有一種借助object對象的方法,也能實現窗口最大化,這個和鼠標點擊最大化是一樣的效果,但我把它舍棄了,因為窗口彈出后需要我確認一下“ActiveX”控件,這個很煩人,我想用戶肯定也不喜歡。賣了這么多的關子,相比各位已經迫不及待了,言歸正傳,來的朋友肯定是不知道的,知道的也不會來,呵呵,命令如下:
window.open(url, '', 'scrollbars=yes,resizable=yes,channelmode'); // 開啟一個被F11化后的窗口起作用的是最后那個特效
即channelmode,前兩個是我自己加的,我想讓窗口可以最小化或修改大小,不理解你可以把前面的屬性去掉試試,那樣窗口的最大化按鈕就只讀了。
如果您的電腦使用的是nforce芯片組的主板和串口硬盤。在系統中安裝好所有的硬件驅動程序后,發現在任務欄右下角始終會顯示一個“安全刪除硬件”的圖標。這是nforce芯片組在安裝了IDE-SW主板驅動以后,系統會把SATA硬盤識別為可移動設備,每次開機后都會顯示這個圖標。
清除方法: 打開注冊表定位到[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata]用右鍵點擊“nvata”,選擇“新建/DWORD值”選項,此時會在右側窗口中添加一個“新值il”項,將它重命名為“DisableRemovable”,再雙擊它打開“編輯DWORD值”對話框,將“數值數據”更改為“1”,點擊“確定”按鈕即可。 如果在注冊表中找不到“nvata”建值,可定位到[HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\nvatabus]在點擊“nvatabus”創建和設置“DisableRemovable”鍵值即可。 重啟電腦后,系統就不會將SATA硬盤識別為可移動設備了,那個“安全刪除硬件”圖標也就消失了,而且不會影響其它可移動設備的正常使用,在插入U盤或移動硬盤等設備后,系統仍然會出現“安全刪除硬件”的圖標。
很多朋友右鍵打開一個文件,發現僅有幾個默認的打開方式,選擇打開方式卻提示“決絕訪問”類似字樣,解決此問題的辦法是,將下面虛線之間的內容復制到文本文檔中,保存為"XXXX.reg”,文件名可自己取,叫什么沒關系,保存后雙擊執行,會看到“是否將XXXX.reg中的信息添加進注冊表?”,點確認。OK,你現在選擇一個文件,看看右鍵選擇打開方式還能不能用!!!
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Unknown]
"AlwaysShowExt"=""
"QueryClassStore"=""

[HKEY_CLASSES_ROOT\Unknown\shell]
@="openas"

[HKEY_CLASSES_ROOT\Unknown\shell\openas]

[HKEY_CLASSES_ROOT\Unknown\shell\openas\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,\
6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,25,00,53,\
00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,\
79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,65,00,6c,00,6c,\
00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,4f,00,70,00,65,00,6e,00,41,00,\
73,00,5f,00,52,00,75,00,6e,00,44,00,4c,00,4c,00,20,00,25,00,31,00,00

|