PIXNET Logo登入

fantasy 的恬淡心情

跳到主文

只是想找個地方,寫一寫自己心中無法與人分享的感受...... 有喜怒哀樂,有光明面,自然也有其......黑暗面...... 看的到也好,看不到也好,其實真的沒差別......

部落格全站分類:心情日記

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 9月 19 週四 201312:40
  • SQL寫九九乘法表

用PL/SQL寫還蠻簡單的,但是要挑戰用一句SQL達成真的是不太容易
Oracle DB 9.2.0.7
 
SELECT D.A
      ,D.B
      ,TRIM(REPLACE(D.D, ',', ' ')) E
  FROM (SELECT C.A
              ,C.B
              ,SYS_CONNECT_BY_PATH(C.C, ',') D
          FROM (SELECT A.A
                      ,B.B
                      ,TO_CHAR(A.A) || ' * ' || TO_CHAR(B.B) || ' = ' ||
                       LPAD(TO_CHAR(A.A * B.B), 2, ' ') C
                      ,ROW_NUMBER() OVER(PARTITION BY A.A ORDER BY B.B) RN
                  FROM (SELECT LEVEL B
                          FROM DUAL
                        CONNECT BY LEVEL <= 9) B
                      ,(SELECT LEVEL A
                          FROM DUAL
                        CONNECT BY LEVEL <= 9) A) C
         START WITH C.RN = 1
        CONNECT BY C.A = PRIOR C.A
               AND C.RN - 1 = PRIOR C.RN) D
 WHERE D.B = 9;
(繼續閱讀...)
文章標籤

fantasy 發表在 痞客邦 留言(0) 人氣(722)

  • 個人分類:Oracle DB
▲top
  • 6月 23 週日 201300:24
  • Oracle Session

SELECT T2.USERNAME
      ,T2.SID
      ,T2.SERIAL#
      ,T3.OBJECT_NAME
      ,T2.OSUSER
      ,T2.MACHINE
      ,T2.PROGRAM
      ,T2.LOGON_TIME
      ,T2.COMMAND
      ,T2.LOCKWAIT
      ,T2.SADDR
      ,T2.PADDR
      ,T2.TADDR
      ,T2.STATUS
      ,T2.SQL_ADDRESS
      ,T1.LOCKED_MODE
      ,T2.ACTION
  FROM V$LOCKED_OBJECT T1, V$SESSION T2, DBA_OBJECTS T3
 WHERE T1.SESSION_ID = T2.SID
   AND T1.OBJECT_ID = T3.OBJECT_ID
   AND T3.OBJECT_NAME LIKE 'AR%'
 ORDER BY T2.LOGON_TIME;
--KILL SESSION語法 ALTER SYSTEM KILL SESSION 'SID,SERIAL#';
ALTER SYSTEM KILL SESSION '124,18258';
--ALTER SYSTEM KILL SESSION '259,1698';
--大家發現,上面這條SQL語句用到了ORACLE的兩個視圖和一個表,分別是V$LOCKED_OBJECT、V$SESSION、
--DBA_OBJECTS: V$LOCKED_OBJECT 視圖中記錄了所有SESSION中的所有被鎖定的對象信息。 V$SESSION 視圖
--記錄了所有SESSION的相關信息。 DBA_OBJECTS 為ORACLE用戶對象及系統對象的集合,通過關聯這張表能夠
--獲取被鎖定對象的詳細信息。
--V$LOCKED_OBJECT中的LOCKED_MODE字段表示鎖的模式,ORACLE中鎖的模式有如下幾種:
--0:NONE
--1:NULL 空
--2:ROW - S 行共享(RS) :共享表鎖,SUB SHARE
--3:ROW - X 行獨佔(RX) :用於行的修改,SUB EXCLUSIVE
--4:SHARE 共享鎖(S) :阻止其他DML操作,SHARE
--5:S / ROW - X 共享行獨佔(SRX) :阻止其他事務操作,SHARE / SUB EXCLUSIVE
--6:EXCLUSIVE 獨佔(X) :獨立訪問使用,EXCLUSIVE
--數字越大鎖級別越高, 影響的操作越多。
--1級鎖有:SELECT,有時會在V$LOCKED_OBJECT出現。
--2級鎖有:SELECT FOR UPDATE, LOCK FOR UPDATE, LOCK ROW SHARE
--SELECT FOR UPDATE當對話使用FOR UPDATE子串打開一個游標時,
--所有返回集中的數據行都將處於行級(ROW - X)獨佔式鎖定,
--其他對象只能查詢這些數據行,不能進行UPDATE、DELETE或SELECT FOR UPDATE操作。
--3級鎖有:INSERT、UPDATE、DELETE、LOCK ROW EXCLUSIVE
--沒有COMMIT之前插入同樣的一條記錄會沒有反應,因為後一個3的鎖會一直等待上一個3的鎖,
--我們必須釋放掉上一個才能繼續工作。   
--4級鎖有:CREATE INDEX、LOCK SHARE
--LOCKED_MODE為2,3,4不影響DML(INSERT, DELETE, UPDATE,SELECT) 操作,
--但DDL(ALTER, DROP等) 操作會提示ORA - 00054錯誤。 00054, 00000,
--"resource busy and acquire with NOWAIT specified"
--CAUSE :RESOURCE INTERESTED IS BUSY.
--ACTION :RETRY IF NECESSARY.
--5級鎖有:LOCK SHARE ROW EXCLUSIVE
--具體來講有主外鍵約束時UPDATE / DELETE .. .;可能會產生4, 5的鎖。
--6級鎖有:ALTER TABLE, DROP TABLE, DROP INDEX, TRUNCATE TABLE, LOCK EXCLUSIVE
--附上幾條簡單的ORACLE系統查詢語句:
--查某session 正在執行的sql語句,從而可以快速定位到哪些操作或者代碼導致事務一直進行沒有結束等.
SELECT /*+ ORDERED */
 SQL_TEXT
  FROM V$SQLTEXT A
 WHERE (A.HASH_VALUE, A.ADDRESS) IN
       (SELECT DECODE(SQL_HASH_VALUE, 0, PREV_HASH_VALUE, SQL_HASH_VALUE)
              ,DECODE(SQL_HASH_VALUE, 0, PREV_SQL_ADDR, SQL_ADDRESS)
          FROM V$SESSION B
         WHERE B.SID = '233') /* 此處233 為SID*/
 ORDER BY PIECE ASC;
