Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

matinha

Ler ficheiro XML em store procedure

Recommended Posts

Olá a todos chamo-me Mário e estou a precisar de ajuda dos masters de Oracle...:)

 

Precisava de ajuda....

 

O que quero é criar uma store procedure que receba um ficheiro XML, este ficheiro é modificado de 1 em 1 hora

a store procedure tem que apanhar os valores das tags do ficheiro XML e fazer um insert numa tabela da base de dados Oracle

 

Alguém já fez coisa parecida

 

Cumps a todos e obrigado pela ajuda

 

matinha

Compartilhar este post


Link para o post
Compartilhar em outros sites

create or replace

PROCEDURE INSERTXML2(

p_xml_in XMLType,

p_table IN VARCHAR2 ) AS

v_context DBMS_XMLStore.ctxType;

v_rows NUMBER;

 

BEGIN

v_context := DBMS_XMLStore.newContext(p_table);

 

 

DBMS_XMLStore.setRowTag(v_context, 'ITEM');

 

 

DBMS_XMLStore.setUpdateColumn(v_context,'ORDERNUMBER'); -- OrderNumber-AUFNR

-- DBMS_XMLStore.setUpdateColumn(v_context,'VORNR');

DBMS_XMLStore.setUpdateColumn(v_context,'MATERIAL'); -- Material-MATNR

DBMS_XMLStore.setUpdateColumn(v_context,'LINENUMBER'); -- LineNumber--ARBPL

DBMS_XMLStore.setUpdateColumn(v_context,'NOMSPEED'); -- NomSpeed-BMSCH

--DBMS_XMLStore.setUpdateColumn(v_context,'GSTRS' ||' '|| 'GSUPS'); --StartDate

--DBMS_XMLStore.setUpdateColumn(v_context,'GLTRS' ||' '|| 'GLUPS'); --FinishDate

DBMS_XMLStore.setUpdateColumn(v_context,'TARGETQTY'); --TargetQty-GAMNG

DBMS_XMLStore.setUpdateColumn(v_context,'UNIT'); --Unit-MEINS

DBMS_XMLStore.setUpdateColumn(v_context,'SYSTEMSTATUS'); -- SystemStatus-OBSTA

-- DBMS_XMLStore.setUpdateColumn(v_context,'GLUPS');

-- DBMS_XMLStore.setUpdateColumn(v_context,'GSUPS');

-- DBMS_XMLStore.setUpdateColumn(v_context,'LTXA1');

-- DBMS_XMLStore.setUpdateColumn(v_context,'MAKTX');

 

v_rows := DBMS_XMLStore.insertXML(v_context, p_xml_in);

 

DBMS_XMLStore.closeContext(v_context);

 

END;

 

alguem me podia testar esta stored procedure?!?!? mudava os campos para uma tabela que já tivesse criada e criava um ficheiro XML?!?!?!

 

podia ser...ficava mto grato

 

cumps

 

matinha

Compartilhar este post


Link para o post
Compartilhar em outros sites

a mim da-me um erro nao se é devido à store procedure ou se é do SQL developer que estou a utilizar que dá erros muito loucos...neste aqui quando mando correr a procedure e digo qual a tabela onde deve por a informação diz que a tabela nao recebe dados daquele tipo...nao sei bem o que quer dizer...amanha faço post do erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos, tenho esta stored procedure:

 

create or replace

PROCEDURE INSERTXML(

p_xml_in CLOB,

p_table IN VARCHAR2 ) AS

insCtx DBMS_XMLStore.ctxType;

v_rows NUMBER;

BEGIN

insCtx := DBMS_XMLStore.newContext(p_table); -- get saved context

dbms_xmlstore.setRowTag(insCtx,'Row');

DBMS_XMLStore.clearUpdateColumnList(insCtx); -- clear the update settings

-- set the columns to be updated as a list of values

DBMS_XMLStore.setUpdateColumn(insCtx,'ORDERNUMBER');

DBMS_XMLStore.setUpdateColumn(insCtx,'PLANT');

DBMS_XMLStore.setUpdateColumn(insCtx,'MATERIAL');

DBMS_XMLStore.setUpdateColumn(insCtx,'LINENUMBER');

DBMS_XMLStore.setUpdatecolumn(insCtx,'NOMSPEED');

DBMS_XMLStore.setUpdatecolumn(insCtx,'STARTDATE');

DBMS_XMLStore.setUpdatecolumn(insCtx,'FINISHDATE');

DBMS_XMLStore.setUpdatecolumn(insCtx,'TARGETQTY');

DBMS_XMLStore.setUpdatecolumn(insCtx,'UNIT');

DBMS_XMLStore.setUpdatecolumn(insCtx,'SYSTEMSTATUS');

v_rows := DBMS_XMLStore.insertXML(insCtx, p_xml_in);

-- Close the context

DBMS_XMLStore.closeContext(insCtx);

END;

 

ela funciona bem no Oracle SQL Developer mas na aplicação SAP Mii devido ao tamanho máximo do tipo string ser de 4000 e o ficheiro XML ser maior tenho que o ler na stored procedure, alguém me pode dar umas dicas como fazer?!?!

 

cumps

 

matinha

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.