搜尋此網誌

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

2015年9月22日 星期二

在SQL SERVER建立LINK SERVER的SQL SERVER別名

1)第1步:

  • 在SQL Server Management Studio中打開連結的伺服器,然後點擊“新增連結的伺服器”。
  • 選擇一般頁面
  • 在“連結的伺服器”中指定別名。
  • 選擇SQL Native Client的提供者。
  • 在“產品名稱”輸入 sql_server。
  • 在“資料來源”指定要使用的的主機名。

2)第2步:

  • 在安全性 - 使用此安全性內容建立

3)步驟3:

  • 在服務器選項卡 - 把“資料存取”,RPC,“RPC輸出”和“使用遠端定序”設為true。


2015年8月20日 星期四

"伺服器存放空間不足,無法處理此指令"解決辦法

最近剛好碰到有時候要進入"網路芳鄰"PC所方享的資料夾時,
就會出現"伺服器存放空間不足,無法處理此指令",
經過上網爬文後大概分有2種解決方法,有碰到的人可以參考一下~

第一種方法:

一般而言,此問題可能與防毒軟體更改了系統的登錄值而導致。

請依下列步驟找到目前的 IRPStackSize 後更改為建議值 25.

a. 按一下 [開始],按一下 [執行]。
b. 輸入:regedit,然後按一下 [確定]。
c. 找到下列機碼:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters

d. 在右邊的視窗, 雙擊 IRPStackSize 的值。

提示: 如果 IRPStackSize 並不存在,請依下列方式建立: 

(1). 在 Parameters 資料夾上按右鍵。
(2). 指向新增, 並選取 DWord 值。
(3). 輸入 IRPStackSize

重要: 請注意大小寫。
 
e. 更改底數為十進制。
f. 在值的資料欄輸入25然後按確定。
g. 結束登錄編輯程式。

更改完登錄機碼後, 您必須重新啟動電腦,或重新啟動"伺服器服務" 。 

可以透過下列方式:

a. 按一下 [開始],按一下 [執行],輸入:cmd,然後按一下 [確定]。 
b. 輸入 net stop server
c. 當服務停止後, 再輸入 net start server 重新啟動該服務.

當執行完後,相關的登錄值即會更新,重開機後您可以觀察問題是否解決。

參考來源:
http://qa.pcuser.com.tw/modules/newbb/viewtopic.php?topic_id=26377&forum=9

=====================================

第二種方法:

事件檢視器內有以下內容
-----------------------------------------------------------------------
事件來源: 
Srv
事件識別碼: 
2020
描述: 
伺服器無法透過系統分頁共用區來進行配置,因為共用區目前是空的。
Meaning The server was unable to allocate from the system paged pool because the pool was empty.

-----------------------------------------------------------------------
相關處理連結
http://support.microsoft.com/default.aspx?scid=kb;en-us;312362 

Server is unable to allocate memory from the system paged pool
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Session Manager/Memory Management 
1. 新增PoolUsageMaximum, 格式為DWORD, 內容使用十進位, 填入60
Value name: PoolUsageMaximum
Data type: REG_DWORD
Radix: Decimal
Value data: 60 

2. 修改PagedPoolSize, 使用十六進位, 填入8個F
Value name: PagedPoolSize
Data type: REG_DWORD
Radix: Hex
Value data: 0xFFFFFFFF

http://support.microsoft.com/default.aspx?scid=kb;en-us;286060
因為其他電腦的分享印表機, 在本機電腦又分享出去造成的問題

參考來源:
http://www.ithome.com.tw/plog/index.php?op=ViewArticle&articleId=11294&blogId=411

2015年7月30日 星期四

替查詢資料表建立別名


在 Oracle資料庫下,以A帳號登入所建立的資料表(如 customer),B帳號想存取該資料表,必須有存取該資料表的權限之外,在沒有額外設定下,資料表名稱為〔帳號.資料表名稱(如A.customer)〕,但透過 SYNONYM,資料表名稱可改為 customer。

使用 CREATE SYNONYM創建一個別名,which is an alternative name for a table,view...,但使用 CREATE SYNONYM的前提是具有使用該指令的權限

CREATE SYNONYM pay.payrec_pms FOR paysys.payrec_pms;

GRANT INSERT, delete, update, select ON  paysys.payrec_pms TO pay WITH GRANT OPTION;

DROP SYNONYM pay.payrec_pms;