2015-07-20 143 views
1

我負責從SAP提取信息並將其引用到從Active Directory提取的信息中。我需要明顯完成的第一步是弄清楚如何從SQL Server中提取某些信息。這裏是我到目前爲止(感謝幾個用戶在這裏誰也回答有點類似的問題):使用Powershell從SQL Server提取信息

$SQLServer = "WEB-PRDSQ" 
$SQLDBName = "PRD" 
$SqlQuery = "SELECT * from prd.ZEMPLOYEE;" 
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID = DELETED; Password = DELETED;" 
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
$SqlCmd.CommandText = $SqlQuery 
$SqlCmd.Connection = $SqlConnection 
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 
$SqlAdapter.SelectCommand = $SqlCmd 
$DataSet = New-Object System.Data.DataSet 
$SqlAdapter.Fill($DataSet) 

$DataSet.Tables[0] | out-file "C:\Scripts\SQL\SQLData.csv" 

,這是輸出它給我:http://i.imgur.com/R6Y5HU2.png

原因之一,這是一個醜陋的佈局當有145,361行文字時,很難閱讀。而且2,我不需要所有這些信息。所有我需要的是他們的sAMAccountName(我沒有看到它作爲輸出之一,但這就是它在AD中所稱的),Emp_ID,Status,Hire_Date,Location,Emp_Title,LastLogonDate(再一次,沒有看到這是一個輸出,但我知道它在AD),最後是Term_Date。

當我嘗試更改「SELECT * from prd.ZEMPLOYEE」並將狀態,Hire_Date等更改爲*時,它會給出錯誤「無效列名稱狀態」(或列出的任何列首先)。

有沒有人有足夠的耐心來幫助我解決這個問題並幫助我創建這個項目?我只帶了一個數據庫類,所以我知道我在說什麼,但也不知道這可能需要的複雜細節。我願意幫助提供我需要的任何信息。

+0

已經提取過去從SAP數據的一個很好的協議,是你的BASIS管理員與你沒關係直接連接到什麼表現爲生產數據庫? – jradich1234

+0

我會這樣認爲,我的CIO是告訴我他想做什麼的人,所以他知道我正在連接的是什麼。 –

+0

我不確定您的數據庫排序規則設置爲什麼,但是您可以在所有大寫的SELECT語句中嘗試列名。如果數據庫是區分大小寫的排序規則,則會匹配您收到的輸出。 – jradich1234

回答

0

每早交談...

數據庫歸類區分大小寫,並且列名必須從Select * From...查詢的結果文件中所示相同的情況相匹配。

例子: Select EMP_ID, STATUS From prd.ZEMPLOYEE