Import_from_XML_CLOB

SQL

PROCEDURE Import_from_XML_CLOB(INOUT dad_ref CLOB, INOUT xml CLOB);


Parametry

dad_ref
odkaz na DAD
xml
jméno proměnné, z níž se čte XML text


Od verze

8.1

Popis

Procedura volaná z jazyka SQL provede import dat v XML formátu uložených v proměnné xml podle popisu mapování uvedeného v DAD. Celý import je součástí transakce. Dojde-li k během importu k chybě, je vyvolána výjimka.

DAD nesmí vést do ODBC zdroje dat (602SQL server nemá implementováno ODBC).

Parametr dad_ref může mít dvě podoby. Je-li ve tvaru jméno_objektu uvozené hvězdičkou (*jméno_objektu), hledá se DAD v otevřené aplikaci jako objekt typu přenos, jinak se čte z uvedené proměnné typu CLOB.

Pro použití v jazyce SQL musí být nahraná extenze 602xml a je nutné název funkce prefixovat jejím jménem, tedy CALL `602xml`.Import_from_XML_CLOB. Na Linuxu je třeba vždy nahrát extenzi příkazem

CALL load_server_extension('602xml')

V klientském API lze použít obdobnou funkci Import_from_XML_buffer.



Příklad

Z přijatého dopisu se vytáhne obsah připojeného souboru tvořící XML objednávku a uloží se do pomocné tabulky. Poté se provede přenos do různých tabulek podle zvoleného DADu.

  SET Err = MailBoxSaveFileDBs(box,id_zas,0,"","XML_srcs","XML_src","id_xmlsrc=xml_src_seq.CURRVAL");
  IF Err > 0 THEN // chyba mailu nezpůsobí rollback!! když chyba, sám si smaž záznam v pom. tabulce
     CALL Log_write("Chyba při ukládání souboru "+Int2str(Err));
     DELETE FROM XML_srcs WHERE id_xmlsrc=xml_src_seq.CURRVAL;
   ELSE //OK
     SET dad = "*Dad_order";
     SELECT xml_src INTO xml_source FROM XML_srcs WHERE id_xmlsrc=xml_src_seq.CURRVAL; 
// provést přenos do tabulek
     CALL`602xml`.Import_from_XML_CLOB (dad,xml_source);
  END IF;

Viz