為了達到資料一致性,我們會在程式上包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年10月6日 星期四
2016年10月3日 星期一
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);
}
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月29日 星期一
試著把流水號pkey做成另一種流水號id吧
T-SQL
SELECT CONVERT(VARCHAR, GETDATE(),126)+'-'+CONVERT(NVARCHAR(50),NEWID())
SELECT CONVERT(VARCHAR, GETDATE(),126)+'-'+CONVERT(NVARCHAR(50),NEWID())
2016年2月2日 星期二
iis的網站突然更新後無法使用!!
今天發生一件詭異的事情,原本可以正常使用的網站(webservice)突然更新之後就掛了
追了許久,使用數種狀態去比對都無解
後來發現原來是service.asmx的安全性少了cpcis1-iis\users的認證
但是我沒異動過呀,唯一可能的原因是
我的異動檔案來源曾經被rar壓縮過,不曉得是不是被壓縮過的關係
導致我的service.asms掛了
追了許久,使用數種狀態去比對都無解
後來發現原來是service.asmx的安全性少了cpcis1-iis\users的認證
但是我沒異動過呀,唯一可能的原因是
我的異動檔案來源曾經被rar壓縮過,不曉得是不是被壓縮過的關係
導致我的service.asms掛了
2016年1月19日 星期二
2016年1月12日 星期二
Oracle: 讓 PL/SQL Developer 中的 Big5 字元能在 Windows 7 中正常顯示
反正是歷史包袱……
總之,就是在環境變數裡加上新的變數:
NLS_LANG=AMERICAN_AMERICA.ZHT16MSWIN950
- 在
電腦
上按右鍵 - 開啟
內容
- 點擊
進階系統設定
- 選擇
進階
頁籤 - 點擊
環境變數
按鈕 - 點擊
YOUR_NAME 的使用者變數
下方的新增
按鈕 - 在
變數名稱
欄位中輸入NLS_LANG
- 在
變數值
欄位中輸入AMERICAN_AMERICA.ZHT16MSWIN950
- 點擊
確定
按鈕
之後重新啟動 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
2.RANK
依照排序的欄位,相同的資料相同排名,下一個不同會【跳脫】
SELECT
RANK() OVER(ORDER BY CustomerID) AS ROWID
,*
FROM Orders
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
訂閱:
文章 (Atom)