2012-04-05 4 views
0

У меня есть таблица, в которой есть поле (текст типа данных), содержащий XML-файл. После некоторых попыток и ошибок я обнаружил, что единственный способ получить полный XML-файл из этой таблицы - использовать предложение FOR FOR в ms sql. Но моя следующая проблема заключается в том, что colum, содержащий xml-файл, называется чем-то вроде «XML_F52E2B61-18A1-11D1-B105-00805F49916B», который является идентификатором invald для cf.Извлечь xml-данные из текстового столбца

Есть ли способ получить доступ к этому столбцу по его идентификатору, а не к его имени или как лучше всего получить доступ к этому столбцу?

Edit: Оператор SQL я использую:

SELECT XmlPackage 
FROM LogK3OnChange 
WHERE DealerID = IsNull(<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.dealerid#">, DealerID) 
AND LogID = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.logid#"> 
FOR XML RAW 

С уважением,

Хайко

ответ

0

Понял

<cfoutput>#myQuery["XML_F52E2B61-18A1-11D1-B105-00805F49916B"][1]#</cfoutput> 

делает трюк

1

Если встроить запрос в суб-запроса вы можете дать столбец а имя.

select 
    (
    select * 
    from YourTable 
    for xml path('Row'), root('Root') 
) as NewColumnName 

С запросом:

SELECT 
    (
    SELECT XmlPackage 
    FROM LogK3OnChange 
    WHERE DealerID = IsNull(<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.dealerid#">, DealerID) 
      AND LogID = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.logid#"> 
    FOR XML PATH 
) AS NewColumnName 

Update:
Если вы хотите, чтобы столбец представлять собой XML-тип данных следует добавить type ключевое слово в запросе. Не уверен, что это будет иметь значение для coldfusion.

SELECT 
    (
    SELECT XmlPackage 
    FROM LogK3OnChange 
    WHERE DealerID = IsNull(<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.dealerid#">, DealerID) 
      AND LogID = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.logid#"> 
    FOR XML PATH, TYPE 
) AS NewColumnName 
+0

К сожалению, кажется, не работает должным образом, потому что я получаю неполную XML-файл по этому пути. – Ostfriese

+0

Не хватает ли корневого элемента? –

+0

Нет, это просто отрезано где-то до реального конца файла – Ostfriese

Смежные вопросы