Import XML file into ABAP WD
Hi,
Is there any way to upload an XML file into ABAP WD?
I just saw a blog for Java WD.
<a href="/people/johann.marty/blog/2006/10/03/create-a-web-dynpro-tree-from-an-xml-file:///people/johann.marty/blog/2006/10/03/create-a-web-dynpro-tree-from-an-xml-file
Is there a similar facility in ABAP WD?
Regards,
Haresh.
hey u can do this by using CALL Transformation id.. command..
here is the example code where i wrote this to convert it DATA to XML format...it may help u..
DATA : BEGIN OF l_xml_tab OCCURS 0,
a(100) TYPE c,
END OF l_xml_tab.
DATA : xml_out TYPE string .
DATA : lw_xml_tab LIKE LINE OF l_xml_tab.
XML
CALL TRANSFORMATION id "('ID')
SOURCE tab = gt_outtab[]
RESULT XML xml_out.
Convert to TABLE
CALL FUNCTION 'HR_EFI_CONVERT_STRING_TO_TABLE'
EXPORTING
i_string = xml_out
i_tabline_length = 100
TABLES
et_table = l_xml_tab.
OPEN DATASET p_lgfil1 FOR OUTPUT IN BINARY MODE.
LOOP AT l_xml_tab INTO lw_xml_tab.
TRANSFER lw_xml_tab TO p_lgfil1.
ENDLOOP.
CLOSE DATASET p_lgfil1.
Similar Messages
-
Simple Transformation to deserialize an XML file into ABAP data structures?
I'm attempting to write my first simple transformation to deserialize
an XML file into ABAP data structures and I have a few questions.
My simple transformation contains code like the following
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates"
xmlns:pp="http://www.sap.com/abapxml/types/defined" >
<tt:type name="REPORT" line-type="?">
<tt:node name="COMPANY_ID" type="C" length="10" />
<tt:node name="JOB_ID" type="C" length="20" />
<tt:node name="TYPE_CSV" type="C" length="1" />
<tt:node name="TYPE_XLS" type="C" length="1" />
<tt:node name="TYPE_PDF" type="C" length="1" />
<tt:node name="IS_NEW" type="C" length="1" />
</tt:type>
<tt:root name="ROOT2" type="pp:REPORT" />
<QueryResponse>
<tt:loop ref="ROOT2" name="line">
<QueryResponseRow>
<CompanyID>
<tt:value ref="$line.COMPANY_ID" />
</CompanyID>
<JobID>
<tt:value ref="$line.JOB_ID" />
</JobID>
<ExportTypes>
<tt:loop>
<ExportType>
I don't know what to do here (see item 3, below)
</ExportType>
</tt:loop>
</ExportTypes>
<IsNew>
<tt:value ref="$line.IS_NEW"
map="val(' ') = xml('false'), val('X') = xml('true')" />
</IsNew>
</QueryResponseRow>
</tt:loop>
</QueryResponse>
</tt:loop>
1. In a DTD, an element can be designated as occurring zero or one
time, zero or more times, or one or more times. How do I write the
simple transformation to accommodate these possibilities?
2. In trying to accommodate the "zero or more times" case, I am trying
to use the <tt:loop> instruction. It occurs several layers deep in the
XML hierarchy, but at the top level of the ABAP table. The internal
table has a structure defined in the ABAP program, not in the data
dictionary. In the simple transformation, I used <tt:type> and
<tt:node> to define the structure of the internal table and then
tried to use <tt:loop ref="ROOT2" name="line"> around the subtree that
can occur zero or more times. But every variation I try seems to get
different errors. Can anyone supply a working example of this?
3. Among the fields in the internal table, I've defined three
one-character fields named TYPE_CSV, TYPE_XLS, and TYPE_PDF. In the
XML file, I expect zero to three elements of the form
<ExportType exporttype='csv' />
<ExportType exporttype='xls' />
<ExportType exporttype='pdf' />
I want to set field TYPE_CSV = 'X' if I find an ExportType element
with its exporttype attribute set to 'csv'. I want to set field
TYPE_XLS = 'X' if I find an ExportType element with its exporttype
attribute set to 'xls'. I want to set field TYPE_PDF = 'X' if I find
an ExportType element with its exporttype attribute set to 'pdf'. How
can I do that?
4. For an element that has a value like
<ErrorCode>123</ErrorCode>
in the simple transformation, the sequence
<ErrorCode> <tt:value ref="ROOT1.CODE" /> </ErrorCode>
seems to work just fine.
I have other situations where the XML reads
<IsNew value='true' />
I wanted to write
<IsNew>
<tt:value ref="$line.IS_NEW"
map="val(' ') = xml('false'), val('X') = xml('true')" />
</IsNew>
but I'm afraid that the <tt:value> fails to deal with the fact that in
the XML file the value is being passed as the value of an attribute
(named "value"), rather than the value of the element itself. How do
you handle this?Try this code below:
data l_xml_table2 type table of xml_line with header line.
W_filename - This is a Path.
if w_filename(02) = '
open dataset w_filename for output in binary mode.
if sy-subrc = 0.
l_xml_table2[] = l_xml_table[].
loop at l_xml_table2.
transfer l_xml_table2 to w_filename.
endloop.
endif.
close dataset w_filename.
else.
call method cl_gui_frontend_services=>gui_download
exporting
bin_filesize = l_xml_size
filename = w_filename
filetype = 'BIN'
changing
data_tab = l_xml_table
exceptions
others = 24.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif. -
Hi Gurus,
it seems to be very easy to import XML files into repos, but I could find suitable driver in my ODBC Data Source Administrator.
Could You help me?
Many thanks in advance!
Regards
Laszloyou can't see view Data option for all types of sources... it depends on call interface and source you are using..
go and check the xml files and open them physically .. you'll see the data.. -
Hello folks,
I've been struggling and I need to figure out how to read a field from an XML field into ABAP. I'm writing this method and I need to call this field from my XML file. Can you guys please give me suggestions? Please advise. I will appreciate your time. Thanks in advance.
Ol.*& Report z_xit_xml_check
report z_xit_xml_check.
class cl_ixml definition load.
type-pools: ixml.
types: begin of t_xml_line,
data(256) type x,
end of t_xml_line,
begin of tsfixml,
data(1024) type c,
end of tsfixml.
data: l_ixml type ref to if_ixml,
l_streamfactory type ref to if_ixml_stream_factory,
l_parser type ref to if_ixml_parser,
l_istream type ref to if_ixml_istream,
l_document type ref to if_ixml_document,
l_node type ref to if_ixml_node,
l_xmldata type string.
data: l_elem type ref to if_ixml_element,
l_root_node type ref to if_ixml_node,
l_next_node type ref to if_ixml_node,
l_name type string,
l_iterator type ref to if_ixml_node_iterator.
data: l_xml_table type table of t_xml_line,
l_xml_line type t_xml_line,
l_xml_table_size type i.
data: l_filename type string.
parameters: pa_file type char1024 default
'd:\joao\desenvolvimentos\fi\fact\teste.xml'.
Validation of XML file: Only DTD included in xml document is supported
parameters: pa_val type char1 as checkbox.
start-of-selection.
Creating the main iXML factory
l_ixml = cl_ixml=>create( ).
Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
perform get_xml_table changing l_xml_table_size l_xml_table.
wrap the table containing the file into a stream
l_istream = l_streamfactory->create_istream_itable( table =
l_xml_table
size =
l_xml_table_size ).
Creating a document
l_document = l_ixml->create_document( ).
Create a Parser
l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
istream = l_istream
document = l_document ).
Validate a document
if pa_val eq 'X'.
l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
endif.
Parse the stream
if l_parser->parse( ) ne 0.
if l_parser->num_errors( ) ne 0.
data: parseerror type ref to if_ixml_parse_error,
str type string,
i type i,
count type i,
index type i.
count = l_parser->num_errors( ).
write: count, ' parse errors have occured:'.
index = 0.
while index < count.
parseerror = l_parser->get_error( index = index ).
i = parseerror->get_line( ).
write: 'line: ', i.
i = parseerror->get_column( ).
write: 'column: ', i.
str = parseerror->get_reason( ).
write: str.
index = index + 1.
endwhile.
endif.
endif.
Process the document
if l_parser->is_dom_generating( ) eq 'X'.
perform process_dom using l_document.
endif.
*& Form get_xml_table
form get_xml_table changing l_xml_table_size type i
l_xml_table type standard table.
Local variable declaration
data: l_len type i,
l_len2 type i,
l_tab type tsfixml,
l_content type string,
l_str1 type string,
c_conv TYPE REF TO cl_abap_conv_in_ce,
l_itab type table of string.
l_filename = pa_file.
upload a file from the client's workstation
call method cl_gui_frontend_services=>gui_upload
exporting
filename = l_filename
filetype = 'BIN'
importing
filelength = l_xml_table_size
changing
data_tab = l_xml_table
exceptions
others = 19.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
Writing the XML document to the screen
CLEAR l_str1.
LOOP AT l_xml_table INTO l_xml_line.
c_conv = cl_abap_conv_in_ce=>create( input = l_xml_line-data
*replacement = space ).
c_conv->read( IMPORTING data = l_content len = l_len ).
CONCATENATE l_str1 l_content INTO l_str1.
ENDLOOP.
l_str1 = l_str1+0(l_xml_table_size).
SPLIT l_str1 AT cl_abap_char_utilities=>cr_lf INTO TABLE l_itab.
WRITE: /.
WRITE: /' XML File'.
WRITE: /.
LOOP AT l_itab INTO l_str1.
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab
*IN
l_str1 WITH space.
WRITE: / l_str1.
ENDLOOP.
WRITE: /.
endform. "get_xml_table
*& Form process_dom
form process_dom using document type ref to if_ixml_document.
data: node type ref to if_ixml_node,
iterator type ref to if_ixml_node_iterator,
nodemap type ref to if_ixml_named_node_map,
attr type ref to if_ixml_node,
name type string,
prefix type string,
value type string,
indent type i,
count type i,
index type i.
data: name2 type string,
name_root type string,
node_parent type ref to if_ixml_node,
node_root type ref to if_ixml_node,
num_children type i.
node ?= document.
check not node is initial.
uline.
write: /.
write: /' DOM-TREE'.
write: /.
if node is initial. exit. endif.
create a node iterator
iterator = node->create_iterator( ).
get current node
node = iterator->get_next( ).
loop over all nodes
while not node is initial.
indent = node->get_height( ) * 2.
indent = indent + 20.
num_children = node->num_children( ).
case node->get_type( ).
when if_ixml_node=>co_node_element.
element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
node_root = node->get_root( ).
name_root = node_root->get_name( ).
write: / 'ELEMENT :'.
write: at indent name color col_positive inverse.
write: 'NUM_CHILDREN:', num_children.
write: 'ROOT:', name_root.
node_parent = node->get_parent( ).
name2 = node_parent->get_name( ).
write: 'NAME2: ' , name2.
if not nodemap is initial.
attributes
count = nodemap->get_length( ).
do count times.
index = sy-index - 1.
attr = nodemap->get_item( index ).
name = attr->get_name( ).
prefix = attr->get_namespace_prefix( ).
value = attr->get_value( ).
write: / 'ATTRIBUTE:'.
write: at indent name color col_heading inverse, '=',
value color col_total inverse.
enddo.
endif.
when if_ixml_node=>co_node_text or
if_ixml_node=>co_node_cdata_section.
text node
value = node->get_value( ).
write: / 'VALUE :'.
mjprocha
node_parent = node->get_parent( ).
write: at indent value color col_group inverse.
name2 = node_parent->get_name( ).
write: 'NAME2: ' , name2.
endcase.
advance to next node
node = iterator->get_next( ).
endwhile.
endform. "process_dom -
How to Import XML file into SAP B1
Dear All,
I have a scenario like,
I am receiving a XML file from a 3rd party application for the daily Creation,Update of Item Master,BP Master, Marketing Documents. I want to import this file into SAP B1 through its approp objects. I understand DTW has limitation in its file types (Semicolo,Tab,Comma,ODBC). How do i do this ? Please guide me.
Thanks,
Thanga Raj KHy folks,
I´m frim Brasil and I've been studying the tool EFM (Eletronic File Manager) to learn more about it!
There I saw that we can extract to XML "any" infomation from the database we want, mainly through the GEP.
However, as I've seen, this Add-On can not import any XML file into SBO, unless for the BFP wich can be imported in conjunction with the BTHF Add-on.
So I ask: how is it possible to import XML data into SBO database? Is it possible to be done through the EFM? or it´s really necessary to write a code specifically to do that?
Besides, I know that de B1iSN fit to this necessity... but when I tried to use it, by the custom "object" for BP, for example, there are some data wich the mapping conteined in this custom "process" that can not be imported... I tried to understand how to map those other fields not imported by the custom but this has been dificult to me as I am a implementation consultant focused in administrative process not on development...
Could you please help me with this subject!
Thanks a lot,
Denis -
Convert XML file into ABAP Query
Hi All,
Can we capture a XML file generated from a Non-SAP system in SAP system and convert into ABAP Query to retreive Data from DB and post it back as a XML query to the same Non-SAP system using a Middleware. Can this process be done in cache memory level itself instead of saving in DB.
If it is possible pls do tell the procedure and steps to be followed.
Suggestion and Help will be much Appreciated
Thanks & Regds.
RameshHi check these blogs....
<a href="/people/r.eijpe/blog/2005/11/21/xml-dom-processing-in-abap-part-ii--convert-an-xml-file-into-an-abap-table-using-sap-dom-approach:///people/r.eijpe/blog/2005/11/21/xml-dom-processing-in-abap-part-ii--convert-an-xml-file-into-an-abap-table-using-sap-dom-approach
<a href="/people/tobias.trapp/blog/2005/12/08/xml-processing-in-abap--part-6:///people/tobias.trapp/blog/2005/12/08/xml-processing-in-abap--part-6 -
I need to know how to import xml files into indesign cs6.
My client wants to send me xml text files to import into Indesign for a multi-page publication. I don't have a clue where to start. Can you point me to a tutorial that would help me figure this out?
I have a sample file that looks like this:
<?xml version="1.0"?>
<providers>
<provider>
<name>Bow Valley College</name>
<description>Putting the Community back in college…in the Bow Corrid
ANY TIME, ANY PLACE, ANY PATH, ANY PACE LEARNING.
Designated as the comprehensive community college for Calgary & its
surrounding region, Bow Valley College offers you learning opportunities
through flexible delivery options, including classrooms, online or self
paced modules. Whether you are taking a course for interest, to enhance
your career skills or to finish high school you have access to all of the
traditional Bow Valley College student supports.
Visit our website [2] or come see us at our Canmore campus.
BOW VALLEY LEARNING COUNCIL MEMBER.
Links:
[1] http://www.bowvalleycollege.ca/bow-corridor.html
</description>
<contact_information>Canmore Campus
Provincial Building, 800 Railway Ave.
Canmore, AB  T1W 1P1
OFFICE HOURS: 8:30am - 4:30pm, Monday - Friday (except from 12 - 1pm)
PHONE: (403) 678-3125
FAX: (403) 678-3127
BANFF CAMPUS: Lower Level, Banff YWCA, 102 Spray Ave., Banff (ONLY OPEN
WHEN COURSES OFFERED). </contact_information>
<email>[email protected]</email>
<website>www.bowvalleycollege.ca/bow-corridor</website>
<registration_information>Cancellation policy: Once your course has begun no refunds or credits will
be given. Compassionate grounds may be considered with official
documentation. There are no refunds, transfers, or credits if you cancel
within one week of the course start date.
BY PHONE: (403) 678-3125. Payment by Visa or Mastercard
IN PERSON: Canmore Campus, Provincial Building, 800 Railway Ave., Canmore.
Payment by cash, Visa or Mastercard.
 