SELECT * FROM V$PROCESS;
SELECT * FROM V$LOCK;
SELECT * FROM V$LOCKED_OBJECT;
SELECT * FROM V$TRANSACTION;
SELECT V.*
  FROM V$SESSION V
 WHERE MACHINE = 'xxx'
   AND USERNAME = 'xxx'
   AND STATUS = 'INACTIVE'
 ORDER BY LAST_CALL_ET DESC;
SELECT * FROM DBA_OBJECTS WHERE OBJECT_ID = '14977';
SELECT T2.USERNAME
      ,T2.SID
      ,T2.SERIAL#
      ,T3.OBJECT_NAME
      ,T2.OSUSER
      ,T2.MACHINE
      ,T2.PROGRAM
      ,T2.COMMAND
      ,T2.LAST_CALL_ET
  FROM V$LOCKED_OBJECT T1, V$SESSION T2, DBA_OBJECTS T3
 WHERE T1.SESSION_ID = T2.SID
   AND T1.OBJECT_ID = T3.OBJECT_ID
 ORDER BY T2.LOGON_TIME;
(繼續閱讀...)
文章標籤

fantasy 發表在 痞客邦 留言(0) 人氣(1,275)

  • 個人分類:Oracle DB
▲top
1

自訂側欄

自訂側欄

個人資訊

fantasy
暱稱:
fantasy
分類:
心情日記
好友:
累積中
地區:

熱門文章

  • (10,302)Oracle Form開發(Base on Table)
  • (2,339)首次幫人上課
  • (771)APP_SPECIAL.ENABLE
  • (722)SQL寫九九乘法表
  • (84)Update ONT EXPOSURE
  • (62)Initial Mass Copy
  • (32)讀書為其好

文章分類

toggle Oracle (6)
  • Oracle DB (2)
  • FND (1)
  • ONT (1)
  • FA (1)
  • Oracle Package (1)
  • Oracle form (3)
  • 心情 (22)
  • 飲食 (1)
  • 娛樂 (2)
  • 未分類文章 (1)

最新文章

  • Oracle Form開發(Base on View)
  • Oracle Form開發(Base on Table)
  • SQL寫九九乘法表
  • Oracle Session
  • 使用PL/SQL建立 FND USER
  • Registry
  • Update ONT EXPOSURE
  • Initial Mass Copy
  • Useful Package
  • APP_SPECIAL.ENABLE

最新留言

  • [15/02/23] chenchen 於文章「首次幫人上課...」留言:
    您好,覺得您的課程介紹說明條理分明, 尤其是利用templa...
  • [14/12/11] 小寶 於文章「首次幫人上課...」留言:
    您好, 我是 Oracle Form 的初學者,不知有沒機...
  • [13/01/02] whan 於文章「轉眼之間...」發表了一則私密留言
  • [12/12/20] whan 於文章「轉眼之間...」發表了一則私密留言
  • [12/11/21] fantasy 於文章「人生誰無錯...」發表了一則私密留言
  • [12/11/21] fantasy 於文章「轉眼之間...」發表了一則私密留言
  • [12/11/21] 旼 於文章「轉眼之間...」發表了一則私密留言
  • [12/11/21] 旼 於文章「人生誰無錯...」發表了一則私密留言
  • [12/03/12] hsinys 於文章「首次幫人上課...」發表了一則私密留言
  • [12/03/09] hsinys 於文章「首次幫人上課...」發表了一則私密留言

動態訂閱

文章精選

文章搜尋

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣: