問題描述: 在處理一般的資料記錄中,對於數字類型的欄位,在oracle的排序中,預設把null值做為大於任何數位類型,當然對於varchar2類型的欄位,預設也是該處理方式,但是客戶要求排序的過程中,需要把null的欄位預設排在前邊(從小-->大)。一般的order by xxxx,無法解決。 問題解決:方案1:可以使用複雜的使用sql:select * from(select a.*,rownum as my_sys_rownum from (select
最近要進行導數的工作,從好幾張表中匯入到一張表,其中資料可能重複,所以在匯入之前要進行資料的比對。方法一:我用group by having count(*)>1將重複的資料提取出來,然後進行人工比對,事實證明,有夠笨的!方法二:請教了一位資深人員,提供了一個更好的方法。就是將三個欄位串連起來作為主鍵,進行資料是否重複的判斷。這裡值得注意的是某列的值可能為空白,所以要賦一個Null 字元串過去。select * from t1 where nvl(col1,'')|| nvl(col2,'
oracle 預存程序返回數組的方法:1.建立包create or replace package test isTYPE filename_array IS TABLE OF varchar2(1);filename filename_array;end test;2. 建立預存程序create or replace procedure test_array(v_cfjg out test.filename_array ) isbegin DECLARE i number;D_cfjg
前兩天在ITPUB上看到一個文章,提到如何用最快的方法以SYSDBA登陸資料庫。有人給出的方法是sqlplus直接斷行符號,然後在提示使用者名稱時輸入/ as sysdba:[oracle@yans1 ~]$ sqlplusSQL*Plus: Release10.2.0.3.0 - Production on星期六8月8 22:01:47 2009Copyright (c) 1982, 2006, Oracle. All Rights Reserved.Enter
對於樹形查詢中的PRIOR操作,一般都是用在CONNECT BY語句中,而這個PRIOR操作其實在SELECT的欄位列表中也是可以使用的。看一個簡單的例子:SQL> create table t (id number, parent_id number, name varchar2(30));Table created.SQL> insert into t values (1, null, 'a');1 row created.SQL> insert into t
1、FGA策略(細粒度審計)DBMS_FGA是SYS使用者的一個包(1)增加 FGA 策略-- 審計表GRANT RESOURCE,CONNECT TO BANK IDENTIFIED BY BANK;CREATE TABLE BANK.ACCOUNTS(ACCT_NO NUMBER PRIMARY KEY,CUST_ID NUMBER NOT NULL ,BALANCE NUMBER(15,2) NULL);insert into bank.accounts values(1,1,10000)
1、編寫產生備份指令碼的指令碼#cold backcupremark set sql*plus variable to manipulate output //注釋set feedback off heading off verify off trimspool off echo off time offset pagesize 0 linesize 200remark set sql*plus
PRIMARY資料庫和STANDBY資料庫採用的都是RAC 11.1.0.6 for Solaris10 sparc,共用儲存PRIMARY資料庫採用VOLUMN CLUSTER MANAGER,而STANDBY資料庫使用ASM。FAILOVER切換用於主庫停用情況。這種情況相對比較簡單,不需要太多的準備工作,不過為了類比,首先將PRIMARY資料庫關閉:SQL> select instance_name, status from gv$instance;INSTANCE_NAME