搜尋此網誌

2016年10月6日 星期四

尚未commit之前,如何取得寫入的資料

為了達到資料一致性,我們會在程式上包Transaction的動作

但是一旦包了Transaction,在尚未commit之前,如果不是在同一個connection下

無法讀到資料

譬如

create connection1

create connection2

connection1.insert

connection2.select -> 會抓不到 connection1.insert 的資料

除非connection1.commit

但是如果是

connection1.select -> 這就可以抓到 connection1.insert 的資料,即使尚未 connection1.commit

所以聰明的你應該知道,那就在一個動作內,都用同一個connection就好啦

沒錯

而且,我們可以把connection存到session變數內

經過測次,也可以有一樣效果

這樣一來就不用一直傳遞connection參數

只要需要時,去session抓出來用就好

譬如某段執行時,可以

create_connection();

do_something();

drop_connection();

---------------------------------------

create_connection() {
   create connection
   connection open
   create trainsation
   begin trainsation
   store connection to session
}

do_someting() {
   get connection from session
   query....
   update.....
}

drop_connection() {
   get connection from session
   connection.commit
   drop connect
   drop session
}














2016年8月1日 星期一

在ORACLE建立可連結SQL SERVER的LINK SERVER


先在ORACLE主機的tnanames.ora新增遠端主機資訊



開啟PL-SQL建立相關遠端資訊

連接到SQL-SERVER主機上,新增一個對接檔及內容如下,重點是對接資料庫要設定


修改LISTENER.ORA


重啟LISTENER服務


2016年3月21日 星期一

用文字檔寫LOG

string _file = @"c:\" + System.DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt";
        System.IO.FileStream fileStream = new System.IO.FileStream(_file, System.IO.FileMode.Create);
        fileStream.Close();
        using (System.IO.StreamWriter sw = new System.IO.StreamWriter(_file))
        {
            sw.Write(str);
        }

2016年2月2日 星期二

iis的網站突然更新後無法使用!!

今天發生一件詭異的事情,原本可以正常使用的網站(webservice)突然更新之後就掛了

追了許久,使用數種狀態去比對都無解

後來發現原來是service.asmx的安全性少了cpcis1-iis\users的認證

但是我沒異動過呀,唯一可能的原因是

我的異動檔案來源曾經被rar壓縮過,不曉得是不是被壓縮過的關係

導致我的service.asms掛了

2016年1月19日 星期二

pl sql 執行時,跳出 ora-12154 tns 無法解析指定的連線 id

可以確認一下是不是執行檔放在 C:\Program Files (x86) 下了,會有問題。

SQL SERVER 2014 還原資料庫作法

1.  確定SQL SERVER已啟動
2.  選取要還原的資料庫

3.  選取並加入欲還原的BAK

4.  勾選覆寫、取消還原結尾、中斷現有連接



2016年1月12日 星期二

Oracle: 讓 PL/SQL Developer 中的 Big5 字元能在 Windows 7 中正常顯示

反正是歷史包袱……
  總之,就是在環境變數裡加上新的變數:NLS_LANG=AMERICAN_AMERICA.ZHT16MSWIN950
  1. 電腦上按右鍵
  2. 開啟內容
  3. 點擊進階系統設定
  4. 選擇進階頁籤
  5. 點擊環境變數按鈕
  6. 點擊 YOUR_NAME 的使用者變數下方的新增按鈕
  7. 變數名稱欄位中輸入NLS_LANG
  8. 變數值欄位中輸入AMERICAN_AMERICA.ZHT16MSWIN950
  9. 點擊確定按鈕
  之後重新啟動 PL/SQL Developer 就能看到亂碼恢復成正常的中文字了。

2016年1月4日 星期一

為查詢的結果加上序號(ROW_NUMBER,RANK,OVER)

在MS SQL2005以後,增加了一些幫查詢結果加上序號的函數
以下的範例使用北風(NorthWind)資料庫
介紹如下:
1.ROW_NUMBER
依照指定的欄位排序,並逐筆加上順號的方式
例如:

SELECT 
 ROW_NUMBER() OVER(ORDER BY CustomerID) AS ROWID
 ,*
FROM Orders
rn01

2.RANK
依照排序的欄位,相同的資料相同排名,下一個不同會【跳脫】

SELECT 
 RANK() OVER(ORDER BY CustomerID) AS ROWID
 ,*
FROM Orders
rn02
3.DENSE_RANK
依照排序的欄位,相同的資料相同排名,下一個不同會【不跳脫】


SELECT 
 --ROW_NUMBER() OVER(ORDER BY CustomerID) AS ROWID
 --RANK() OVER(ORDER BY CustomerID) AS ROWID
 DENSE_RANK() OVER(ORDER BY CustomerID) AS ROWID
 ,*
FROM Orders
rn03