私の要件に基づいて、データblobはbase64でエンコードされたxmlであり、デコードして読み込み可能な形式である必要があるテーブルに格納する必要があります。データblobは、base64をデコードして保存する必要があるxmlです。
これはSQL/MYSQL/TSQLで行うことができますか?
こうして得られたテーブルをBIツールにプルしてレポートを作成する必要があります。私たちのBIツールは、XML形式のデータブロブをサポートしていません。
私の要件に基づいて、データblobはbase64でエンコードされたxmlであり、デコードして読み込み可能な形式である必要があるテーブルに格納する必要があります。データblobは、base64をデコードして保存する必要があるxmlです。
これはSQL/MYSQL/TSQLで行うことができますか?
こうして得られたテーブルをBIツールにプルしてレポートを作成する必要があります。私たちのBIツールは、XML形式のデータブロブをサポートしていません。
これは、T-SQLでのソリューションです:
クレジットに:https://stackoverflow.com/a/32231832/5089204
DECLARE @x XML='<root><Test name="checkTest">TestValue</Test></root>';
SELECT @x;
--This is the XML string in base64
DECLARE @xBase64 VARCHAR(MAX)='PHJvb3Q+DQogIDxUZXN0IG5hbWU9ImNoZWNrVGVzdCI+VGVzdFZhbHVlPC9UZXN0Pg0KPC9yb290Pg==';
CREATE TABLE #testBase64(ID INT, SomeBLOB VARBINARY(MAX));
INSERT INTO #testBase64 VALUES(1,CAST(@xBase64 AS VARBINARY(MAX)));
SELECT ID
,SomeBLOB AS TheBLOB_as_HexString
,CAST(SomeBLOB AS VARCHAR(MAX)) AS TheBLOB_back_to_Base64
--taken from here: https://stackoverflow.com/a/32231832/5089204
,CAST(CAST(CAST(CAST(SomeBLOB AS VARCHAR(MAX)) AS XML).value('.','varbinary(max)') AS VARCHAR(MAX)) AS XML) AS Back_to_XML
FROM #testBase64;
DROP TABLE #testBase64;
/*
The results
Hex-String: 0x50484A766233512B44516F67494478555A584E304947356862575539496D4E6F5A574E725647567A6443492B5647567A64465A686248566C504339555A584E305067304B504339796232393050673D3D
Base64: PHJvb3Q+DQogIDxUZXN0IG5hbWU9ImNoZWNrVGVzdCI+VGVzdFZhbHVlPC9UZXN0Pg0KPC9yb290Pg==
XML again: <root><Test name="checkTest">TestValue</Test></root>
*/
これは機能しました。ありがとう。 – jarus
質問をするときは、できるだけ具体的にお願いいたします。 base64エンコードは、基本的にVARCHAR(サイズ)フィールドであり、 '64'の基本文字の文字は連結されています。だから...あなたは何を持っているのですか? – Bonatti
My SQLデータベースからBIツールにデータを取得しようとしています。 テーブルの1つに、データ型がBlobのフィールドPublicがあります。 使用しているBIツールは、.jpg、.png、.bmp、.rtfデータ形式でない限り、BLOBデータをサポートしていません。 データ型を調べるために私のビジネスをチェックしたところ、彼らは私に、データブロブはbase64でエンコードされたxmlであると答えました。 これは私が持っている唯一の情報です。 – jarus
もう一度問題を指定する必要があります: 'これはSQL/MYSQL/TSQLで行うことができますか? 'はい。そのVARCHAR(またはその他の 'String-like'構造体)は既にあります。 Blobとして保存されている場合は、元のアーカイブのビット/バイトのバイナリ状態です。あなたはそれを照会し、必要に応じてファイルを読まなければなりません。 XMLファイルは通常、「キー」:「値」のペアであり、いくつかのコンテキストを許可します。これらは非線形であるため、結果をSQLから「テーブル」に直接読み込むことはできません。誰かが答えを知っていても、その質問はあなたを助けるのが難しいほど広い/不確かです。 – Bonatti