Time of Update: 2017-01-18
在開發過程中,經常會遇到一些測試,這時候就會想瞭解測試的過程,然後再根據過程分析代碼錯在哪裡,這種情況下,就需要用到自訂異常,需要瞭解的朋友可以參考本文先聲明一個異常 Java代碼 biz_exception exception; 再拋出來 Sql代碼 複製代碼 代碼如下: p_RETCODE := '-1'; p_retInfo := '已產生工資+社保類型賬單,請不要重複產生。'; raise biz_exception; 這樣預存程序就走到最後的抓取異常地方 Sql代碼 複製代碼
Time of Update: 2017-01-18
在開發過程中可能會用到oracle table demo 動作陳述式,本文將以此進行介紹,需要的朋友可以參考下Sql代碼 複製代碼 代碼如下: -- Created on 2010/07/29 by WANGNAN declare -- Local variables here i1 VARCHAR2( 20) := '1' ; i2 VARCHAR2( 20) := '1' ; i3 VARCHAR2( 20) := '2' ; i4 VARCHAR2( 20) := '3' ; i5
Time of Update: 2017-01-18
在開發應用中如何擷取oracle的最大日期呢?本文將提供這樣一個擷取方法,需要的朋友可以參考下Sql代碼 複製代碼 代碼如下: -- Created on 2010/06/08 by NAN declare -- Local variables here TYPE t_test IS TABLE OF DATE INDEX BY BINARY_INTEGER; v_test t_test; v_date DATE; BEGIN -- Test statements here v_test(1)
Time of Update: 2017-01-18
一、環境說明 來源資料庫: IP地址:192.168.137.100 sid:catalog 使用者名稱:rman 密碼:rman 目標資料庫: IP地址:192.168.137.101 sid:orcl 使用者名稱:rman 密碼:rman 二、在目標資料庫上建立到來源資料庫的tnsname 用oracle使用者登入目標資料庫,修改 $ORACLE_HOME/network/admin/tnsnames.ora檔案,增加如下內容 複製代碼 代碼如下: catalog =
Time of Update: 2017-01-18
一。查詢篇 1.查詢oracle資料表空間的使用方式 select b.file_id 檔案ID, b.tablespace_name 資料表空間, b.file_name 物理檔案名稱, b.bytes 總位元組數, (b.bytes-sum(nvl(a.bytes,0))) 已使用, sum(nvl(a.bytes,0)) 剩餘, sum(nvl(a.bytes,0))/(b.bytes)*100 剩餘百分比 from
Time of Update: 2017-01-18
Sql代碼 複製代碼 代碼如下: CREATE TABLE test(a VARCHAR2( 20),b VARCHAR2 (20),c NUMBER,d VARCHAR2 (20)) INSERT INTO test VALUES( 'a1','b1' ,1, 't'); INSERT INTO test VALUES( 'a3','b3' ,3, 't'); INSERT INTO test VALUES( 'a4','b4' ,4, 't'); INSERT INTO test
Time of Update: 2017-01-18
假如Oracle中有兩個使用者A和B,那麼如果A要訪問B擁有的表,語句應該是: 複製代碼 代碼如下: SELECT * FROM B.TABLENAME。 我要問的是,能否通過修改Oracle的設定,將A訪問B擁有表的語也變為跟B使用者登入一樣的語句:SELECT * FROM TABLENAME? 複製代碼 代碼如下: create synonym tablename for B.TABLENAME; 除了一樓的建立同義字外,還要授予A使用者訪問改同意詞的許可權. 複製代碼 代碼如下:
Time of Update: 2017-01-18
在知識庫的建立的時候,用普通VARCHAR2存放文章是顯然不夠的,只有區區4000的位元組,放不了多少字, 而CLOB資料類型,則能最多存放8G的資料。但是這個欄位處理起來有比較多的特殊性,記錄一下。 插入: 直接寫在SQL裡面是不行的,一來SQL指令碼有字元數限制,而來文章內容包含許多特殊字元,如換行,引號, 之類的東西,很麻煩。網上流行通用做法是先插入一個空CLOB欄位,用empty_clob()方法來建立空欄位,如: 複製代碼 代碼如下: INSERT INTO
Time of Update: 2017-01-18
表查詢: 合并查詢:使用union關鍵字,可將滿足條件的重複行去掉。 複製代碼 代碼如下: select ename,sal,job from emp where sal > 2500 union select ename,sal,job from emp where job = 'MANAGER'; 而union all用法和union相似,但是不會取消重複行。 intersect 用來取兩個結果的交集。 minus用來取兩個結果的差集。
Time of Update: 2017-01-18
1、首先建立目錄: create directory 目錄名稱 as '資料庫伺服器上的一個目錄',如: create directory 別名 as 'd:\伺服器目錄名'; 將匯入或匯出的檔案放在這個目錄下 2、匯出及匯入 以SID=orcl,匯出dmp的帳號為test,匯入dmp的帳號為test為例。 若將資料從sfz中匯出: expdp test/test@orcl directory=別名 dumpfile=匯出檔案名稱 匯入到test中: impdp test/test@orcl
Time of Update: 2017-01-18
1.安裝Oracle11g所需要的補丁包,安裝光碟片上全有,進入光碟片的Server目錄:(最好通過oracle的官方文檔來確定需要安裝哪些包) 2.修改使用者驗證選項 修改/etc/pam.d/login檔案加上如下參數 session required pam_limits.so 3.修改使用者設定檔 修改/etc/profile檔案加入如下參數: if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit
Time of Update: 2017-01-18
細粒度審計(FGA),是在Oracle 9i中引入的,能夠記錄SCN號和行級的更改以重建舊的資料,但是它們只能用於select語句,而不能用於DML,如update、insert和delete語句.因此,對於Oracle資料庫10g之前的版本,使用觸發器雖然對於以行級跟蹤使用者初始的更改是沒有吸引力的選擇,但它也是唯一可靠的方法 而Oracle10g中FGA功能的增強使其不但能夠支援select操作,同時也支援DML操作。在 Oracle 10g 中,
Time of Update: 2017-01-18
再寫一個預存程序時, 用到了如下sql語句 複製代碼 代碼如下: SELECT MAX(RE_DATE) INTO V_RE_DATE FROM T_RECORDING WHERE ID ='100010010102' 按理說,根據這個條件查詢的結果應該為sqlcode=1403 ,但是奇怪的是如下sql異常卻捕獲不到: 複製代碼 代碼如下: EXCEPTION WHEN NO_DATA_FOUND THEN NULL; WHEN OTHERS THEN ERR_CODE :=-2000;
Time of Update: 2017-01-18
查看oracle資料庫是否為歸檔模式 SQL> select name,log_mode from V$database; NAME LOG_MODE ------------------ ------------------------ TEST NOARCHIVELOG SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination
Time of Update: 2017-01-18
適用情況: 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: 2017-01-18
問題描述:在scott使用者下建立視圖的時候,報錯:許可權不足。 (其他使用者以此類推) 解決方案: 以dba使用者登入 [sql] 複製代碼 代碼如下: sqlplus / as sysdba 賦予scott使用者建立VIEW的許可權 [sql] 複製代碼 代碼如下: grant create view to scott 以scott使用者登入oracle [sql] 複製代碼 代碼如下: conn scott/tiger 建立視圖成功 [sql] 複製代碼 代碼如下: CREATE
Time of Update: 2017-01-18
很多資料轉換處理操作時,會遇到將0.007007040000轉換成0.70%的需求,我們使用Oracle 的SQL 函數 to_char可以實現這種轉換。 這個函數用來將DATE或NUMBER資料類型轉換成可顯示的字串,格式是to_char(number_type, format_mask)。 格式'999.99',9表示對應的某一個指定位元的值,如果是值是0則忽略不顯示,如果指定位元沒有值,則以空格表示。
Time of Update: 2017-01-18
本課內容屬於Oracle進階課程範疇,內容略微偏向理論性,但是與資料庫程式開發和管理、最佳化密切相關;另外本課的部分內容在前面章節已經涉及,請注意理論聯絡實際。事務 事務(Transaction)從
Time of Update: 2017-01-18
昨天做完項目後讓測試測試了一把,測試說分頁查詢貌似不起作用,翻到第4頁以後,看到的資料結果都是相同的。 當時我就覺得很納悶,不可能啊,分頁組件應該是好的,咋可能有問題呢。帶著疑問,我開啟了自己的ide,在自己的機器上跑了一把,果然有問題。 有問題就要找問題: 首先把2條查詢結果相同的sql列印出來到資料庫中執行: sql1: 複製代碼 代碼如下: select * from (select t.*, rownum rn from (select t_e_id, t_e_name,
Time of Update: 2017-01-19
這兩個星期裡一直都在忙於一件事兒,就是資料庫的遷移問題。沒有做的時候感覺這是一件十分輕鬆的事兒,可是等到實實在在去做去實現的時候,自己傻眼了。這種糾結啊,在這裡先說下遇到的問題:1。資料庫的表結構問題:資料類型不同需要解決varchar2------varchar、number-----int、date----datetime,建表的sql語句欄位預設值、注釋怎麼解決。2.