Time of Update: 2018-12-08
round(x[,y]) 【功能】返回四捨五入後的值 【參數】x,y,數字型運算式,如果y不為整數則截取y整數部分,如果y>0則四捨五入為y位小數,如果y小於0則四捨五入到小數點向左第y位。 【返回】數字 【樣本】 select round(5555.6666,2.1),round(5555.6666,-2.6),round(5555.6666) from dual; 返回: 5555.67 , 5600 , 5556 【相近】trunc(x[,y])
Time of Update: 2018-12-08
Oracle的監聽器服務註冊方式有兩種,分別為動態和靜態。通過動態註冊的服務在lsnrctl status時顯示的狀態為ready,靜態服務為unknown。 11g2以前的版本,監聽器通過listener.ora檔案進行配置。在11g2版本中,監聽器的配置方式發生了變化,增加了一個新的設定檔endpoints_listener.ora,並且此檔案和原來的listener.ora檔案都轉移到$GRID_HOME/network/admin目錄下了。
Time of Update: 2018-12-08
適用情況: oracle 對查詢結果進行排序時,被排序的欄位存在null值,且要指定NULL值排在最前面或者最後面 關鍵字:Nulls First;Nulls Last 預設情況:null 預設為最大值(即:asc 升序<小-->大>,null值排在最後;desc 降序<大-->小>,null值排在最前面) 指定: 1.Oracle Order by支援的文法 2.指定Nulls first 則表示null值的記錄將排在最前(不管是asc 還是desc) 3.
Time of Update: 2018-12-08
問題描述:在scott使用者下建立視圖的時候,報錯:許可權不足。 (其他使用者以此類推) 解決方案: 以dba使用者登入 [sql] 複製代碼 代碼如下:sqlplus / as sysdba 賦予scott使用者建立VIEW的許可權 [sql] 複製代碼 代碼如下:grant create view to scott 以scott使用者登入oracle [sql] 複製代碼 代碼如下:conn scott/tiger 建立視圖成功 [sql] 複製代碼 代碼如下:CREATE OR
Time of Update: 2018-12-08
1.靜態SQLSQL與動態SQL Oracle編譯PL/SQL程式塊分為兩個種:其一為前期聯編(early binding),即SQL語句在程式編譯期間就已經確定,大多數的編譯情況屬於這種類型;另外一種是後期聯編(late
Time of Update: 2018-12-08
解決Connect to Idle Instance問題 第一步 查看Oracle_SID. [oracle@linuxserver ~]$ echo $ORACLE_SID cjdl 這裡的SID要和初始設定檔案spfilecjdl.ora裡的一樣才行。 [oracle@linuxserver ~]$ cd $ORACLE_HOME [oracle@linuxserver 11.2.0]$ cd dbs [oracle@linuxserver dbs]$ ls hc_cjdl.dat
Time of Update: 2018-12-08
在CentOS 6.3下安裝完Oracle 10g R2,重開機之後,你會發現Oracle沒有自行啟動,這是正常的,因為在Linux下安裝Oracle的確不會自行啟動,必須要自行設定相關參數,首先先介紹一般而言如何啟動oracle。一、在Linux下啟動Oracle登入到CentOS,切換到oracle使用者權限# su – oracle接著輸入:$ sqlplus "/as sysdba"原本的畫面會變為SQL>接著請輸入SQL>
Time of Update: 2018-12-08
本課內容屬於Oracle進階課程範疇,內容略微偏向理論性,但是與資料庫程式開發和管理、最佳化密切相關;另外本課的部分內容在前面章節已經涉及,請注意理論聯絡實際。事務 事務(Transaction)從
Time of Update: 2018-12-08
今天在手工配置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: 2018-12-08
[sql] 複製代碼 代碼如下:create table wlbtest1( username varchar2(2), deptID number ); create table wlbtest2( deptName varchar2(10), deptID number ); insert into wlbtest1 values ('a', 1); insert into wlbtest1 values ('b', 1); insert into wlbtest1 values ('c',
Time of Update: 2018-12-08
在Oracle資料庫操縱中,登入Oracle帳號時提示失敗,並且Oracle帳號頻繁被鎖定。造成此故障的原因是什麼呢?本文就介紹了這一過程,經由過程慢慢排查我們就能找到該故障的原因了。 下面記錄下尋找這個題目的步調。 1. 找到帳號被鎖按時候 哄騙sqlplus或者sqldeveloper,查詢帳號被鎖定的時候,相干語句如下: --批改當前會話的日期顯示格局 alter session set nls_date_format = ""yyyy-MM-dd hh24:mi:ss"";
Time of Update: 2018-12-08
較典型的問題有:有時,表明明建有索引,但查詢過程顯然沒有用到相關的索引,導致查詢過程耗時漫長,佔用資源巨大,問題到底出在哪兒呢?按照以下順序尋找,基本上能發現原因所在。 尋找原因的步驟 首先,我們要確定資料庫運行在何種最佳化模式下,相應的參數是:optimizer_mode。可在svrmgrl中運行“showparameteroptimizer_mode"來查看。ORACLEV7以來預設的設定應是"choose",即如果對已分析的表查詢的話選擇CBO,否則選擇RBO。如果該參數設為“rule”,
Time of Update: 2018-12-08
複製代碼 代碼如下:-- 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: 2018-12-08
修改項目時,涉及到了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: 2018-12-08
Oracle有許多的鎖,各種鎖的效用是不一樣的。下面重點介紹Oracle行級鎖,Oracle行級鎖只對使用者正在訪問的行進行鎖定。可以更好的保證資料的安全性。 如果該使用者正在修改某行,那麼其他使用者就可以更新同一表中該行之外的資料。 Oracle行級鎖是一種獨佔鎖定,防止其他事務修改此行,但是不會阻止讀取此行的操作。 在使用INSERT、UPDATE、DELETE 和SELECT…FOR UPDATE 等 語句時,Oracle會自動應用Oracle行級鎖行級鎖鎖定。SELECT...FOR
Time of Update: 2018-12-08
重裝了筆記本上的oracle,安裝完成後,可以正常使用OEM控制台,但是登出後重新登入或者重啟系統後登入,或者筆記本使用網路環境發生了變化,都有可能遇到問題。這些遇到問題的解決辦法使用過,但是很久沒折騰就忘記了,今天把這些問題和解決方案記錄在此。 1、網路環境變化導致無法啟動 這個問題的現象是無法啟動OEM。使用命令列如下: 複製代碼 代碼如下:C:/Users/Administrator>set ORACLE_SID=TEST
Time of Update: 2018-12-08
用distinct關鍵字只能過濾查詢欄位中所有記錄相同的(記錄集相同),而如果要指定一個欄位卻沒有效果,另外distinct關鍵字會排序,效率很低 。 select distinct name from t1 能消除重複記錄,但只能取一個欄位,現在要同時取id,name這2個欄位的值。 select distinct id,name from t1 可以取多個欄位,但只能消除這2個欄位值全部相同的記錄 所以用distinct達不到想要的效果,用group by 可以解決這個問題。
Time of Update: 2018-12-08
本文講述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: 2018-12-08
1、telnet到遠端資料庫伺服器 CMD>telnet 遠端資料庫的IP 2、切換到資料庫的使用者 DQXXDBS01:/> su - oracle 3、用超級使用者進入資料庫 $ sqlplus "/as sysdba" 4、查看參數,是否可以用job(可以用job進行自動的收集Statpack Report的資料) SQL> show parameter job_queue_processes 5、該參數可以收集作業系統的資訊 SQL> show
Time of Update: 2018-12-08
在開發過程中,經常會遇到一些測試,這時候就會想瞭解測試的過程,然後再根據過程分析代碼錯在哪裡,這種情況下,就需要用到自訂異常,需要瞭解的朋友可以參考本文先聲明一個異常 Java代碼 biz_exception exception; 再拋出來 Sql代碼 複製代碼 代碼如下:p_RETCODE := '-1'; p_retInfo := '已產生工資+社保類型賬單,請不要重複產生。'; raise biz_exception; 這樣預存程序就走到最後的抓取異常地方 Sql代碼 複製代碼 代碼如下: