不好意思,因老闆要求,小弟想利用批次檔
每日定時至SQL 2008中,擷取當日資料並轉為EXCEL檔後寄信至老闆信箱
我利用下列指令下QUERRY轉EXCEL
EXEC master..xp_cmdshell 'bcp "SELECT "W1" AS "機碼" FROM [CYGEAR].[dbo].[CMSMX] where MX016 like %A001%" queryout c:\test.xls -c -q -T'
SQL CMDSHELL bcp資料格式的限制與用法
問題1. SELECT
系統似乎只接受 SELECT "數值"
請問如果要輸入英文或中文數值,要使用什麼正確的方式寫入
問題2. WHERE
我用 WHERE CM001 LIKE "%A001%"去查詢
和 WHERE CM001 > "3"
2.1 系統顯示 CM001 非INT型態,故無法與"3"比較大小
2.2 系統無法判別 % 符號,故查尋失敗
我已上網爬了許多文,還是無法解決問題
故來此地向各位前輩求助
跪求各位大大幫忙解答,感謝
1.請先檢查資料表查詢的語法有沒有問題("SELECT "W1" AS "機碼" FROM [CYGEAR].[dbo].[CMSMX] where MX016 like %A001%"),這邊如果有問題,就要先修正。
2.把剛剛的資料表查詢與法,建立成預存程序,以後都用預存程序去呼叫就可以了。(如runproaaa)
3.執行bcp時,也可以呼叫預存程序,這樣比較不會有問題。(如 EXEC master..xp_cmdshell 'bcp "exec runproaaa" queryout c:\test.xls -c -q -T' )
大大,我去新增預存程序(ERPQuery)了
我直接下sql -> exec ERPQuery 是可以正確執行的
但是改為EXEC xp_cmdshell 'bcp "exec ERPQuery" queryout c:\TEST.xls -c -q -T'
就跑出下面訊息
Error = [Microsoft][SQL Server Native Client 10.0][SQL Server]找不到預存程序 'ERPQuery'。
情況跟沒有用procedure一樣~.~,難道只能用其他方法了嗎QAQ
我懷疑是不是用exec去執行sql的話
是不是前面要先多一行認證...?
補充:以下是我實際操作的畫面