Time of Update: 2017-01-18
Linux系統下Oracle經常會出現亂碼,不管是安裝還是使用過程中都會出現中文亂碼。這是因為Linux系統中缺少了某些字型,只要安裝了這些字型,就能解決這個問題了。解決辦法一:方法如下: 把中文字型放到Oracle安裝包的 jdk/jre/lib/font/fallback下就可以了。 對於使用Oracle圖形化工具時出現的亂碼問題: 把中文字型複製到 ~/.font下,然後執行:複製代碼 代碼如下:$ sudo mkfontscale $ sudo
Time of Update: 2017-01-18
今天在手工配置Oracle11g的EM時總是報如下錯誤: WARNING:ORA-00001:uniqueconstraint(SYSMAN.PARAMETERS_PRIMARY_KEY)violated ORA-06512:at"SYSMAN.EMD_LOADER",line4986 ORA-06512:atline1 以Metalink上也沒有找到解決辦法,以下是我的解決過程: 1、資料庫版本 SQL>select*fromv$version; BANNER -------------
Time of Update: 2017-01-18
今天碰到一個比較奇怪的問題: 在用戶端上使用sqlplus用普通使用者可以登入,但是system以及sys使用者均無法登入,提示ORA-12154: TNS: 無法解析指定的串連標識符 SQL> conn system@webdata 輸入口令: ERROR: ORA-12154: TNS: 無法解析指定的串連標識符 SQL> conn xgplat@webdata 輸入口令: 已串連。 本來以為用戶端是32位的緣故,就在oracle伺服器上用sqlplus登入,也還是一樣 SQL&
Time of Update: 2017-01-18
在Oracle資料庫操縱中,登入Oracle帳號時提示失敗,並且Oracle帳號頻繁被鎖定。造成此故障的原因是什麼呢?本文就介紹了這一過程,經由過程慢慢排查我們就能找到該故障的原因了。 下面記錄下尋找這個題目的步調。 1. 找到帳號被鎖按時候 哄騙sqlplus或者sqldeveloper,查詢帳號被鎖定的時候,相干語句如下: --批改當前會話的日期顯示格局 alter session set nls_date_format = ""yyyy-MM-dd hh24:mi:ss"";
Time of Update: 2017-01-18
Oracle有許多的鎖,各種鎖的效用是不一樣的。下面重點介紹Oracle行級鎖,Oracle行級鎖只對使用者正在訪問的行進行鎖定。可以更好的保證資料的安全性。 如果該使用者正在修改某行,那麼其他使用者就可以更新同一表中該行之外的資料。 Oracle行級鎖是一種獨佔鎖定,防止其他事務修改此行,但是不會阻止讀取此行的操作。 在使用INSERT、UPDATE、DELETE 和SELECT…FOR UPDATE 等 語句時,Oracle會自動應用Oracle行級鎖行級鎖鎖定。SELECT...FOR
Time of Update: 2017-01-18
較典型的問題有:有時,表明明建有索引,但查詢過程顯然沒有用到相關的索引,導致查詢過程耗時漫長,佔用資源巨大,問題到底出在哪兒呢?按照以下順序尋找,基本上能發現原因所在。 尋找原因的步驟 首先,我們要確定資料庫運行在何種最佳化模式下,相應的參數是:optimizer_mode。可在svrmgrl中運行“showparameteroptimizer_mode"來查看。ORACLEV7以來預設的設定應是"choose",即如果對已分析的表查詢的話選擇CBO,否則選擇RBO。如果該參數設為“rule”,
Time of Update: 2017-01-18
用distinct關鍵字只能過濾查詢欄位中所有記錄相同的(記錄集相同),而如果要指定一個欄位卻沒有效果,另外distinct關鍵字會排序,效率很低 。 select distinct name from t1 能消除重複記錄,但只能取一個欄位,現在要同時取id,name這2個欄位的值。 select distinct id,name from t1 可以取多個欄位,但只能消除這2個欄位值全部相同的記錄 所以用distinct達不到想要的效果,用group by 可以解決這個問題。
Time of Update: 2017-01-18
本文講述SQL Server、Oracle、MySQL查出值為NULL的替換。 在SQL Server Oracle MySQL當資料庫中查出某值為NULL怎麼辦? 1、MSSQL: ISNULL() 文法 Java代碼 複製代碼 代碼如下: ISNULL ( check_expression , replacement_value ) ISNULL ( check_expression , replacement_value ) 參數 check_expression 將被檢查是否為
Time of Update: 2017-01-18
複製代碼 代碼如下: -- Created on 2010/11/04 by WANGNAN declare -- Local variables here i integer; TYPE t_table IS TABLE OF VARCHAR2(10 ) INDEX BY VARCHAR2 (2); v_t_table t_table; TYPE t_pg3 IS TABLE OF asis.PG3_AGENTCD_CONVERSION% ROWTYPE; v_pg3_table t_pg3;
Time of Update: 2017-01-18
修改項目時,涉及到了Oracle中許多表的修改(包括:增加、刪除欄位,修改注釋等)。由於開始沒有進行記錄,造成在上測試機時,忘記了具體修改過哪些表了。後來在網上尋找了一些資料,例如: 複製代碼 代碼如下: 1、select uat.table_name from user_all_tables uat 該SQL可以獲得所有使用者表的名稱 2、select object_name, created,last_ddl_time from user_objects
Time of Update: 2017-01-19
當然這點小問題是難不倒我們程式員的,“max+1啊”,有人會說這樣的方式。是的,這種方式實現起來也比較簡單。當然你也許還會說,最Sql的方式是採用identity列,自增的方式去增加就ok了。但是這樣的列如果要實現“YYYYMMDD”+Sequence值 (例如:2008072400001)的格式就不行了。還是老老實實用預存程序來取得一個Sequence值吧,使用起來也就隨心所欲了。網上常見的一個預存程序為 為當前庫所有用到Sequence建一張表,譬如“AllSequence”,內含四個欄位【
Time of Update: 2017-01-19
Oracle 11g伺服器與用戶端的完全卸載方式與前些版本有了改變: 一、卸載前準備: 開始->設定->控制台->管理工具->服務 停止所有Oracle服務。 二、批處理卸載: 運行H:\app\Administrator\product\11.2.0\dbhome_1\deinstall的deinstall.bat批次檔卸載,全程代碼如下: (用戶端卸載與此類似,螢幕過程中都會有詢問,一路斷行符號或y選擇預設即可。) Checking for required
Time of Update: 2017-01-19
/*ORACLE中的支援Regex的函數主要有下面四個:1,REGEXP_LIKE :與LIKE的功能相似2,REGEXP_INSTR :與INSTR的功能相似3,REGEXP_SUBSTR :與SUBSTR的功能相似4,REGEXP_REPLACE :與REPLACE的功能相似它們在用法上與Oracle SQL 函數LIKE、INSTR、SUBSTR 和REPLACE 用法相同,但是它們使用POSIX Regex代替了老的百分比符號(%)和萬用字元(_)字元。POSIX
Time of Update: 2017-01-19
Oracle中查詢某個表的總欄位數,要用SQL語句,或者在PL/SQL裡面複製代碼 代碼如下:select count(column_name) from user_tab_columns where table_name='T_B_AUDITOR'能夠查出來指定的那張表的欄位數。下面是通過大致查看:select tname,count(*) from col group
Time of Update: 2017-01-19
這兩個星期裡一直都在忙於一件事兒,就是資料庫的遷移問題。沒有做的時候感覺這是一件十分輕鬆的事兒,可是等到實實在在去做去實現的時候,自己傻眼了。這種糾結啊,在這裡先說下遇到的問題:1。資料庫的表結構問題:資料類型不同需要解決varchar2------varchar、number-----int、date----datetime,建表的sql語句欄位預設值、注釋怎麼解決。2.
Time of Update: 2017-01-19
在DBA的日常工作中,經常遇到為Oracle使用者解鎖的操作;這篇文章給出在命令列下進行Oracle使用者解鎖的操作方法,通過幾條簡單的解鎖語句就能完成此項工作。下面是具體的過程:預設的scott使用者是被鎖定的,先解鎖就能登陸上了。 使用下面的語句解鎖scott: 複製代碼 代碼如下:alter user scott account unlock; 解鎖之後可能會要求你該密碼: 複製代碼 代碼如下:alter user scott identified by tiger; 再登陸: 複製代碼
Time of Update: 2017-01-19
經過長時間學習建立Oracle資料表空間,於是和大家分享一下,看完本文你肯定有不少收穫,希望本文能教會你更多東西。1、先查詢空閑空間複製代碼 代碼如下:select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space; 2、增加Oracle資料表空間先查詢資料檔案名稱、大小和路徑的資訊,語句如下:複製代碼 代碼如下:select tablespace_name,file_id,bytes,file_name
Time of Update: 2017-01-19
今天遇到一個求某月所有天數的統計結果,如果某日的結果是0也需要顯示出來,即: 日期 交易次數 交易金額 2009-4-01 1 &
Time of Update: 2017-01-19
1.最佳化應用程式和商務邏輯,這個是最重要的。 2.資料庫設計階段範式和反範式的靈活應用。一般情況下,對於頻繁訪問但是不頻繁修改的資料,內部設計應當物理不正常化;對於頻繁修改但並不頻繁訪問的資料,內部設計應當物理正常化。 3.充分利用記憶體,最佳化sga、pga等(11g已經實現了sga+pga自動化,但有的時候仍然需要手動進行調整),適當的將小表keep到cache中。 4.最佳化sql語句
Time of Update: 2017-01-19
<? class DB_Sql { var $Debug = false; var $Home = "/u01/app/oracle/product/8.0.4"; var $Remote = 1; /* This Query will be sent directly after the first connection Example: var $ConnectQuery="ALTER SESSION SET