Loading GeoTiff in Oracle
Hi,
I am trying to load a Raster GeoTiff (has location tags, but extension is .tif) in Oracle Spatial 11.2 version.
The things I did are :
*1)*
--Creating Georaster table
CREATE TABLE city_images (image_id NUMBER, image_description VARCHAR2(50), image SDO_GEORASTER);
*2)*
--creating raster data table
CREATE TABLE city_images_rdt OF SDO_RASTER
(PRIMARY KEY (rasterID, pyramidLevel, bandBlockNumber,
rowBlockNumber, columnBlockNumber))
-- TABLESPACE im_tbs_1
LOB(rasterBlock) STORE AS lobseg
CHUNK 32768
CACHE READS
PCTVERSION 0
STORAGE (PCTINCREASE 0)
*3)*
Created Procedure as follows :
create or replace
procedure GEORASTERPROC(imgpath in varchar2) as
geor SDO_GEORASTER;
BEGIN
-- Initialize an empty GeoRaster object into which the external image
-- is to be imported.
INSERT INTO city_images
values( 1, 'TIFF', sdo_geor.init('city_images_rdt') );
-- Import the TIFF image.
SELECT image INTO geor FROM city_images
WHERE image_id = 1 FOR UPDATE;
--sdo_geor.importFrom(geor, NULL, 'GeoTIFF', 'file', imgpath);
sdo_geor.importFrom(geor, NULL, 'TIFF', 'file', imgpath);
UPDATE city_images SET image = geor WHERE image_id = 1;
COMMIT;
END;
*4)* Placed Image on the Oracle server at /home/oracle/ (However I tried it from my local machine as well). The image I have seen in Google Earth and validated with GeoTiff Examiner.
*5)* Ran the above procedure as follows :
exec GEORASTERPROC('/home/oracle/ImageRasterizer.tif')
Now the Error I am getting is :
ERROR at line 1:
ORA-13464: error loading GeoRaster data: - Unable to render RenderedOp for this
operation.
ORA-06512: at "MDSYS.MD", line 1723
ORA-06512: at "MDSYS.MDERR", line 17
ORA-06512: at "MDSYS.SDO_GEOR", line 5539
ORA-06512: at "WM_GIS.GEORASTERPROC", line 13
ORA-06512: at line 1
What could have gone wrong ?? Please help me i this, I am struggling for many days here.
Thanks,
Alankar
Hi Alankar,
this error mesg shows the tiff image cannot be handled by importFrom, which completely depends upon JAI. how big is the image and how the bands are interleaved in the tiff file? Also, can you run the cliend-side GeoRasterLoader to load the image? It will print the error stack of the java exception in more details.
JAI has a lot of limitations in handling geospatial images. So, we generally recommend you use GDAL which supports GeoRaster for loading and exporting all GDAL supported formats. (http://www.gdal.org/frmt_georaster.html)
on the side, a couple of recommendations for your scripts:
1. always use SecureFile lob when creating the RDT's, which speeds up georaster operations by several times. in other words change "LOB(rasterBlock) STORE AS lobseg" to "LOB(rasterBlock) STORE AS SECUREFILE". (also, remove the name "lobseg" or give a special name for each RDT)
2. When loading an image into a GeoRaster database, always specify a block size, and it should generally be 256x256 or larger.
Regards,
Jeffrey
Similar Messages
-
How to create a load job in Oracle 9i
How do you create a basic load job in Oracle 9i? I'm really struggling with the syntax.
This is what I have so far and its not working. I am a Microsoft SQL Jr. DBA, Oracle is not a strong point :/.
Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
VARIABLE jobno NUMBER
BEGIN
DBMS_JOB.SUBMIT(:jobno,
'load data',
'infile oracle.csv',
'into TABLE HUB.PROVLKUP_LOAD_MATT',
'fields terminated by "|"',
'TRAILING NULLCOLS',
'(PROV_NO,PROV_NAME,FIRST_NAME,MI,TITLE,ADDRESS,CITY,COUNTY,STATE,ZIP,PHONE1,PHONE2,SPECIALTY,TAX_ID,PROV_NETWORK,EFF_DATE,TERM_DATE,PROV_TYPE,DO_NOT_REFER,DNR_DATE,DO_NOT_USE,NOTES)',SYSDATE, 'SYSDATE + 1');
COMMIT;
END;I actually want this job to be only run by the DBMS_JOB.Run command and not on auto schedule. Is there a way not to include a run date?
Edited by: 1007692 on May 23, 2013 11:38 AM
Edited by: 1007692 on May 23, 2013 11:39 AMWelcome to the forum.
Oracle 9i is a database version from the previous century.
But:
You can read about DBMS_JOB in the 9i documentation here:
http://www.oracle.com/pls/db92/homepage
Or do some searches on http://asktom.oracle.com
Anyway: if you want the job to run once, then omit the interval...
Oh, and don't forget to read {message:id=9360002} from the SQL and Pl/SQL FAQ here:
SQL and PL/SQL FAQ
Edited by: Hoek on May 23, 2013 8:09 PM -
Using FDM to load data from oracle table (Integration Import Script)
Hi,
I am using Integration Import Script to load data from oracle table to worktables in FDM.
i am getting following error while running the script.
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done
Attaching the full error report
ERROR:
Code............................................. -2147217887
Description...................................... Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
At line: 22
Procedure........................................ clsImpProcessMgr.fLoadAndProcessFile
Component........................................ upsWObjectsDM
Version.......................................... 1112
Thread........................................... 6260
IDENTIFICATION:
User............................................. ******
Computer Name.................................... *******
App Name......................................... FDMAPP
Client App....................................... WebClient
CONNECTION:
Provider......................................... ORAOLEDB.ORACLE
Data Server......................................
Database Name.................................... DBNAME
Trusted Connect.................................. False
Connect Status.. Connection Open
GLOBALS:
Location......................................... SCRTEST
Location ID...................................... 750
Location Seg..................................... 4
Category......................................... FDM ACTUAL
Category ID...................................... 13
Period........................................... Jun - 2011
Period ID........................................ 6/30/2011
POV Local........................................ True
Language......................................... 1033
User Level....................................... 1
All Partitions................................... True
Is Auditor....................................... False
I am using the following script
Function ImpScrTest(strLoc, lngCatKey, dblPerKey, strWorkTableName)
'Oracle Hyperion FDM Integration Import Script:
'Created By: Dhananjay
'Date Created: 1/17/2012 10:29:53 AM
'Purpose:A test script to import data from Oracle EBS tables
Dim cnSS 'ADODB.Connection
Dim strSQL 'SQL string
Dim rs 'Recordset
Dim rsAppend 'tTB table append rs object
'Initialize objects
Set cnSS = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set rsAppend = DW.DataAccess.farsTable(strWorkTableName)
'Connect to SQL Server database
cnss.open "Provider=OraOLEDB.Oracle.1;Data Source= +server+;Initial Catalog= +catalog+;User ID= +uid+;Password= +pass+"
'Create query string
strSQL = "Select AMOUNT,DESCRIPTION,ACCOUNT,ENTITY FROM +catalog+.TEST_TMP"
'Get data
rs.Open strSQL, cnSS
'Check for data
If rs.bof And rs.eof Then
RES.PlngActionType = 2
RES.PstrActionValue = "No Records to load!"
Exit Function
End If
'Loop through records and append to tTB table in location’s DB
If Not rs.bof And Not rs.eof Then
Do While Not rs.eof
rsAppend.AddNew
rsAppend.Fields("PartitionKey") = RES.PlngLocKey
rsAppend.Fields("CatKey") = RES.PlngCatKey
rsAppend.Fields("PeriodKey") = RES.PdtePerKey
rsAppend.Fields("DataView") = "YTD"
rsAppend.Fields("CalcAcctType") = 9
rsAppend.Fields("Amount") = rs.fields("Amount").Value
rsAppend.Fields("Desc1") = rs.fields("Description").Value
rsAppend.Fields("Account") = rs.fields("Account").Value
rsAppend.Fields("Entity") = rs.fields("Entity").Value
rsAppend.Update
rs.movenext
Loop
End If
'Records loaded
RES.PlngActionType = 6
RES.PstrActionValue = "Import successful!"
'Assign Return value
SQLIntegration = True
End Function
Please help me on this
Thanks,
Dhananjay
Edited by: DBS on Feb 9, 2012 10:21 PMHi,
I found the problem.It was because of the connection string.The format was different for oracle tables.
PFB the format
*cnss.open"Provider=OraOLEDB.Oracle.1;Data Source= servername:port/SID;Database= DB;User Id=aaaa;Password=aaaa;"*
And thanks *SH* for quick response.
So closing the thread......
Thanks,
Dhananjay -
Problem in loading Ntriple to Oracle
Hello,
Can some one please point what could be wrong in loading of Data in Ntriple format using the Code provide by Oracle to convert RDF data in N-Triple format to
Oracle's RDF storage type, SDO_RDF_TRIPLE_S in Oracle10g R2.
called TestNTriple2NDM.java
C:\prateek\semdis\sdordf_converter>java TestNTriple2NDM Data/timestamp.nt TIMEST
AMP_RDF_DATA TIMEMODEL 3
ID: 1403 Error: java.sql.SQLException: ORA-13199: RDF:Error occurred
ORA-06512: at "MDSYS.MD", line 1723
ORA-06512: at "MDSYS.MDERR", line 17
ORA-06512: at "MDSYS.SDO_RDF_TRIPLE_S", line 322
ID: 3641 Error: java.sql.SQLException: ORA-13199: RDF:Error occurred
ORA-06512: at "MDSYS.MD", line 1723
ORA-06512: at "MDSYS.MDERR", line 17
ORA-06512: at "MDSYS.SDO_RDF_TRIPLE_S", line 322
ID: 5835 Error: java.sql.SQLException: Unsupported feature
Rows: 10000
ID: 10754 Error: java.sql.SQLException: ORA-13199: RDF:Error occurred
ORA-06512: at "MDSYS.MD", line 1723
ORA-06512: at "MDSYS.MDERR", line 17
ORA-06512: at "MDSYS.SDO_RDF_TRIPLE_S", line 322
ID: 10755 Error: java.sql.SQLException: ORA-13199: RDF:Error occurred
ORA-06512: at "MDSYS.MD", line 1723
ORA-06512: at "MDSYS.MDERR", line 17
ORA-06512: at "MDSYS.SDO_RDF_TRIPLE_S", line 322
ID: 10868 Error: java.sql.SQLException: Unsupported feature
ID: 12002 Error: java.sql.SQLException: Unsupported feature
ID: 12818 Error: java.sql.SQLException: Unsupported feature
time (sec): 2342.0
time (min): 39.03333333333333
It loads the data,but I see all these errors.
Thanks
PrateekHi Prateek,
I have posted a response at Problem in loading Ntriple to Oracle .
Melli -
SOS!!!!----Error for Loading data from Oracle 11g to Essbase using ODI
Hi all.
I want to load data from oracle database to essbase using ODI.
I configure successfully the physical and logical Hyperion essbase on Topology Manager, and got the ESSBASE structure of BASIC app DEMO.
The problem is.
1. When I try view data right click on the essbase table,
va.sql.SQLException: Driver must be specified
at com.sunopsis.sql.SnpsConnection.a(SnpsConnection.java)
at com.sunopsis.sql.SnpsConnection.testConnection(SnpsConnection.java)
at com.sunopsis.sql.SnpsConnection.testConnection(SnpsConnection.java)
at com.sunopsis.graphical.frame.b.jc.bE(jc.java)
at com.sunopsis.graphical.frame.bo.bA(bo.java)
at com.sunopsis.graphical.frame.b.ja.dl(ja.java)
at com.sunopsis.graphical.frame.b.ja.<init>(ja.java)
at com.sunopsis.graphical.frame.b.jc.<init>(jc.java)
I got answer from Oracle Supporter It's ok, just omit it. Then the second problem appear.
2. I create an interface between oracle database and essbase, click the option "staging area deffirent from target"(meaning the staging is created at oracle database), and using IKM SQL to Hyperion Essbase(metadata), execute this interface
org.apache.bsf.BSFException: exception from Jython:
Traceback (innermost last):
File "<string>", line 61, in ?
com.hyperion.odi.essbase.ODIEssbaseException: Invalid value specified [RULES_FILE] for Load option [null]
at com.hyperion.odi.essbase.ODIEssbaseMetaWriter.validateLoadOptions(Unknown Source)
at com.hyperion.odi.essbase.AbstractEssbaseWriter.beginLoad(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
at org.python.core.PyMethod.__call__(PyMethod.java)
at org.python.core.PyObject.__call__(PyObject.java)
at org.python.core.PyInstance.invoke(PyInstance.java)
at org.python.pycode._pyx1.f$0(<string>:61)
at org.python.pycode._pyx1.call_function(<string>)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyCode.call(PyCode.java)
at org.python.core.Py.runCode(Py.java)
at org.python.core.Py.exec(Py.java)
I'm very confused by it. Anybody give me a solution or related docs.
Ethan.Hi ethan.....
U always need a driver to be present inside ur <ODI installation directory>\drivers folder.....for both the target and the source......Because ojdbc14.jar is the driver for oracle already present inside the drivers folder ....we don't have to do anything for it.....But for Essbase ...you need a driver......If u haven't already done this.....try this.....
Hope it helps...
Regards
Susane -
hi
when i create supplier in AP Super user,the supplier entry page got error:
Could not load application module 'oracle.apps.pos.supplier.server.SuppSummAM',is there anyboay could help me? thanks a lot!
metalink's solution is:
-- To implement the solution, please execute the following steps::
1. Using System Administrator Responsibility.
2. Navigate to Profiles > System.
3. Query for the Responsibility used and for Profile: MO: Operating Unit.
4. Kindly check the value attached to the security profile: MO: Operating Unit.
5. If security profile is not set, attach a value to it.
6. Delete the Browser and Apache Cache. Restart the Apache.
7. Re-test the issue again.
but it didn't work!Did you ever figure this out? I'm encountering the same issue.
Thanks. -
Extract tables from "Oracle Apss 11.0.3" and load it to "Oracle Apps 11i"
Hi hussein,
I am tasked to extract the following tables from Oracle Apps 11.0.3 and load it to Oracle Apps 11.5.10.2.
PO_VENDORS
PO_VENDOR_SITES_ALL
Can I use export / import?
Thanks a lotHi,
I believe export/import of individual apps tables is not supported due to objects dependency and refrential integrity.
Regards,
Hussein -
Hi,
After ORACLE 11G software installation i tried to change the ORACLE_HOME directory.
OS : RHEL 4.5
DB : 11.2.0
Previous Home Location :
[oracle@localhost ~]$ echo $ORACLE_HOME
/u01/oracle/prod/tech_st/product/11.2.0/db_1
Current Home Loc:
[oracle@localhost ~]$ echo $ORACLE_HOME
/u01/oracle/db/tech_st/product/11.2.0/db_1
When i am trying the DBCA command i am getting the below error:
[oracle@localhost ~]$ dbca
java.lang.UnsatisfiedLinkError: Can't load library: /u01/oracle/prod/tech_st/product/11.2.0/db_1/oui/lib/linux/liboraInstaller.so
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1650)
at java.lang.Runtime.load0(Runtime.java:769)
at java.lang.System.load(System.java:968)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:387)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:122)
at oracle.sysman.oii.oiip.oiipg.OiipgEnvironment.getEnv(OiipgEnvironment.java:201)
at oracle.sysman.oii.oiip.oiipg.OiipgPropertyLoader.initUnixPtrFileLoc(OiipgPropertyLoader.java:212)
at oracle.sysman.oii.oiip.oiipg.OiipgPropertyLoader.<clinit>(OiipgPropertyLoader.java:125)
at oracle.sysman.oii.oiic.OiicStandardInventorySession.updateProperties(OiicStandardInventorySession.java:492)
at oracle.sysman.oii.oiic.OiicStandardInventorySession.initSession(OiicStandardInventorySession.java:266)
at oracle.sysman.oii.oiic.OiicStandardInventorySession.initSession(OiicStandardInventorySession.java:240)
at oracle.sysman.oii.oiic.OiicStandardInventorySession.initSession(OiicStandardInventorySession.java:189)
at oracle.sysman.assistants.util.InventoryUtil.getOUIInvSession(InventoryUtil.java:346)
at oracle.sysman.assistants.util.InventoryUtil.getHomeName(InventoryUtil.java:87)
at oracle.sysman.assistants.util.OracleHome.getInventoryHomeName(OracleHome.java:1023)
at oracle.sysman.assistants.dbca.backend.Host.<init>(Host.java:798)
at oracle.sysman.assistants.dbca.ui.UIHost.<init>(UIHost.java:257)
at oracle.sysman.assistants.dbca.ui.InteractiveHost.<init>(InteractiveHost.java:54)
at oracle.sysman.assistants.dbca.Dbca.getHost(Dbca.java:164)
at oracle.sysman.assistants.dbca.Dbca.execute(Dbca.java:112)
at oracle.sysman.assistants.dbca.Dbca.main(Dbca.java:184)
Exception in thread "main" java.lang.UnsatisfiedLinkError: no oraInstaller in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:993)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:405)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:122)
at oracle.sysman.oii.oiip.oiipg.OiipgEnvironment.getEnv(OiipgEnvironment.java:201)
at oracle.sysman.oii.oiip.oiipg.OiipgPropertyLoader.initUnixPtrFileLoc(OiipgPropertyLoader.java:212)
at oracle.sysman.oii.oiip.oiipg.OiipgPropertyLoader.<clinit>(OiipgPropertyLoader.java:125)
at oracle.sysman.oii.oiic.OiicStandardInventorySession.updateProperties(OiicStandardInventorySession.java:492)
at oracle.sysman.oii.oiic.OiicStandardInventorySession.initSession(OiicStandardInventorySession.java:266)
at oracle.sysman.oii.oiic.OiicStandardInventorySession.initSession(OiicStandardInventorySession.java:240)
at oracle.sysman.oii.oiic.OiicStandardInventorySession.initSession(OiicStandardInventorySession.java:189)
at oracle.sysman.assistants.util.InventoryUtil.getOUIInvSession(InventoryUtil.java:346)
at oracle.sysman.assistants.util.InventoryUtil.getHomeName(InventoryUtil.java:87)
at oracle.sysman.assistants.util.OracleHome.getInventoryHomeName(OracleHome.java:1023)
at oracle.sysman.assistants.dbca.backend.Host.<init>(Host.java:798)
at oracle.sysman.assistants.dbca.ui.UIHost.<init>(UIHost.java:257)
at oracle.sysman.assistants.dbca.ui.InteractiveHost.<init>(InteractiveHost.java:54)
at oracle.sysman.assistants.dbca.Dbca.getHost(Dbca.java:164)
at oracle.sysman.assistants.dbca.Dbca.execute(Dbca.java:112)
at oracle.sysman.assistants.dbca.Dbca.main(Dbca.java:184)
[oracle@localhost ~]$
I tried all possible ways with google help but still i am facing the same issue.Kindly check and suggest to solve the issue.
Thanks in advance.
Vijay.Hi all,
I give you the clear details about the issue what i am currently facing,
1. I installed the 11g (11.2.0) database alone(No EBS) in my local vmware machine.
2. Created my ORACLE_HOME under /u01/oracle/prod/tech_st/product/11.2.0/db_1 directory after that i tried to change my home location from /u01/oracle/prod/tech_st/product/11.2.0/db_1 location to /u01/oracle/db/tech_st/product/11.2.0/db_1 location, like created /u01/oracle/db directory and moved files from /u01/oracle/prod location.
3. I changed my bash_profile and exported home with the modified location also deregistered an old home and registered the new home.
4. When i am issuing echo $ORACLE_HOME it is showing the current home location and ORACLE_SID is same what i created before.
5. But when i am trying to create one more db using DBCA utility it is through the above error.
Please suggest me is it possible to change the location after db creation or any extra steps i have to do for this issue.
Thanks. -
Require Help on Load Testing for Oracle Applications
Hi,
I have to do a Load Testing on Oracle Application 11i. I am not able to understand from where do I need to start.
Could any one please help on this ?
Ramu.The tool which I am using for this is "Oracle Application Testing Suite".
Any help welcome !
Ramu -
API to load suppler in oracle apps 11.5.10.2
Hi,
Can anyone tell, is there any API to load supplier in oracle apps 11.5.10.2?
Thanks In Advance,
RRHi All,
I have got the API to load supplier, supplier sites and supplier contacts. API name is ap_po_vendors_apis_pkg.insert_new_vendor, ap_po_vendors_apis_pkg.insert_new_vendor_site and ap_po_vendors_apis_pkg.insert_new_vendor_contact. I am able to load supplier using that api but not able to load supplier sites. Code compiles successfully but does'nt add site to the supplier. My code is below -
DECLARE
l_vendor_site_id number;
v_vendor_status varchar2(15);
v_err_msg varchar2(3000);
l_user_id NUMBER(10);
l_resp_id NUMBER(10);
l_appl_id NUMBER(10);
BEGIN
fnd_global.apps_initialize(29563,54351,200);
/*Create supplier sites*/
ap_po_vendors_apis_pkg.insert_new_vendor_site
(x_vendor_site_id => l_vendor_site_id,
x_status =>v_vendor_status,
x_exception_msg => v_err_msg,
p_vendor_site_code => 'KBC',
p_vendor_id => 69349,
p_org_id =>1198,
p_address_line1 => '105,Milverton Avenue,',
p_address_line2 =>null,
p_address_line3 =>null,
p_address_line4 =>null,
p_city => 'Shanghai',
p_state => null,
p_zip => '200232',
p_province =>null,
p_county =>null,
p_country => null,
p_area_code =>null,
p_phone =>null,
p_fax_area_code =>null,
p_fax =>null,
p_email_address =>null,
p_purchasing_site_flag => 'Y',
p_pay_site_flag => 'Y',
p_rfq_only_site_flag => 'N',
p_source => null,
p_what_to_import => null,
p_commit_size => null);
COMMIT;
DBMS_OUTPUT.PUT_LINE('VENDOR SITE ID :'|| l_vendor_site_id||v_vendor_status||v_err_msg);
EXCEPTION
WHEN others then
DBMS_OUTPUT.PUT_LINE('Errors :'||sqlerrm);
END;
Can any one tell what is wrong in it?
Thanks,
RR -
Arabic Character while loading in to Oracle.
Hi All,
OWB config is as follows:
OWB : 9.2
Oracle 9i database.
I am able to load Arabic characters from a source table to a target table
using OWB mappings but when i try to load a flat file the characters get jumbled.
My environment variables :--
IN
Database character set AR8ISO8859P6
Database National character set AL16UTF16
Database NLS_language AMERICAN
Database NLS_territory America
all settings obtained from v$nls_parameters
ON Windows server
in registry
NLS_LANG = AMERICAN_AMERICA.AR8MSWIN1256
I have tried changing the NLS_LANG in the registry to AR8ISO8859P6 but still
the same results.
Does OWB support Arabic character, by default at time of installation i must have selected American as language parameter?
If ans to above query is 'Yes' & it i manage to set Language to Arabic what will be impact on other components e.g. OEM, OWM etc.
Thanks in Advance.
Regards,
VidyanandVidyanand,
OWB supports Arabic language to add support for objects translations in the repository (done via OWB Repository Assistant).
OWB also supports data in any language that the database is configured for, as you could see by moving data from table to table with OWB mapping.
I suspect the problem loading flat file is not with OWB. Can you try loading that same file with SQL*Loader? You can read more on the subject in "Handling Different Character Encoding Schemes" section of SQL*Loader reference (in "Oracle 9i Database Utilities").
Nikolai -
Open an Excel file to read and load it into Oracle - Oracle COM Automation
Hello All,
Please I need your help for this problem:
I need to load Excel sheet data (read the data) and load it into Oracle database (insert into a table), the excel file created and has data before, and saved with xls format. and I need to do that using the Oracle® COM Automation (ordcom package). The examples I found open and create a new workbook and deletes the old saved data, so I need to open (edit) the sheet just for reading.
I appreciate ans sample code to help me do that, Please help me out. This is very urgent.
Thanks alot and best regards,
NabilFor reading from Excel, there are some easy ways like Oracle Heterogenious Services. If you want to use COM then:
My orawpcom.dll file exists in the directory C:\oracle\product\10.2.0\db_2\bin
C:\oracle\product\10.2.0\db_2\bin>dir orawpco*.dll
Volume in drive C is C_Drive
Volume Serial Number is 8A93-1441
Directory of C:\oracle\product\10.2.0\db_2\bin
03/20/2006 05:06 PM 61,440 orawpcom.dll
10/11/2006 03:20 PM 81,920 orawpcom10.dll
2 File(s) 143,360 bytes
0 Dir(s) 65,407,717,376 bytes free
C:\oracle\product\10.2.0\db_2\bin>Information about my database version.
SQL> /* My databaser version */
SQL> SELECT * FROM v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL> Preparing the user SCOTT for COM automation.
Now, I will run comwrap.sql from scott user. I have edited the comwrap.sql to adjust my library path here:
create library utils_lib as 'C:\oracle\product\10.2.0\db_3\bin\orawpcom.dll';Running comwrap.sql and ExcelSolution.sql .....
SQL> conn scott@orclsb
Enter password: *****
Connected.
SQL> @c:\comwrap.sql
drop library utils_lib
ERROR at line 1:
ORA-04043: object UTILS_LIB does not exist
Library created.
drop package ORDCOM
ERROR at line 1:
ORA-04043: object ORDCOM does not exist
drop TYPE OAArgTable
ERROR at line 1:
ORA-04043: object OAARGTABLE does not exist
Type created.
drop TYPE OAArgTypeTable
ERROR at line 1:
ORA-04043: object OAARGTYPETABLE does not exist
Type created.
drop function OAgetNumber
ERROR at line 1:
ORA-04043: object OAGETNUMBER does not exist
Function created.
drop function OAgetStr
ERROR at line 1:
ORA-04043: object OAGETSTR does not exist
Function created.
drop function OAgetBool
ERROR at line 1:
ORA-04043: object OAGETBOOL does not exist
Function created.
drop function OAsetNumber
ERROR at line 1:
ORA-04043: object OASETNUMBER does not exist
Function created.
drop function OAsetString
ERROR at line 1:
ORA-04043: object OASETSTRING does not exist
Function created.
drop function OAsetBoolean
ERROR at line 1:
ORA-04043: object OASETBOOLEAN does not exist
Function created.
drop function OAInvokeDouble
ERROR at line 1:
ORA-04043: object OAINVOKEDOUBLE does not exist
Function created.
drop function OAInvokeBoolean
ERROR at line 1:
ORA-04043: object OAINVOKEBOOLEAN does not exist
Function created.
drop function OAInvokeString
ERROR at line 1:
ORA-04043: object OAINVOKESTRING does not exist
Function created.
drop function OACreate
ERROR at line 1:
ORA-04043: object OACREATE does not exist
Function created.
drop function OADestroy
ERROR at line 1:
ORA-04043: object OADESTROY does not exist
Function created.
drop function OAGetLastError
ERROR at line 1:
ORA-04043: object OAGETLASTERROR does not exist
Function created.
drop function OAQueryMethods
ERROR at line 1:
ORA-04043: object OAQUERYMETHODS does not exist
Function created.
Package created.
Package body created.
SQL>
SQL> @c:\ExcelSolution.sql
drop package ORDExcel
ERROR at line 1:
ORA-04043: object ORDEXCEL does not exist
Package created.
Package body created.
SQL>
I have modified ORDExcel a little bit and renamed it as ORDExcelSB. You need this version for reading the excel.
SQL> @C:\ExcelSolutionSB.sql
Package dropped.
Package created.
Package body created.
SQL> The actual code of ORDExcelSB (ExcelSolutionSB.sql) Is:
set serveroutput on;
drop package ORDExcelSB;
CREATE PACKAGE ORDExcelSB AS
/* Declare externally callable subprograms. */
FUNCTION CreateExcelApplication(servername VARCHAR2) RETURN binary_integer;
FUNCTION OpenExcelFile(filename VARCHAR2, sheetname VARCHAR2) RETURN binary_integer;
FUNCTION CreateExcelWorkSheet(servername varchar2) return binary_integer;
FUNCTION InsertData(range varchar2, data binary_integer, type varchar2) return binary_integer;
FUNCTION InsertDataReal(range varchar2, data double precision, type varchar2) return binary_integer;
FUNCTION GetDataNum(range varchar2) return binary_integer;
FUNCTION GetDataStr(range varchar2) return varchar2;
FUNCTION GetDataReal(range varchar2) return double precision;
FUNCTION GetDataDate(range varchar2) return date;
FUNCTION InsertData(range varchar2, data varchar2, type varchar2) return binary_integer;
FUNCTION InsertData(range varchar2, data Date, type varchar2) return binary_integer;
FUNCTION InsertChart(xpos binary_integer, ypos binary_integer, width binary_integer,
height binary_integer, range varchar2, type varchar2) return binary_integer;
FUNCTION SaveExcelFile(filename varchar2) return binary_integer;
FUNCTION ExitExcel return binary_integer;
END ORDExcelSB;
CREATE PACKAGE BODY ORDExcelSB AS
DummyToken binary_integer;
applicationToken binary_integer:=-1;
WorkBooksToken binary_integer:=-1;
WorkBookToken binary_integer:=-1;
WorkSheetToken binary_integer:=-1;
WorkSheetToken1 binary_integer:=-1;
RangeToken binary_integer:=-1;
ChartObjectToken binary_integer:=-1;
ChartObject1 binary_integer:=-1;
Chart1Token binary_integer:=-1;
i binary_integer;
retNum binary_integer;
retReal double precision;
retStr varchar2(255);
retDate DATE;
error_src varchar2(255);
error_description varchar2(255);
error_helpfile varchar2(255);
error_helpID binary_integer;
FUNCTION CreateExcelApplication(servername VARCHAR2) RETURN binary_integer IS
BEGIN
dbms_output.put_line('Creating Excel application...');
i := OrdCOM.CreateObject('Excel.Application',
0,
servername,
applicationToken);
IF (i != 0) THEN
ORDCOM.GetLastError(error_src,
error_description,
error_helpfile,
error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
dbms_output.put_line('Invoking Workbooks...');
i := ORDCOM.GetProperty(applicationToken,
'WorkBooks',
0,
WorkBooksToken);
IF (i != 0) THEN
ORDCOM.GetLastError(error_src,
error_description,
error_helpfile,
error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
RETURN i;
END CreateExcelApplication;
FUNCTION OpenExcelFile(filename VARCHAR2, sheetname VARCHAR2)
RETURN binary_integer IS
BEGIN
dbms_output.put_line('Opening Excel file ' || filename || ' ...');
ORDCOM.InitArg();
ORDCOM.SetArg(filename, 'BSTR');
i := ORDCOM.Invoke(WorkBooksToken, 'Open', 1, DummyToken);
IF (i != 0) THEN
ORDCOM.GetLastError(error_src,
error_description,
error_helpfile,
error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
dbms_output.put_line('Opening WorkBook');
i := ORDCOM.GetProperty(applicationToken,
'ActiveWorkbook',
0,
WorkBookToken);
IF (i != 0) THEN
ORDCOM.GetLastError(error_src,
error_description,
error_helpfile,
error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
dbms_output.put_line('Invoking WorkSheets..');
i := ORDCOM.GetProperty(applicationToken,
'WorkSheets',
0,
WorkSheetToken1);
IF (i != 0) THEN
ORDCOM.GetLastError(error_src,
error_description,
error_helpfile,
error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
dbms_output.put_line('Invoking WorkSheet');
ORDCOM.InitArg();
ORDCOM.SetArg(sheetname, 'BSTR');
i := ORDCOM.GetProperty(WorkBookToken, 'Sheets', 1, WorkSheetToken);
IF (i != 0) THEN
ORDCOM.GetLastError(error_src,
error_description,
error_helpfile,
error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
dbms_output.put_line('Opened ');
RETURN i;
END OpenExcelFile;
* Invoke the Excel Automation Server and create a Workbook object as
* well as a worksheet object
FUNCTION CreateExcelWorkSheet(servername varchar2) return binary_integer IS
BEGIN
dbms_output.put_line('Creating Excel application...');
i:=ORDCOM.CreateObject('Excel.Application', 0, servername,applicationToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
dbms_output.put_line('Invoking Workbooks...');
/*i:=ORDCOM.Invoke(applicationToken, 'WorkBooks',0, WorkBooksToken);*/
i:=ORDCOM.GetProperty(applicationToken, 'WorkBooks', 0, WorkBooksToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
dbms_output.put_line('Invoking Add to WorkBooks...');
ORDCOM.InitArg();
ORDCOM.SetArg(-4167,'I4');
i:=ORDCOM.Invoke(WorkBooksToken, 'Add', 1, WorkBookToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
dbms_output.put_line('Invoking WorkSheets..');
ORDCOM.InitArg();
ORDCOM.SetArg('Sheet 1','BSTR');
/* i:=ORDCOM.Invoke(applicationToken, 'WorkSheets', 1, WorkSheetToken);*/
i:=ORDCOM.GetProperty(applicationToken, 'WorkSheets', 0, WorkSheetToken1);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.Invoke(WorkSheetToken1, 'Add', 0, WorkSheetToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
return i;
END CreateExcelWorkSheet;
* Invoke the Range method to obtain a range token. Then set the property value
* at the specified range to the data required
FUNCTION InsertData( range varchar2,
data binary_integer,
type varchar2)
RETURN binary_integer IS
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i:=ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.SetProperty(RangeToken, 'Value', data, type);
IF (i=0) THEN
i:=ORDCOM.SetProperty(RangeToken, 'ColumnWidth', 15, 'I2');
END IF;
i:=ORDCOM.DestroyObject(RangeToken);
RETURN i;
END InsertData;
* Invoke the Range method to obtain a range token. Then set the property value
* at the specified range to the data required
FUNCTION GetDataNum( range varchar2)
RETURN binary_integer IS
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i:=ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.GetProperty(RangeToken, 'Value', 0, retNum);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.DestroyObject(RangeToken);
RETURN retNum;
END GetDataNum;
FUNCTION GetDataReal( range varchar2)
RETURN double precision IS
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i:=ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.GetProperty(RangeToken, 'Value', 0, retReal);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.DestroyObject(RangeToken);
RETURN retReal;
END GetDataReal;
FUNCTION GetDataStr( range varchar2)
RETURN varchar2 IS
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i:=ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.GetProperty(RangeToken, 'Value', 0, retStr);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.DestroyObject(RangeToken);
RETURN retStr;
END GetDataStr;
FUNCTION GetDataDate( range varchar2)
RETURN Date IS
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i:=ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.GetProperty(RangeToken, 'Value', 0, retDate);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.DestroyObject(RangeToken);
RETURN retDate;
END GetDataDate;
FUNCTION InsertData( range varchar2,
data DATE,
type varchar2)
RETURN binary_integer IS
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i:=ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
i:=ORDCOM.SetProperty(RangeToken, 'Value', data, type);
i:=ORDCOM.DestroyObject(RangeToken);
RETURN i;
END InsertData;
FUNCTION InsertDataReal( range varchar2,
data double precision,
type varchar2)
RETURN binary_integer IS
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i:=ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
i:=ORDCOM.SetProperty(RangeToken, 'Value', data, type);
i:=ORDCOM.DestroyObject(RangeToken);
RETURN i;
END InsertDataReal;
FUNCTION InsertData( range varchar2,
data varchar2,
type varchar2)
RETURN binary_integer IS
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i:=ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
i:=ORDCOM.SetProperty(RangeToken, 'Value', data, type);
i:=ORDCOM.DestroyObject(RangeToken);
RETURN i;
END InsertData;
* Insert a chart at the x and y position of the spreadsheet with the desired
* height and width. Then also uses the ChartWizard to draw the graph with data
* in a specified range area with a specified charting type.
FUNCTION InsertChart(xpos binary_integer, ypos binary_integer,
width binary_integer, height binary_integer,
range varchar2, type varchar2) RETURN binary_integer IS
charttype binary_integer:= -4099;
BEGIN
ORDCOM.InitArg();
i:=ORDCOM.GetProperty(WorkSheetToken, 'ChartObjects', 0, ChartObjectToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
ORDCOM.InitArg();
ORDCOM.SetArg(xpos,'I2');
ORDCOM.SetArg(ypos,'I2');
ORDCOM.SetArg(width,'I2');
ORDCOM.SetArg(height,'I2');
i:=ORDCOM.Invoke(ChartObjectToken, 'Add', 4, ChartObject1);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.GetProperty(ChartObject1, 'Chart', 0,Chart1Token);
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i:=ORDCOM.GetProperty(WorkSheetToken,'Range', 1, RangeToken);
ORDCOM.InitArg();
ORDCOM.SetArg(RangeToken, 'DISPATCH');
IF type='xlPie' THEN
charttype := -4102;
ELSIF type='xl3DBar' THEN
charttype := -4099;
ELSIF type='xlBar' THEN
charttype := 2;
ELSIF type='xl3dLine' THEN
charttype:= -4101;
END IF;
ORDCOM.SetArg(charttype,'I4');
i:=ORDCOM.Invoke(Chart1Token,'ChartWizard', 2, DummyToken);
i:=ORDCOM.DestroyObject(RangeToken);
i:=ORDCOM.DestroyObject(ChartObjectToken);
i:=ORDCOM.DestroyObject(ChartObject1);
i:=ORDCOM.DestroyObject(Chart1Token);
RETURN i;
END InsertChart;
* Save the Excel File. WARNING: Do not specify a filename that already exist
* since there is no graphical context, Oracle would not be able to pop
* out a warning message for existing file. This causes Excel to hang
FUNCTION SaveExcelFile(filename varchar2) return binary_integer IS
BEGIN
dbms_output.put_line('Saving Excel file...');
ORDCOM.InitArg();
ORDCOM.SetArg(filename,'BSTR');
i:=ORDCOM.Invoke(WorkBookToken, 'SaveAs', 1, DummyToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
RETURN i;
END SaveExcelFile;
* Close the Excel spreadsheet and exit from it
FUNCTION ExitExcel return binary_integer is
BEGIN
dbms_output.put_line('Closing workbook and quitting...');
ORDCOM.InitArg();
ORDCOM.InitArg();
ORDCOM.SetArg(FALSE,'BOOL');
dbms_output.put_line('Closing workbook...');
i:=ORDCOM.Invoke(WorkBookToken, 'Close', 0, DummyToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.DestroyObject(WorkBookToken);
ORDCOM.InitArg();
dbms_output.put_line('Closing workbooks...');
i:=ORDCOM.Invoke(WorkBooksToken, 'Close', 0, DummyToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.DestroyObject(WorkBooksToken);
i:=ORDCOM.Invoke(applicationToken, 'Quit', 0, DummyToken);
IF (i!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile, error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);
dbms_output.put_line(error_helpfile);
END IF;
i:=ORDCOM.DestroyObject(WorkSheetToken);
i:=ORDCOM.DestroyObject(WorkSheetToken1);
i:=ORDCOM.DestroyObject(applicationToken);
i:=ORDCOM.DestroyObject(ChartObjectToken);
i:=ORDCOM.DestroyObject(Chart1Token);
i:=ORDCOM.DestroyObject(ChartObject1);
i:=ORDCOM.DestroyObject(dummyToken);
RETURN i;
END ExitExcel;
END ORDExcelSB;
/I have created an excel named as C:\Example.xls.
Name SlNo Job Dept Salary Bonus
Saubhik Banerjee 706090 IT Specialist GBS 100 10
Partha S Mohanty 706091 Pogrmmer APPS 70 20
Partha Sarkar 889300 Condultant FIN 200 30
Useless 98009 PM PM 900 90
SQL> SET SERVEROUT ON
SQL> DECLARE
2
3 v_Name varchar2(90);
4 v_SlNo varchar2(100);
5 v_Job varchar2(200);
6 v_Dept varchar2(100);
7 v_recon_remark varchar2(50);
8 v_sal_amt_usd number;
9 v_Bonus_amt_usd number;
10
11 result INTEGER;
12
13 i binary_integer;
14 filename varchar2(255);
15
16 BEGIN
17
18 filename := 'C:\Example.xls';
19
20 result := ORDExcelSB.CreateExcelApplication('');
21 result := ORDExcelSB.OpenExcelFile(filename, 'Sheet1');
22
23 /* Excluding the header row and reading the first 5 row */
24 FOR n in 2 .. 5 LOOP
25
26 v_Name := ORDExcelSB.GetDataStr('A' || n);
27 v_SlNo := ORDExcelSB.GetDataReal('B' || n);
28 v_Job := ORDExcelSB.GetDataStr('C' || n);
29 v_Dept := ORDExcelSB.GetDataStr('D' || n);
30 v_sal_amt_usd := ORDExcelSB.GetDataNum('E' || n);
31 v_Bonus_amt_usd := ORDExcelSB.GetDataNum('F' || n);
32
33 dbms_output.put_line(v_Name || ' ' || v_SlNo || ' ' || v_Job || ' ' ||
34 v_Dept || ' ' || v_sal_amt_usd || ' ' ||
35 v_Bonus_amt_usd);
36
37 END LOOP;
38
39 result := ORDExcelSB.ExitExcel();
40 EXCEPTION
41 WHEN OTHERS THEN
42 result := ORDExcelSB.ExitExcel();
43 RAISE;
44 END;
45 /
Creating Excel application...
Invoking Workbooks...
Opening Excel file C:\Example.xls ...
Opening WorkBook
Invoking WorkSheets..
Invoking WorkSheet
Opened
Saubhik Banerjee 706090 IT Specialist GBS 100 10
Partha S Mohanty 706091 Pogrmmer APPS 70 20
Partha Sarkar 889300 Condultant FIN 200 30
Useless 98009 PM PM 900 90
Closing workbook and quitting...
Closing workbook...
Closing workbooks...
PL/SQL procedure successfully completed.
SQL> Although, You haven't asked, but you can use this code to write to excel file (.xls)
DECLARE
CURSOR c1 IS
SELECT empno, ename, dname, sal, hiredate
FROM emp e, dept d
WHERE e.deptno = d.deptno;
error_message varchar2(1200);
n binary_integer:=2;
i binary_integer;
filename varchar2(255);
cellIndex varchar2(40);
cellValue varchar2(40);
cellColumn varchar2(10);
returnedTime varchar2(20);
currencyvalue double precision;
datevalue DATE;
empno binary_integer;
looptext varchar2(20);
error_src varchar2(255);
error_description varchar2(255);
error_helpfile varchar2(255);
error_helpID binary_integer;
begin
filename:='c:\example2.xls';
i:=ORDExcel.CreateExcelWorkSheet('');
i:=ORDExcel.InsertData('A1', 'EmpNo', 'BSTR');
i:=ORDExcel.InsertData('B1', 'Name', 'BSTR');
i:=ORDExcel.InsertData('C1', 'Dept', 'BSTR');
i:=ORDExcel.InsertData('D1', 'Salary', 'BSTR');
i:=ORDExcel.InsertData('E1', 'HireDate', 'BSTR');
For c1_rec IN c1 LOOP
cellColumn:=TO_CHAR(n);
cellIndex:=CONCAT('A',cellColumn);
cellValue:=TO_CHAR(c1_rec.empno);
empno:=cellValue;
i:=ORDExcel.InsertData(cellIndex, empno, 'I2');
cellIndex:=CONCAT('B',cellColumn);
cellValue:=c1_rec.ename;
i:=ORDExcel.InsertData(cellIndex, cellValue, 'BSTR');
cellIndex:=CONCAT('C',cellColumn);
cellValue:=c1_rec.dname;
i:=ORDExcel.InsertData(cellIndex, cellValue, 'BSTR');
cellIndex:=CONCAT('D',cellColumn);
cellValue:=c1_rec.sal;
currencyValue:=cellValue;
i:=ORDExcel.InsertData(cellIndex, currencyValue, 'CY');
cellIndex:=CONCAT('E',cellColumn);
dateValue:=c1_rec.hiredate;
i:=ORDExcel.InsertData(cellIndex, dateValue, 'DATE');
n:=n+1;
END LOOP;
i:=ORDExcel.SaveExcelFile(filename);
i:=ORDExcel.ExitExcel();
EXCEPTION
WHEN OTHERS THEN
i:=ORDExcel.ExitExcel();
RAISE;
END; -
After upgrading from 10.2.0.2 to 10.2.0.4, I am unable to run any Console commands. The errors I get are as follows:
l1eddb01:L1CORP > emctl status dbconsole
Failed to load Main Class: oracle.sysman.emSDK.conf.TargetInstaller
Failed to load Main Class: oracle.sysman.emSDK.conf.TargetInstaller
Failed to load Main Class: oracle.sysman.emSDK.conf.TargetInstaller
OC4J Configuration issue. /opt/oracle/edmdb/product/10.2.0.4/oc4j/j2ee/OC4J_DBConsole__L1CORP not found.
l1eddb01:L1CORP >
Does anyone have any idea what happened during the upgrade that would have caused emctl, emca, etc. commands to stop working?Don't know why it has not re-created the OC4J container.
Do you have anything in /opt/oracle/edmdb/product/10.2.0.4/oc4j/j2ee/
Have you tried re-creating it?
./emca -config dbcontrol db
If not try re-running dbua. -
How to list the JAR files loaded into the Oracle Database ?
How to list the JAR files loaded into the Oracle Database ?
From 11.1 onwards, the below two views are available to identify the jar files loaded into the Database.
JAVAJAR$
JAVAJAROBJECTS$
By querying the JAVAJAR$ view you can know information about the JAR files loaded into the Database and using JAVAJAROBJECTS$ view you can find all the java objects associated with the given JAR file.
These views are populated everytime you use LOADJAVA with "-jarsasdbobjects" option to load your custom java classes.
But unfortunately this feature is available only from 11.1 onwards and there is no clear workaround for above in 10.2 or earlier. -
Hi,
I' have used Tomcat 4.0.3 with XSQL Servlet 9.2 for about a half year. All is working fine. When I now change to 4.1.18 the most things are also working fine. The are to problems:
1. I have to save the XSQLConfig.xml in a jar file.
2. My fop serializer doesn't work any longer. I'm getting all the time the following error: XSQL-022: Cannot load serializer class oracle.xml.xsql.serializers.fop203.
I'm using the XDK 9.2.0.4 with jsdk 1.4.1 and tomcat 4.1.18 on Redhat Linux.
Has anyone had have the same problem? Has anyone a solution for this problem?
Regards
UweDoes the XSQLSampleSerializer exhibit the same problem?
That is, can we rule out the fact that it's related at all to FOP?
If you browse the following page, does it work?
<?xml version="1.0"?>
<?xml-stylesheet serializer="java:oracle.xml.xsql.serializers.XSQLSampleSerializer"?>
<foo-with-java/>This sample serializer should be in your xsqlserializers.jar file.
Maybe you are looking for
-
How to move one screen to another screen Webdynpro ?
Hi, How to move from one screen to another screen Webdypro ? Best Regards, Kishore
-
Contract - problem with attachements (empty field in LOIO_OBJID)
Hi Guys, We are using extended classic scenario of SRM 4.0 (SRM Server 500) and our latest support package is SAPKIBKS12. We have the following problem with contracts. Sometimes when an attachment is added to a contract the system does not fill the f
-
How can I enable my disabled Ipod Touch 1g
How can I enable my disabled Ipod Touch 1g? Thank You
-
I have 8 DVDs of a backup I did on my PC before I restored it. iTunes will backup the first DVD fine. When I put in my second DVD, I get the error "unknown error occurred (-69)". Also if I try to load the disc later, iTunes just freezes up until I ej
-
Hi All, I am in the market to purchase a Portable Hard Disk Drive, as I had purchased an EZQ drive that is now DOA. I am interested in the LaCie Rugged line, but I was looking for more storage space for a good price. Any suggestions or help would be