日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了從SQL查詢向SSAS發送XMLA DISCOVER_XML_METADATA的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試向Analysis Services實例發出&Quot;DISCOVER"的XMLA語句。從Management Studio的XMLA窗口發送XMLA工作正常,并返回所需的結果,因此我確信基本語法正確。

將其包裝在SQL查詢中(見下文),它將返回:
鏈接服務器的OLE DB提供程序&分析&在Zeile 2,Spalte 58(urn:schemas-microsoft-com:xml-analysis-Namespace)中返回的消息&Das Discover-Element位于信封/正文/執行/命令/批處理下。&

自己翻譯:第2行第58列中的Discover-Element(&Q;).在信封/正文/執行/命令/批處理下.不允許。&Quot;。

我關注了SSAS XMLA DISCOVER: how to get list of roles in SSAS database,其中包含一個工作示例和一個屏幕截圖。那是2010年.因此,那里使用的版本最有可能是SQL2008或SQL2008R2。
我的代碼應該是相同的,但是它不能工作(再?)在SQL 2012上。

我甚至認為這是正確的,引用了https://docs.microsoft.com/de-de/analysis-services/xmla/xml-elements-commands/batch-element-xmla?view=sql-analysis-services-2016:
(批處理的)子元素(&QOT;):綁定、數據源、DataSourceView、ErrorConfiguration、Parallel

以下一個或多個XMLA命令:ALTER、BACKUP、BeginTransaction、ClearCach、CommomTransaction、Create、Delete、DesignAggregations、Drop、Insert、Lock、MergePartitions、NotifyTableChange、Process、Restore、RollbackTransaction、SetPasswordEncryptionKey、Statement、Subscribe、同步、Unlock、Update、UpdateCells
&p>"Discover"未在此處作為有效命令提及。
沒有批次,它也不能工作。當然,我對此進行了測試。在信封/Body/Execute/Command"

下,不允許將上面給出的錯誤更改為"

那么,您知道怎么做嗎?

DECLARE @xmla AS NVARCHAR(MAX) = '<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
        <RequestType>DISCOVER_XML_METADATA</RequestType>
        <Restrictions>
            <RestrictionList xmlns="urn:schemas-microsoft-com:xml-analysis">
                <DatabaseID>DBName</DatabaseID>
                <CubeID>CubeName</CubeID>
                <MeasureGroupID>MGName</MeasureGroupID>
            </RestrictionList>
        </Restrictions>
        <Properties/>
    </Discover>
</Batch>';

EXEC (@xmla) AT [ANALYSIS_LINKED_SERVER];

推薦答案

回答我自己的問題肯定不是很好的風格,但是碰巧的是,我似乎已經找到了一種可以接受的查詢數據的方法。我不會接受我的回答,我希望這里有人能找到比我更好的辦法。

想法是,如果SQL exec;將您放在&quot;Entaine-Body-Execute&Quot;方法中太深的地方,為什么不自己從根開始執行SOAP,而在合適的時候選擇&Quot;Discover&Quot;方法呢?

我主要從以下位置設置SOAP信封:Calling a SOAP webservice from TSQL stored procedure并根據需要對其進行了調整。

我沒有設法在SSAS本地協議端口(我認為2383是默認端口)上調用它,但是由于我們運行msmdump.dll,所以這對我來說不是什么大問題。如果有人知道如何將SOAP發布到本機端口,我會很高興聽到。

DECLARE @url AS VARCHAR(8000) = 'http://webserver/olap/msmdpump.dll';
DECLARE @requestBody AS VARCHAR(8000) = '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
            <RequestType>DISCOVER_XML_METADATA</RequestType>
            <Restrictions>
                <RestrictionList>
                    <DatabaseID>DBID</DatabaseID>
                    <CubeID>CubeID</CubeID>
                    <MeasureGroupID>MGID</MeasureGroupID>
                </RestrictionList>
            </Restrictions>
            <Properties/>
        </Discover>
    </soap:Body>
</soap:Envelope>';

DECLARE @obj AS INT;
EXEC sys.sp_OACreate 'MSXML2.ServerXMLHttp', @obj OUT;

EXEC sys.sp_OAMethod @obj, 'Open', NULL, 'POST', @url, false

EXEC sys.sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Type', 'text/xml'
EXEC sys.sp_OAMethod @obj, 'setRequestHeader', NULL, 'SOAPAction', '"urn:schemas-microsoft-com:xml-analysis:Discover"'
EXEC sys.sp_OAMethod @obj, 'send', NULL, @requestBody

CREATE TABLE #t (x XML);
INSERT INTO #t
EXEC sys.sp_OAGetProperty @obj, 'responseText';

EXEC sys.sp_OADestroy @obj;

就是這樣-對我很管用。如果您有任何意見或建議,請告訴我!謝謝!

這篇關于從SQL查詢向SSAS發送XMLA DISCOVER_XML_METADATA的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:errorSendingXMLADISCOVER_XML_METADATAtoSSASfromanSQLquery exception IT資
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定