Oracle запрос в XML с использованием SSIS - PullRequest
0 голосов
/ 18 октября 2018

Я унаследовал запрос, который используется для извлечения информации из базы данных Oracle, и теперь они хотят создать файл XML, используя SSIS.Пока я прочитал несколько форумов и блогов и нашел способ подключить его, но не уверен, как мне использовать этот запрос.Я обнаружил, что Oracle использует XMLElement для создания XML, но я получил

Неподдерживаемый тип данных Oracle, обнаруженный USERDEFINED.(System.Data.OracleClient)

, когда я пытался выполнить запрос.Я предоставлю часть исходного запроса, потому что это довольно большой код

    SELECT

--SCHED_STASK.SCHED_ID,
ACFT_INV.INV_NO_SDESC AS "Aircraft",
SCHED_STASK.BARCODE_SDESC AS "Barcode",
EVT_EVENT.ACTUAL_START_DT AS "Act_Start_Dt",
EVT_EVENT.EVENT_DT AS "Act_End_Dt",
TASK_TASK.TASK_ORIGINATOR_CD AS "Originator",
SCHED_STASK.TASK_CLASS_CD AS "Class",
SCHED_STASK.TASK_SUBCLASS_CD AS "SubClass",
EVT_EVENT.EVENT_STATUS_CD AS "Status",

CASE
  WHEN TASK_TASK.TASK_CD is null THEN null
  WHEN TASK_TASK.TASK_CD is not null THEN TASK_TASK.TASK_CD||' ('||TASK_TASK.TASK_NAME||')' 
END AS "Task Defn",

ORG_HR.HR_CD AS "Employee number / ID",
SCHED_WORK_TYPE.WORK_TYPE_CD AS "Worktype",
EVT_STAGE.STAGE_DT AS "Signed Date"
......
and a huge bunch of left joins. then the where clause 

Так что кто-то может подсказать мне, как решить этот сценарий, я буду более чем счастлив, совершенно новый, используя Oracle, я более знакомс MS SQL + SSIS, чем Oracle + SSIS

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Для этого конкретного случая я решил использовать другой загруженный элемент управления ssis, похоже, что здесь настройки, используемые компанией, не позволяли обеспечить хорошее взаимодействие между оракулом и ms ssis.

0 голосов
/ 19 октября 2018

Если я правильно вас понимаю, вы хотите вывод xml из oracle sql?попробуйте это!

with data as(SELECT
'Blériot' AS Aircraft,
1234 AS BARCODE,
DATE '2018-01-01'  ACT_START_DT,
DATE '2018-02-01' ACT_END_DT,
'Louis' Originator,
'XI' Class,
'Civil tourer/trainer/military' SubClass,
'Obsolete but cool' Status,

CASE
  WHEN 'Rebuild on mass' IS NULL THEN NULL
  WHEN 'Rebuild on mass' IS NOT NULL THEN 'Rebuild on mass'||' ('||'Splinters in the sky'||')' 
END "Task Defn",

666 AS "Employee number / ID",
'capentry and seamstressing' Worktype,
DATE '2018-02-01'  "Signed Date"
from dual)

SELECT XMLELEMENT("Project",
(XMLELEMENT("Aircraft",AIRCRAFT)),
(XMLELEMENT("BARCODE",BARCODE)),
(XMLELEMENT("ACT_START_DT",ACT_START_DT)),
(XMLELEMENT("ACT_END_DT",ACT_END_DT)),
(XMLELEMENT("Originator",Originator)),
(XMLELEMENT("Class",Class)),
(XMLELEMENT("SubClass",SubClass)),
(XMLELEMENT("Status",Status)),
(XMLELEMENT("Task Defn","Task Defn")),
(XMLELEMENT("Employee number / ID","Employee number / ID")),
(XMLELEMENT("Worktype",Worktype)),
(XMLELEMENT("Signed Date","Signed Date"))
)
from data

результат будет:

<Project>
    <Aircraft>Blériot</Aircraft>
    <BARCODE>1234</BARCODE>
    <ACT_START_DT>2018-01-01</ACT_START_DT>
    <ACT_END_DT>2018-02-01</ACT_END_DT>
    <Originator>Louis</Originator>
    <Class>XI</Class>
    <SubClass>Civil tourer/trainer/military</SubClass>
    <Status>Obsolete but cool</Status>
    <Task Defn>Rebuild on mass (Splinters in the sky)</Task Defn>
    <Employee number / ID>666</Employee number / ID>
    <Worktype>capentry and seamstressing</Worktype>
    <Signed Date>2018-02-01</Signed Date>
</Project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...