Time of Update: 2017-01-18
原來的語句是這樣的: 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 ---------------------------------------------
Time of Update: 2017-01-18
本文更多將會介紹三思在日常中經常會用到的,或者雖然很少用到,但是感覺挺有意思的一些函數。分二類介紹,分別是: 著名函數篇 -經常用到的函數 非著名函數篇-即雖然很少用到,但某些情況下卻很實用 註:N表示數字型,C表示字元型,D表示日期型,[]表示內中參數可被忽略,fmt表示格式。 單值函數在查詢中返回單個值,可被應用到select,where子句,start with以及connect by 子句和having子句。 (一).數值型函數(Number Functions)
Time of Update: 2017-01-18
測試硬體說明: 測試使用的是我的愛機,配置如下: CPU:C433 記憶體:128M 硬碟:酷魚2代20G 測試軟體說明: WIN32下用的是windows nt server4,sp5,apache 1.3.12,php3.0.15和php4rc1,mysql 3.22.29,oracle 8.0.5 linux下用的是bluepoint linux1.0, apache 1.3.12, php4rc1,mysql 3.22.32 測試代碼說明:
Time of Update: 2017-01-18
1\將表閃回到某一時間點: 閃回操作前啟用行移動功能 Sql代碼 alter table emp enable row movement; 執行閃回語句: Sql代碼 flashback table emp to timestamp to_timestamp('20120709195000','YYYYMMDDHH24:MI:SS'); 2\閃回資源回收筒: Java代碼 SQL>show recyclebin; SQL>drop table emp; SQL>show
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
接收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
說明:以下作業環境在CentOS 6.4 + Oracle 11gR2(Oracle安裝在ORACLE_BASE=/opt/oracle中,其ORACLE_HOME=/opt/oracle/11g)用OUI安裝並配置Oracle資料庫後,Oracle就開啟了(包括:資料庫執行個體、監聽器、EM)。在重啟作業系統之後,Oracle預設是沒有啟動的。使用如下命令查看Oracle相關服務是否已啟動:ps aux | grep ora_
Time of Update: 2017-01-18
第一步:建立一個表。 複製代碼 代碼如下: create table Test_Table ( ID number(11) primary key, Name varchar(50) not null, Value1 varchar(50) not null ) 第二步:建立一個自增序列以此提供調用函數。 複製代碼 代碼如下: create sequence AutoID start with 1 //根據需要自己可修改該數值 increment by 1 //步長值 minvalue 1
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
--第一種方法: 查詢dba_tab_columns 複製代碼 代碼如下: select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from dba_tab_columns where table_name =upper('表名') order by COLUMN_NAME --這種方法需要有DBA許可權 --第二種方法: 查詢user_tab_cols select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from
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
總覺得使用windows跑oracle是不靠譜的事情,可以這個世界上總有很多人喜歡做類似這樣的事情,對於資料庫比較常見的兩件事情:rman和刪除dg備庫歸檔日誌,在linux/unix平台上使用shell實現很簡單,可是跑到win裡面,就變的煩了,不是因為其麻煩,而是因為用的人少,不知道怎麼下手處理該事情,我編寫了簡單的實現初級功能的win下面rman備份和刪除備庫歸檔日誌指令碼,供大家參考,也更加歡迎朋友提出來更加好的處理方法(win是真心的不懂)rman備份指令碼複製代碼 代碼如下:
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')
Time of Update: 2017-01-18
匯入匯出oracle方案是備份和恢複的主旋律,不是dba,對於資料的匯入匯出沒有太多的研究,僅有一點點在使用過程中的體會,在此簡單說明。 匯入 複製代碼 代碼如下: imp xzfy_master/xzfy@orcl file=d:\master0312.dmp full=y; 這裡full=y一定要寫上,就是要匯入整個方案來著。還有分號一定要有否則不執行。 匯出 複製代碼 代碼如下: exp xzfy_efmweb/xzfy@orcl file=d:\xzfy_efmweb0312.dmp
Time of Update: 2017-01-18
有時我們在定義欄位名及別名時所用名與oracle關鍵字同名,這時該如何處理呢? 其實很簡單,只要在此關鍵字加上"",如"group" 看下面的例子: 複製代碼 代碼如下: SQL> DROP TABLE k; Table dropped -- 建立表K,欄位名為UID(oracle關鍵字) SQL> CREATE TABLE k(UID INT); CREATE TABLE k(UID INT) ORA-00904: : invalid IDENTIFIER --
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
本文講述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
修改項目時,涉及到了Oracle中許多表的修改(包括:增加、刪除欄位,修改注釋等)。由於開始沒有進行記錄,造成在上測試機時,忘記了具體修改過哪些表了。後來在網上尋找了一些資料,例如: 複製代碼 代碼如下: 1、select uat.table_name from user_all_tables uat 該SQL可以獲得所有使用者表的名稱 2、select object_name, created,last_ddl_time from user_objects