搜尋此網誌

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;


2015年7月12日 星期日

用其它的 Table 來更新資料(Update From table)

pl-sql

UPDATE table1 a
SET table1_column = (SELECT table2_column
FROM table2
WHERE ID = a.ID)

如果雙方均有KEY值,使用下面這個方法會超快

UPDATE (
  SELECT PAYCDL.ID_NO, PAYCDL.DATE_ADD DATE_ADD_OLD,PAYCDL.DATE_LAST_MAINT DATE_LAST_MAINT_OLD,
               EXSCCS_PMS2.DATE_ADD DATE_ADD_NEW, EXSCCS_PMS2.DATE_LAST_MAINT DATE_LAST_MAINT_NEW
          FROM PAYCDL,
               EXSCCS_PMS2
         WHERE PAYCDL.ID_NO = EXSCCS_PMS2.ID_NO)
   SET DATE_ADD_OLD = DATE_ADD_NEW,
       DATE_LAST_MAINT_OLD = DATE_LAST_MAINT_NEW

-----------------------------------
ms-sql

UPDATE table1
      SET table1.col = table2.col1
FROM table2 WHERE table2.oldCol = table1.col

2015年6月23日 星期二

呼叫WebService 發生MaxReceivedMessageSize 錯誤

撰寫C# Win Form 呼叫一個Web Service , 由於資料量過大,所以發生MaxReceivedMessageSize 的錯誤

調整App.Config 即可解決這個問題

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <bindings>
      **<basicHttpBinding>
        <binding name="MobileWebServiceSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="524288">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"  />
        </binding>
      </basicHttpBinding>**

    </bindings>
    <client>
      <endpoint address="http://www.xxxx.com.tw/mobileWebservice.asmx"
          binding="basicHttpBinding" bindingConfiguration="MobileWebServiceSoap"
          contract="WebServiceGT.MobileWebServiceSoap" name="MobileWebServiceSoap" />
    </client>
  </system.serviceModel>
</configuration>

2015年5月6日 星期三

ntext, text 資料類型無法用 replace 的解決方法

某個欄位的資料要換改內容,無法直接用 replace 指令,解決方法為
先把它轉型成 varchar 再用 replace
update tTest set Body=replace(cast(Body as varchar(8000)),'/userfiles', '/test/userfiles')

2015年4月2日 星期四

pl/sql死锁情况:record is locked by another user

一、PL/SQL 查看锁:
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id = t2.sid 
order by t2.logon_time;


二、查看锁后,找出sid,serial#,将所有的锁kill掉
alter system kill session 'sid,serial#'