FUNDING ASSISTANCE MAY BE AVAILABLE FOR THOSE ON A LOW INCOME ON SOME
COURSES. PLEASE ASK FOR MORE INFORMATION.</registration_information>
<courses>
<course>
<title>Computer Basics/Windows 7 - Instructor led, Canmore</title>
<description>An instructor will lead the class through the basic features of Microsoft
Windows, the Internet and Email. Find out how to start programs, create,
save and organize your files and use the online help feature. You’ll also
get an introduction to surfing the internet and setting up an email
account. This course is designed for those with little or no computer
experience – and is still our most popular course. 18 HR COURSE.</description>
<schedule_entries>
<entry>
<date>Mon 6:30 - 9 pm, Oct 7 - Dec 2</date>
<date>Thu 6:30 - 9 pm, Oct 10 - Dec 5</date>
</entry>
</schedule_entries>
</course>
<course>
<title>Word 2010 Introduction - Self-paced</title>
<description>Explore the basics of Microsoft Word to produce professional letters and
documents. This course guides you through the effective use of the Word
Ribbon and Quick Access Toolbar. You’ll learn how to efficiently edit,
move and copy text; manipulate fonts; apply bullets and numbering; borders
and shading; insert and re-size Clip Art; enter headers and footers; insert
page numbers; set alignment and indents; and change page settings. You’ll
learn to use the AutoCorrect feature and finish documents using the
spelling, thesaurus and grammar features.
Self-paced, 18 hr course.
Prerequisite recommended: Computer Basics or equivalent experience.</description>
<schedule_entries>
<entry>
<date>Mon 7:30 - 9 pm, Oct 7</date>
<date>Thu 7:30 - 9 pm, Dec 5</date>
</entry>
</schedule_entries>
</course>
<course>
AND SO ON...FOR 64 PAGES WORTH OF CONTENT
HELP!!!
SGARENHello Sally,
First, I have only heard/read good things about the book Steve recommends. It is on my to buy list one day. Been awaiting a long deserved vaction to pick it up to read.
I approach XML files pretty much like I do any text file I am sent in that I will import or copy/paste a text file into a frame in ID and begin setting my styles. With XML, though, I first clean it up, move closing tags up to their logical close lines, remove spurious codes that mean something in HTML but don't necessarily belong in the XML file (like ’ which is an apostrophe so I do a search and replace. But for   which is a non-breaking space I simply search and replace with a regular space in general), and make sure the XML validates.
Validation is much like making sure an HTML page is formed properly. I use an XML editor (XML BluePrint) and a text editor (UltraEdit) for these tasks. If I had to only have one or the other, I suppose the XML editor is what I would use.
I always show the import options when I import the XML and make sure that I link to the file.
So once a sample of the XML is on a page in ID (via File | Import XML), I highlight text within a tag, say like in your example above, the Providor name, and make it like I want and then create a new style. I generally name the styles as per the XML tag. Later on, that makes mapping tags to styles a little easier.
Once I set up all the styles preliminarily, I map the tags to styles. You can do that either via the Tags palette or via the Structure Pane that will appear once the XML is imported. In both cases, it is found via the flyout menu at the top right of their respective windows.
After mapping my styles to the tags, I select the root element in the Structure Pane (the topmost element. In your sample above it is "providors" and delete it. This removes the XML in your ID file. But the styles and tags are still present.
Then I import the XML again and look to makes sure all the tags/elements are styled as intended. I then correct any errors/ommissions. Then...I'll delete the XML again and import the full XML file.
I can upload what I did with your XML sample above so you can compare it to your source file if you would like. You would then see how/where I moved tags. Now, moving the tags is only "necessary" to avoid all the extra blank paragraphs. That can be accomplished by ID's search/replace, too. But I like to start out with the XML cleaned up, so I take the few minutes to do it.
Take care, Mike -
Importing XML files into FCP 6
I recorded some footage using a Panasonic P2camera. I sent the files across to my media drive using fire wire but when I try to import the XML files from my media drive into FCP it tells me: *Please choose a translation document file*. Do I need a driver ? What am I doing wrong ?
There should be a text file along with the P2 media you recorded. That has to be transfered as well.
-
I have the data into the xml files. To store these data, I thinked to create a XML DB.
I created a new schema, through the 'create schema' function.
I obtained a table for any element found into .xsd file.
I don't see the relations for these tables.
I thinked to import the data into this xml db from xml files.
How must I do?
It's possible to store the data with their relations?
Thanks in advance
LuciaI have the data into the xml files. To store these data, I thinked to create a XML DB.
I created a new schema, through the 'create schema' function.
I obtained a table for any element found into .xsd file.
I don't see the relations for these tables.
I thinked to import the data into this xml db from xml files.
How must I do?
It's possible to store the data with their relations?
Thanks in advance
Lucia -
Illegal combination when importing xml file into xmltype column
I have the following control file.
LOAD DATA
CHARACTERSET UTF8
INFILE *
INTO TABLE IMPORTRAWXML TRUNCATE
SITEID constant 0
,VENDORID constant 17
,SITEFORMATID constant 2
,"\\plutonium\outcomes\AHA GWTG-Outpatient\Programs\DataTransfer\LoadTest\V17_standard_test.xml" filler char(1000)
,RAWDATA LOBFILE ("\\plutonium\outcomes\AHA GWTG-Outpatient\Programs\DataTransfer\LoadTest\V17_standard_test.xml")
TERMINATED BY EOF
)When I run it using sqlldr command line I get the following error:
SQL*Loader-350: Syntax error at line 1.
Illegal combination of non-alphanumeric characters
<?xml version="1.0" encoding="ISO-8859-1"?>Does anyone have any idea what I am doing wrong here? If I remove the fully resolved path (both the control file and xml file are in the same folder) it tells me it can't find the file to load.
HELP!!!!
Thanks,
Evaevaleah wrote:
I have made sure all my home settings are correct in my registry editor and they are. Another thing to note is the control file I am using works 100% perfectly, beautifully when called from Toad for Oracle. It is when called from the command line utility that it fails. Is there anyway to determine what the difference could be?
So we know that I can work (toad works), but it doesn't yet work in a "cmd" environment.
Just as any other program Toad is also a client and uses NLS and other environment settings. Maybe these are stored in the registry, maybe the are being set by Toad by reading a configuration file while it is started or while running.
As said, on Windows its tricky...
Setting properties in the registry will not mean that they are the same a "cmd" window or maybe not even been set.
If you execute / run "cmd" then the "set" statement/command will output the environment settings that will be used during the livetime of that "cmd" session.
C:/> setIn my laptop environment (windows 7 64 bit) it will show the following
C:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\marco\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=00-00-000
ComSpec=C:\Windows\system32\cmd.exe
DEFLOGDIR=C:\ProgramData\McAfee\DesktopProtection
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\marco
LOCALAPPDATA=C:\Users\marco\AppData\Local
LOGONSERVER=\\AMISNT
MpConfig_ProductAppDataPath=C:\ProgramData\Microsoft\Windows Defender
MpConfig_ProductCodeName=AntiSpyware
MpConfig_ProductPath=C:\Program Files\Windows Defender
MpConfig_ProductUserAppDataPath=C:\Users\marco\AppData\Local\Microsoft\Windows
Defender
MpConfig_ReportingGUID=CA08B82B-EF0A-4107-89D8-ED5BB37E7515
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\oracle\product\11.2.0\dbhome_1\bin;C:\Windows\system32;C:\Windows;C:\Win
dows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PERL5LIB=c:\oracle\product\10.2.0\db_1\perl\5.8.3\lib\MSWin32-x64;c:\oracle\prod
uct\10.2.0\db_1\perl\5.8.3\lib;c:\oracle\product\10.2.0\db_1\perl\site\5.8.3;c:\
oracle\product\10.2.0\db_1\perl\site\5.8.3\lib;c:\oracle\product\10.2.0\db_1\sys
man\admin\scripts;
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 23 Stepping 10, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=170a
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\marco\AppData\Local\Temp
TMP=C:\Users\marco\AppData\Local\Temp
USERDNSDOMAIN=AMIS
USERDOMAIN=AMIS
USERNAME=marco
USERPROFILE=C:\Users\marco
VBOX_INSTALL_PATH=C:\Program Files\Sun\VirtualBox\
VSEDEFLOGDIR=C:\ProgramData\McAfee\DesktopProtection
windir=C:\Windows
C:\>The only thing that identifies that I have Oracle installed is set in the %PATH% variable and %PERL5LIB%. From the path setting you can also deduct that I have Oracle 11 and Oracle 10 software installed. So when I execute "sqlldr" what NLS settings will it use and which tnsnames.ora alias for example to connect to the database...?
You can you do it and see what happens...
C:\>sqlldr
SQL*Loader: Release 11.2.0.1.0 - Production on Wed May 12 20:36:25 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Usage: SQLLDR keyword=value [,keyword=value,...]
Valid Keywords:
...So it will pick the first "sqlldr" in the %PATH% environment setting. But what about NLS...? As said to be absolute sure you will have to set it in your environment.
C:/> set ORACLE_HOME="C:\oracle\product\10.2.0\db_1"
C:\> set
Path=C:\oracle\product\11.2.0\dbhome_1\bin;C:\Windows\system32;C:\Windows;C:\Win
dows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PERL5LIB=c:\oracle\product\10.2.0\db_1\perl\5.8.3\lib\MSWin32-x64;c:\oracle\prod
uct\10.2.0\db_1\perl\5.8.3\lib;c:\oracle\product\10.2.0\db_1\perl\site\5.8.3;c:\
oracle\product\10.2.0\db_1\perl\site\5.8.3\lib;c:\oracle\product\10.2.0\db_1\sys
man\admin\scripts;
ORACLE_HOME="C:\oracle\product\10.2.0\db_1"
C:\> echo %ORACLE_HOME%
"C:\oracle\product\10.2.0\db_1"Because if I enter "sqlldr" it will pick the executable from the 11.2 install, but the ORACLE_HOME is set to the wrong environment
Executing sqlldr now will give me an error
C:\>sqlldr
Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 21
00 not found; No message file for product=RDBMS, facility=UL
C:\>Another thing you can notice now is that from that output alone, you can't deduct the Oracle "sqlldr" version anymore. Setting the ORACLE_HOME environment to either 10.2 or 11.2 will cause "sqlldr" to execute normally (at least thats how it looks) BUT in the case of the oracle 10.2 setting it will use the wrong message files etc. At least not the correct software versions / files "sqlldr" is shipped with. So you can (and most of the time) will get strange errors.
C:\> set ORACLE_HOME=C:\oracle\product\10.2.0\db_1
C:\>sqlldr
SQL*Loader: Release 11.2.0.1.0 - Production on Wed May 12 20:45:00 2010
C:\>set ORACLE_HOME=C:\oracle\product\11.2.0\dbhome_1
C:\>sqlldr
SQL*Loader: Release 11.2.0.1.0 - Production on Wed May 12 20:49:50 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Usage: SQLLDR keyword=value [,keyword=value,...]
...In the registry you can find a lot of those variables are set for ORACLE_HOME, ORACLE_BASE, SQLPATH, maybe TNS_ADMIN, ORACLE_SID, NLS_LANG. You can find the variables IN the registry on two places. The most common one is the SYSTEM wide environment settings under //HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE and in my case for 11.2 under //HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb11g_Home1.
You could overrule this for to be active on "my user session", my login session as account "marco" under //HKEY_CURRENT_USER/Software/Oracle, but no one using Windows is doing this.
Besides the "cmd" and registry environment, there is a different place as well were you can set these parameters. In windows go to "start", click "control panel", click "system", click tab "Advanced" and then click on the button on the bottum with "Environment Variables". Here you can see the distinction between user and system wide variables as well. Here you can also set NLS_LANG, ORACLE_HOME etc. If I am not mistaken than these will be the default values used in a fresh "cmd" window session. But they can and will interfere with programs you start via clicking them. For example something a Java program like SQL Developer (and/or Toad). If those values are not overrulled by the program by for example using his own variables from a config file or else, those sessings from the "system" / control panel item will be used. If it is the wrong mix, you will encounter strange issues.
Setting ORACLE_HOME and ORACLE_BASE will be used by a lot of derived other settings for example the default place SQL*Net drivers and tnsnames aliases etc will be checked. For example setting the ORACLE_HOME to
C:\> set ORACLE_HOME=C:\oracle\product\10.2.0\db_1will result in that the tnsnames aliases from
C:\> set ORACLE_HOME=C:\oracle\product\10.2.0\db_1\NETWORK\adminwill be used and NOT the ones maybe needed from
C:\oracle\product\11.2.0\dbhome_1\NETWORK\adminYou can overrule this behavior by setting the TNS_ADMIN variable. By default, most explicit form for example on linux and Unix, the following rule will be used by Oracle
1) .tnsnames.ora in the home directory of the user
2) standard default: $ORACLE_HOME/network/admin
3) behavior can be overruled via setting $TNS_ADMINThe fact that you are able via Toad to execute it correctly proves you that it can be done. But Toad uses in your session "SQL*Net" or JDBC or ODBC or ADO or ? via its own configuration environment settings that are being set on which values...?
Both Oracle and Toad use the OSI model (http://en.wikipedia.org/wiki/OSI_model), both have to follow the same rules. There hasn't been changed that much over the years, character set conversions are done in the "two task common" layer of the data transport on either side (client/server) when data travels between a client and server. And don't forget a database can be also be a client when for instance database links are being used. One of the reasons to read old manuals because there the basics are still perfectly explained: http://download.oracle.com/docs/cd/A57673_01/DOC/net/doc/NWUS233/ch2.htm#twotask (Oracle 7.3.4 Networking Manual).
This long long story is just to show you that you have more control if you set variables explicitly in a "cmd" window (and or in a linux/unix shell (as long as the session isn't "forked")) BUT you will have to be precise. Check the environment a set those environment variables that control / that are being used by "sqlldr" (and that are probably more then you realised, for example that SQL_PATH variable is the default directory where SQL*Plus is looking and saving its "SQL" and spool "LIS" files).
HTH -
Has Oracle any facility to import XML files into DB?
Thanks in advance
Yes it is possible. But never tried.
Could you please go here.
http://www.stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10790/xdb25loa.htm
aijaz -
How to upload XML file into the internal table in Webdynpro ABAP ?
Hi Friends,
I am not able to upload the XML file into ABAP,can you please help me in solving this issue with the help of source code.
Regards
DineshHi Dinesh,
Try go through this program which I had developed earlier. It takes as input an XML file and then breaks it down into name-value pairs of an intrnal table. You need to pass an XML file as input to this program. (I had hard coded the path for my XML file in it. You need to replace it with 1 of your own or you can just delete it and use the browse button to selet the file on your PC)
Regards,
Uday
REPORT ZUDAY_XML no standard page heading.
" Internal table to store the XML file in binary mode
data: begin of it_xml occurs 1,
c(255) type x,
end of it_xml,
" Name-value pairs table rturned by FM SMUM_XML_PARSE
it_SMUM_XMLTB type SMUM_XMLTB occurs 0 with header line,
" Table returned by FM SMUM_XML_PARSE for error handling
it_bapiret2 type bapiret2 occurs 0 with header line.
" XSTRING variable to be used by FM SCMS_BINARY_TO_XSTRING to hold the XML file in XSTRING format
data: I_xstring type xstring,
" String variable to hold XML file path to pass to GUI_UPLOAD
I_file_path type string,
" Variable to store the size of the uploaded binary XML file
I_LENGTH TYPE I VALUE 0.
parameters: P_path type IBIPPARMS-PATH default 'C:\Documents and Settings\c5104398\Desktop\flights.xml'.
" Get the XML file path from the user
at selection-screen on value-request for P_path.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = P_PATH. -
CANNOT IMPORT FCP .XML FILE INTO PREMIERE PRO CS5
Hi,
Camera used:-Sony Pmw Ex3
Footage :- XDCAM sp(1440 * 1080i) PAL
Edited in :-final cut pro 7
Error :- failed to import .xml file into premiere pro cs5
I tried to import the .xml file into premiere CS5 ,it asked for the media files to relink .whn i linked the .mp4 files it showed the error messege "The selected file cannot be linked becouse it has 2 audio channel(s) and the clip was created with 1 audio channel(s).
then i tried to relink the .mov instead of .mp4 file (which i used in final cut pro on apple machine)i got the error "Codec missing or unavailable"
what should i do???..i almost done all the editing in final cut pro and i bought the adobe coz i thought i can finish all the pending FCP projects in Premier Pro..??What is the CODEC in your MOV file(s)? MOV is but a "wrapper," like AVI. This ARTICLE will give you some background. It could be that you just need the proper CODEC, or it could be that it is a Mac-only CODEC, and then you will need for the producer to Export in another CODEC, that is PC-compatible.
This ARTICLE will give you some background on CODEC's, in general.
Good luck,
Hunt -
Store/persist XML file on ABAP stack
Hi everybody,
as the ABAP Database is a relational DB, I wonder where to store a XML file. Is there a dedicated table?
Thanks
Regards Mario
Edited by: Mario Müller on Sep 10, 2008 2:21 AMhi
try with this function module SMUM_XML_PARSE for parsing xml document into a table structure
also check this document for how an abap prog take xml and convert into an abap internal table
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f50dcd4e-0501-0010-3596-b686a7b51492
convert an xml file into abap internal table using sap dom approach
XML DOM Processing in ABAP part II - Convert an XML file into an ABAP table using SAP DOM Approach.
regards
kummari -
How do I import one xml file into 3 separate tables in db?
I need to utilize xslt to import one xml file into 3 separate tables: account, accountAddress, streetAddress
*Notice the missing values in middleName, accountType
sample xml
<account>
<firstName>Joe</firstName>
<middleName></middleName>
<lastName>Torre</lastName>
<accountAddress>
<streetAddress>
<addressLine>myAddressLine1</addressLine>
<addressLine>myAddressLine2</addressLine>
</streetAddress>
<city>myCity</city>
<state>myState</state>
<postalCode>mypostalCode</postalCode>
</accountAddress>
<accountId>A001</accountId>
<accountType></accountType>
<account>
I need the following 3 results in 3 separate xml files in order for me to upload into my 3 tables.
Result #1
<rowset>
<row>
<firstName>Joe</firstName>
<lastName>Torre</lastName>
<accountId>A001</accountId>
<row>
<rowset>
Result #2
<rowset>
<row>
<addressId>1</address>
<city>myCity</city>
<state>myState</state>
<postalCode>myPostalCode</postalCode>
<row>
<rowset>
Result #3
<rowset>
<row>
<addressId>1</addressId>
<addressLineSeq>1</addressLineSeq>
<addressLine>myAddressLine1</addressLine>
<row>
<row>
<addressId>1</addressId>
<addressLineSeq>2</addressLineSeq>
<addressLine>myAddressLine2</addressLine>
<row>
<rowset>Use XSU to store in multiple tables.
"XSU can only store data in a single table. You can store XML across tables, however, by using the Oracle XSLT processor to transform a document into multiple documents and inserting them separately. You can also define views over multiple tables and perform insertions into the views. If a view is non-updatable (because of complex joins), then you can use INSTEAD OF triggers over the views to perform the inserts."
http://download-west.oracle.com/docs/cd/B19306_01/appdev.102/b14252/adx_j_xsu.htm#i1007013
Maybe you are looking for
-
Typically, this sort of thing is easily achieved in Excel where you can calculate the values in an output column based on input values. I need to do this in Reports. I am using Reports 6i (Report Builder 6.0.8.27.0) I have a relatively simple query w
-
Unable to install app servers due to zones in solaris 10
Hi, I have solaris 10 with zones installed. I am trying to install App server in global zone. But it automatically detects zones also and gets trying to install in it also. When it is not able to it throws error in installation. Pls help how to insta
-
ABAP Unit: Can one call a method in the setup/teardown methods?
Hi all, I'm using ABAP Unit test ClasseS (what's with the odd capitalization BTW?) in the class builder on NW7.0. In my SETUP method I do not want to do a CREATE OBJECT, but want to use a GET_INSTANCE method of my main class to instantiate my object.
-
Crystal reports - charting query
Hi. I have a database with the following fields: 'companyname' which contains the values: company1 company2 company3 company4 company5 company6 'value' which contains the company values: 11 14 16 13 72 26 and a 'date' field. I have created a CReport
-
I'm doing a website for someone. She has some changes and ideas put them together in iweb on a template. Is there a simple way for her to copy and paste those changes and send them to me? Obviously I don't want to be fooling around with her Domain fi