Time of Update: 2017-01-18
本人最近在使用oracle的rownum實現分頁顯示的時候,對rownum做了進一步的分析和研究。現歸納如下,希望能給大家帶來收穫。 對於rownum來說它是oracle系統順序分配為從查詢返回的行的編號,返回的第一行分配的是1,第二行是2,依此類推,這個偽欄位可以用於限制查詢返回的總行數,而且rownum不能以任何錶的名稱作為首碼。 舉例說明: 例如表:student(學生)表,表結構為: 複製代碼 代碼如下: ID char(6) --學號 name VARCHAR2(
Time of Update: 2017-01-18
看PD中,雙擊某個表,查看其preview標籤,然後會發現有某個表的create語句,如下: 複製代碼 代碼如下: create table Company_Info ( Company_ID NVARCHAR2(50) not null, Area_ID NVARCHAR2(50), Mem_ID NVARCHAR2(50), Level_Id NVARCHAR2(50), Name NVARCHAR2(50) not null, Capital NVARCHAR2(50),
Time of Update: 2017-01-18
在知識庫的建立的時候,用普通VARCHAR2存放文章是顯然不夠的,只有區區4000的位元組,放不了多少字, 而CLOB資料類型,則能最多存放8G的資料。但是這個欄位處理起來有比較多的特殊性,記錄一下。 插入: 直接寫在SQL裡面是不行的,一來SQL指令碼有字元數限制,而來文章內容包含許多特殊字元,如換行,引號, 之類的東西,很麻煩。網上流行通用做法是先插入一個空CLOB欄位,用empty_clob()方法來建立空欄位,如: 複製代碼 代碼如下: INSERT INTO
Time of Update: 2017-01-18
聯合數組以前被稱為PL/SQL表。在表中不能使用聯合數組,只能將它們用作程式設計的結構體。只能在PL/SQL中訪問聯合數組。 注意到聯合數組帶來的一些關鍵問題是非常重要的。這些問題使我們介紹它們的用法時,需要採取一些特別的方法。這些問題包括: 聯合數組不需要初始化,也沒有建構函式文法。在對它們進行賦值以前,也不需要專門為其分配儲存空間,也就不需要使用集合API的EXTEND方法。 在ORACLE 10G中,以及在ORACLE 10G以前的版本中,都可以使用數字索引聯合數組。另外,在ORACLE
Time of Update: 2017-01-18
作為一名DBA,常見的一個情境之一: 建立資料表空間: 複製代碼 代碼如下: createtablespaceThink datafile'/u01/app/oracle/oradata/orcl/think.dbf'size100M autoextendonnext10Mmaxsize4096M extentmanagementlocaluniformsize256K segmentspacemanagementauto; 建立使用者: 複製代碼 代碼如下: createuserbin
Time of Update: 2017-01-18
在Oracle中如果刪除了表中的某一條資料,還可以通過復原操作(rollback)進行復原,假如想清空一張 表的資料,但是又不想使其能進行復原操作,就可以立刻釋放資源,這時就需要使用截斷表了。它的主要功能就是徹底刪除資料,使其不能進行復原。這裡我打個比方大家就立刻能明了它的作用。大家眾所周知,當我們在自己的PC(personcomputer)上刪除某一個檔案,它並沒有徹底刪除而是進入了資源回收筒,你要在資源回收筒中再將其刪除才算徹底清除。截斷表就相當於直接將資料從pc上刪除,而不會清除。
Time of Update: 2017-01-18
serveroutput 是sqlplus的配置參數,而不是資料庫的配置參數,修改並儲存sqlplus的配置參數,那麼每次開啟sqlplus時就不用重新設定了。 設定方法如下: 1. sql> set serveroutput on 然後,在sqlplus中 2. sql> store set $ORACLE_HOME/sqlplus/admin/glogin.sql replace 完成儲存設定. 可以通過如下查看設定效果: SQL> show serveroutput;
Time of Update: 2017-01-18
1、在報表頁面配置相應的位置加入文字框,一般為Download 右鍵用PL/SQL編輯器編寫成超連結,加入以下內容: 複製代碼 代碼如下: function B_13FormatTrigger return boolean is begin IF upper(:P_ACTION) != 'DOWNLOAD' THEN return (FALSE); ELSE srw.set_hyperlink(EXP_FILE.linkto); return (TRUE); END IF; end;
Time of Update: 2017-01-18
本文內容 B-樹(B-tree) 散列(Hash) k-d 樹(k-d tree) 點四叉樹(Point Quadtree) 本文介紹關於 Oracle 索引的結構。大概瞭解 Oracle 索引底層的資料結構,從而更好地理解 Oracle 索引對增、刪、改、查的效能。B-樹(B-tree) 非索引的結構能滿足所有需要,但自平衡的 B-樹索引結構更能最佳化在大資料集上檢索的效能。每個 B-樹節點擁有多個鍵和指標。特定 B-樹支援的一個節點中鍵的最大數量是那顆樹的順序。每個節點都具有一個潛在的
Time of Update: 2017-01-18
接收contract_no和item_no值,在inventory表中尋找,如果產品: 已發貨,在arrival_date中賦值為今天后的7天 已訂貨,在arrival_date中賦值為今天后的一個月 既無訂貨又無發貨,則在arrival_date中賦值為今天后的兩個月, 並在order表中增加一條新的訂單記錄。 product_status的列值為'shipped'和'ordered' inventory: product_idnumber(6)
Time of Update: 2017-01-18
本文介紹了C#串連Oracle資料庫的過程。通過instant client和ODP.net中的Oracle.DataAccess.dll,我們就可以方便的部署.net應用程式或者網站,而不需要安裝Oracle用戶端。接下來我們就介紹這一過程。 1. ODAC的安裝 在oracle的官方網站上下載與你安裝的oracle對應版本的ODAC。 下載地址:ODAC Download 下載好後解壓安裝,安裝時不用安裝全部的組件。主要安裝以下組件: Oracle Instant Client
Time of Update: 2017-01-18
1.基本概念 兩種功能:完成由資料庫的完整性條件約束難以完成的複雜商務規則的約束;監視資料庫的各種操作,實現審計功能。 觸發器分為:DML觸發器(對錶或視圖執行DML操作時觸發),INSTEAD OF觸發器(只定義在視圖上,替代實際的動作陳述式),系統觸發器(對資料庫系統進行操作時觸發,如DDL語句、啟動或關閉資料庫等) 觸發事件: 上述觸發器中括弧內容都是觸發事件。 觸發條件: WHEN子句 觸發對象:包括表、視圖、模式、資料庫。 觸發操作:觸發器自動執行的程式。
Time of Update: 2017-01-18
下午在學習oracle 10g r2 concepts在這留一筆。Oracle對資料庫資料檔案(datafile)中的儲存空間進行管理的單位是資料區塊(data block)。資料區塊是資料庫中最小的(邏輯)資料單位。與資料區塊對應的,所有資料在作業系統級的最小實體儲存體單位是位元組(byte)。每種作業系統都有一個被稱為塊容量(block size)的參數。Oracle每次擷取資料時,總是訪問整數個(Oracle)資料區塊,而不是按照作業系統塊的容量訪問資料。資料庫中標準的資料區塊(data
Time of Update: 2017-01-18
如何重設oracle 10g SYS 的密碼 安裝完oracle 10g後,竟然將安裝時設定的系統密碼忘記。在同事的協助下通過一下方法解決。 1.oracle的密碼檔案存在於:oracle_home/database/pwd<sid>.ora 2.使用orapwd 重設SYS密碼 C:oracleproduct10.2.0db_1database>orapwd Usage: orapwd file=<fname> password=<password>
Time of Update: 2017-01-18
plsql串連oracle資料庫報ora 12154錯誤 今天遇到一個問題,使用sqlplus能夠串連到遠端資料庫,但是使用plsql卻串連不上,報錯"ORA-12154: TNS: 無法解析指定的串連標識符" 解決方案如下: 1.先檢查伺服器端的監聽服務是否開啟,如果沒有開啟請啟動其監聽 用戶端:tnsping <tns_name> 伺服器Linux下: #>lsnrctl status 查看監聽狀態 #>lsnrctl start 啟動監聽 2.通過Sql
Time of Update: 2017-01-18
如果發生了鎖等待,我們可能更想知道是誰鎖了表而引起誰的等待 以下的語句可以查詢到誰鎖了表: 複製代碼 代碼如下: SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
Time of Update: 2017-01-18
在Oracle中刪除使用者時提示:ORACLE無法刪除當前串連使用者可以用以下語句 Sql代碼 SQL> 複製代碼 代碼如下:select username,sid,serial# from v$session; USERNAME SID SERIAL# ------------------------------ ---------- ---------- 1 1 2 1 3 1 4 1 5 1 6 1 7 1 SYS 8 3 A 9 4 已選擇9行。 SQL> 複製代碼
Time of Update: 2017-01-18
注意點: 1.如果在PL/SQL 等工具裡開啟的話,直接修改下面的代碼中[斜體加粗部分]執行 2.確保路徑存在,比如【D:\oracle\oradata\Oracle9i\】也就是你要儲存檔案的路徑存在 /*分為四步 */ /*第1步:建立暫存資料表空間 */ 複製代碼 代碼如下: create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m
Time of Update: 2017-01-18
有三種方式拋出異常 1.通過PL/SQL運行時引擎 2.使用RAISE語句 3.調用RAISE_APPLICATION_ERROR預存程序 當資料庫或PL/SQL在運行時發生錯誤時,一個異常被PL/SQL運行時引擎自動拋出。異常也可以通過RAISE語句拋出 RAISE exception_name;
Time of Update: 2017-01-18
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from dual; --加1月 select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期 select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS')