在oracle中utl_file包提供了一些操作文字檔的函數和過程,學習了一下他的基本操作 1.建立directory,並給使用者授權 複製代碼 代碼如下: --建立directory create or replace directory TESTFILE as '/home/oracle/zxx/test'; --給使用者授權 grant read, write on directory TESTFILE to zxx; 詳細介紹
1、 查看當前被解鎖的對象 樣本: 將表aa加鎖 執行 select * from aa for update; 方式一:通過SQL查詢 select 'alter system kill session ',''''||trim(t2.sid)||','||trim(t2.serial#)||''';' from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time; 執行結果
1:在進行多表關聯時,多用 Where 語句把單個表的結果集最小化,多用彙總函式匯總結果集後再與其它表做關聯,以使結果集資料量最小化2:在兩張表進行關聯時,應考慮可否使用右串連。以提高查詢速度3:使用 where 而不是 having ,where是用於過濾行的,而having是用來過濾組的,因為行被分組後,having 才能過濾組,所以盡量使用者 WHERE 過濾4:使用 exists 而不用 IN 因為 Exists 只檢查行的存在,而 in 檢查實際值。5:IN操作符用 IN 寫出來的
Oracle資料庫查看一個進程是如何執行相關的實際SQL語句複製代碼 代碼如下:SELECT b.sql_text, sid, serial#, osuser, machine FROM v$session a, v$sqlarea b WHERE a.sql_address = b.address; 查詢前台發出的SQL語句.複製代碼 代碼如下:select
在Oracle查詢中,如果在沒有排序,但又想讓某列中特定值的資訊排到前面的時候,使用oracle的decode(欄位,'欄位值',數字)如 select name from user 查詢出來的所有資料,如果想讓 name='張三' 結果排到前面,則使用如下:select name from user order by decode(name,'張三',0)同理,如果想讓李四排到第二的話,可以繼續增加decode方法select name from user order by
和其他資料庫系統類別似,Oracle字串串連使用“||”進行字串拼接,其使用方式和MSSQLServer中的加號“+”一樣。 比如執行下面的SQL語句: 複製代碼 代碼如下:SELECT '工號為'||FNumber||'的員工姓名為'||FName FROM T_Employee WHERE FName IS NOT NULL 除了“||”,Oracle還支援使用CONCAT()函數進行字串拼接,比如執行下面的SQL語句: SELECT CONCAT('工號:',FNumber) FROM
這時候如果暫存資料表中有重複資料,無論是主鍵欄位businessid有重複,還是一整行有重複都會報出違反唯一主鍵約束錯誤。方法:group by XX having count(*)>1,rowid,distinct,temporary table,procedure1、查詢表中的重複資料a.重複一個欄位b.重複多個欄位c.重複一整行建立測試表:複製代碼 代碼如下:create table cfa (businessid number,customer