declare cnt number;begin ---查詢要建立的表是否存在 select count(*)into cnt from user_tables where table_name='ENTRY_MODIFYSTATUS'; ---如果存在則刪除該表 if cnt>0 then dbms_output.put_line('表存在不建立'); else dbms_output.put_line('表不存在');
最近要進行導數的工作,從好幾張表中匯入到一張表,其中資料可能重複,所以在匯入之前要進行資料的比對。 方法一:我用group by having count(*)>1將重複的資料提取出來,然後進行人工比對,事實證明,有夠笨的! 方法二:請教了一位資深人員,提供了一個更好的方法。就是將三個欄位串連起來作為主鍵,進行資料是否重複的判斷。這裡值得注意的是某列的值可能為空白,所以要賦一個Null 字元串過去。select * from t1 where nvl(col1,
有時候我們可能需要將查詢得到的結果進行重複值的篩選,例如我們用下面的SQL語句查詢出結果語句:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->Select SEQ_NO,REPORT_NO from Imp_Report 結果:Code highlighting produced by Actipro CodeHighlighter
ORACLE-合并查詢結果 最近遇到了一個問題,需要將查詢出來的結果中某一欄位的值合并起來顯示,通過自己的努力有了個Workaround,記下來以備後忘。下面是資料庫中的資料存在形式,用普通的語句查詢如下Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->Select Iq_No,Report_No from Iq_Body 查詢出的結果:Iq_No
文法規則:Create [or replace] trigger [模式.]觸發器名 Before| after insert|delete|(update of 列名)On 表名[for each row]When 條件PL/SQL塊說明:For each row的意義是:在一次動作表的語句中,每操作成功一行就會觸發一次;不寫的話,表示是表級觸發器,則無論操作多少行,都只觸發一次;When條件的出現說明了,在DML操作的時候也許一定會觸發觸發器,但是觸發器不一定會做實際的工作,
create or replace procedure UpdatePhoto(v_id in integer,v_binaryPhoto in blob) isbegin update usersinfo u set u.photo=v_binaryPhoto where u.id=v_id;end UpdatePhoto;/ using System;using System.Collections.Generic;using System.ComponentModel;using
(length(trim(cbkssj)) is null這個語句應該只適用於oracle的奇怪情況,判斷length等於null?!除了這個以外奉送一條滿強的sql文法,裡面有很多的or和and,經過這次的經驗,我發現如果寫錯了or和and會增加語句的難度.已知:有兩個時間欄位,kssj和jssj,如果都為空白則算全年,其他即使大於kssj的,算以後的時間.小於jssj的算今年開始至結束時間的.最後的語句: where ((length(trim(cbkssj)) is null and
1、Where子句中的串連順序: ORACLE採用自下而上的順序解析WHERE子句。 根據這個原理,表之間的串連必須寫在其他WHERE條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾。 舉例: (低效)select … from table1 t1 where t1.sal > 300 and t1.jobtype = '0001' and 20 < (select count(*) from table1 t2 where t2.
1、查看錶空間的名稱及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 2、查看錶空間物理檔案的名稱及大小 select tablespace_name,