Time of Update: 2018-12-08
iSQL*PLUS介紹iSQL*PLUS是從ORACLE 9i開始提供的新功能,是SQL*PLUS的Web形式(ORACLE 11g已經不支援)。是基於三層結構設計的。其client、middle、server可以位於同一台機器上也可以位於不同的機器。iSqlPlus不需要單獨安裝,通過isqlplus,使用者可以不需要安裝任何ORACLE用戶端,就能夠通過瀏覽器方式的使用SQL*PLUS進行資料操作與資料庫管理。普通的資料庫使用者可以直接通過isqlplus的網址http://ip:port/
Time of Update: 2018-12-08
有三種方式拋出異常 1.通過PL/SQL運行時引擎 2.使用RAISE語句 3.調用RAISE_APPLICATION_ERROR預存程序 當資料庫或PL/SQL在運行時發生錯誤時,一個異常被PL/SQL運行時引擎自動拋出。異常也可以通過RAISE語句拋出 RAISE exception_name;
Time of Update: 2018-12-08
表查詢: 合并查詢:使用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: 2018-12-08
有時不清楚一些參數的所有允許設定的值,可以由以下兩個方法獲得 1.直接輸入錯的值,讓error來提示 複製代碼 代碼如下:SQL> alter system set "_db_block_cache_protect"=what scope=spfile; alter system set "_db_block_cache_protect"=what scope=spfile * ERROR at line 1: ORA-00096: invalid value WHAT for
Time of Update: 2018-12-08
資料庫是一個多使用者使用的共用資源。當多個使用者並發地存取資料時,在資料庫中就會產生多個事務同時存取同一資料的情況。若對並行作業不加控制就可能會讀取和儲存不正確的資料,破壞資料庫的一致性。 加鎖是實現資料庫並發控制的一個非常重要的技術。當事務在對某個資料對象進行操作前,先向系統發出請求,對其加鎖。加鎖後事務就對該資料對象有了一定的控制,在該事務釋放鎖之前,其他的事務不能對此資料對象進行更新操作。 在資料庫中有兩種基本的鎖類型:排它鎖(Exclusive
Time of Update: 2018-12-08
查看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: 2018-12-08
很多資料轉換處理操作時,會遇到將0.007007040000轉換成0.70%的需求,我們使用Oracle 的SQL 函數 to_char可以實現這種轉換。 這個函數用來將DATE或NUMBER資料類型轉換成可顯示的字串,格式是to_char(number_type, format_mask)。 格式'999.99',9表示對應的某一個指定位元的值,如果是值是0則忽略不顯示,如果指定位元沒有值,則以空格表示。
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有許多的鎖,各種鎖的效用是不一樣的。下面重點介紹Oracle行級鎖,Oracle行級鎖只對使用者正在訪問的行進行鎖定。可以更好的保證資料的安全性。 如果該使用者正在修改某行,那麼其他使用者就可以更新同一表中該行之外的資料。 Oracle行級鎖是一種獨佔鎖定,防止其他事務修改此行,但是不會阻止讀取此行的操作。 在使用INSERT、UPDATE、DELETE 和SELECT…FOR UPDATE 等 語句時,Oracle會自動應用Oracle行級鎖行級鎖鎖定。SELECT...FOR
Time of Update: 2018-12-08
在開發過程中可能會聲明一個含有某張表不具備欄位的遊標,來解決特殊問題,本文將詳細介紹這類問題,需要瞭解更多的朋友可以參考下其中,data.*是一張表,然後把其他表中的欄位也加到sal_data的遊標中 Sql代碼 複製代碼 代碼如下:cursor sal_data(cp_center_temp_id varchar2) is select data.*, post.id emp_post_id, doc.Salary_Tax_Bd sa_tax_bd,
Time of Update: 2018-12-08
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: 2018-12-08
假如Oracle中有兩個使用者A和B,那麼如果A要訪問B擁有的表,語句應該是: 複製代碼 代碼如下:SELECT * FROM B.TABLENAME。 我要問的是,能否通過修改Oracle的設定,將A訪問B擁有表的語也變為跟B使用者登入一樣的語句:SELECT * FROM TABLENAME? 複製代碼 代碼如下:create synonym tablename for B.TABLENAME; 除了一樓的建立同義字外,還要授予A使用者訪問改同意詞的許可權. 複製代碼 代碼如下:drop
Time of Update: 2018-12-08
本人最近在使用oracle的rownum實現分頁顯示的時候,對rownum做了進一步的分析和研究。現歸納如下,希望能給大家帶來收穫。 對於rownum來說它是oracle系統順序分配為從查詢返回的行的編號,返回的第一行分配的是1,第二行是2,依此類推,這個偽欄位可以用於限制查詢返回的總行數,而且rownum不能以任何錶的名稱作為首碼。 舉例說明: 例如表:student(學生)表,表結構為: 複製代碼 代碼如下:ID char(6) --學號 name VARCHAR2(1
Time of Update: 2018-12-08
接收contract_no和item_no值,在inventory表中尋找,如果產品: 已發貨,在arrival_date中賦值為今天后的7天 已訂貨,在arrival_date中賦值為今天后的一個月 既無訂貨又無發貨,則在arrival_date中賦值為今天后的兩個月, 並在order表中增加一條新的訂單記錄。 product_status的列值為'shipped'和'ordered' inventory: product_idnumber(6)
Time of Update: 2018-12-08
如果發生了鎖等待,我們可能更想知道是誰鎖了表而引起誰的等待 以下的語句可以查詢到誰鎖了表: 複製代碼 代碼如下: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: 2018-12-08
TO_DATE格式(以時間:2007-11-0213:45:25為例) Year: yytwodigits兩位年顯示值:07 yyythreedigits三位年顯示值:007 yyyyfourdigits四位年顯示值:2007 Month: mmnumber兩位月顯示值:11 monabbreviated字元集表示顯示值:11月,若是英文版,顯示nov monthspelledout字元集表示顯示值:11月,若是英文版,顯示november Day: ddnumber當月第幾天顯示值:02
Time of Update: 2018-12-08
一、建立和管理表 1、建立表文法 create table 表名(column datatype [default expr][,column ...]) default 約束 說明略 2、利用子查詢建立表 create table 表名 as select * from u表 二、修改表 1、添加一個新列 oracle:alter table table_name add(column datatype [default expr][,column datatype]...);
Time of Update: 2018-12-08
複製代碼 代碼如下:create table T_NEWS ( ID NUMBER, N_TYPE VARCHAR2(20), N_TITLE VARCHAR2(30), N_COUNT NUMBER ) prompt Disabling triggers for T_NEWS... alter table T_NEWS disable all triggers; prompt Loading T_NEWS... insert into T_NEWS (ID, N_TYPE, N_TITLE,
Time of Update: 2018-12-08
今天運行程式時,在Oracle中輸入SQL語句:select * from USERS as u ,程式報錯 輸入select * from USERS u 可以正常的查詢出結果。 但是在SQL Server 2005 中輸入''select * from USERS as u''相同的語句就沒有錯,查了原因如下:SQL2規範允許關鍵字AS出現在表的名字和表的別名之間,雖然這使得FROM子句更容易被讀懂,但是在特定的SQL產品中它可能還不被支援。
Time of Update: 2018-12-08
原來的語句是這樣的: select sum(sl0000) from xstfxps2 where dhao00 in ( select dhao00 from xstfxps1 where trunc(ywrq00)=trunc(sysdate) and khdm00='500000003913'); 經過時間: 00: 02: 49.04 Execution Plan ---------------------------------------------