Oracle COM Automation - Oracle 10g 10.2.0.1.0
Hi,
I am trying to install the COM automation features available in Oracle 10g. But my installation of Oracle only contains the COM demo scripts. There is no comwrap.sql that installs the ORDCOM api. I looked through the products.xml file in my staging area and only found an entry for 'Oracle COM Automation Feature Demos'.
Anyone know what I am missing.
Thanks.
Hi,
I looked through the products.xml file in my staging area and only found an entry for 'Oracle COM Automation Feature Demos'. Did you check your ORACLE_HOME\com directory?
From the [Oracle® COM Automation Feature Developers Guide | http://download.oracle.com/docs/cd/B19306_01/win.102/b14310/toc.htm]:
PL/SQL Components
* Oracle COM Automation PL/SQL feature (orawpcomVER.dll)
* PL/SQL installation and definition script (comwrap.sql)
* Oracle COM Automation demonstration programs
* Message files (such as comus.msb)
Oracle COM Automation PL/SQL feature orawpcomVER.dll is located in the ORACLE_BASE\ORACLE_HOME\bin directory.
All other components are located in the ORACLE_BASE\ORACLE_HOME\com directory.
http://download.oracle.com/docs/cd/B19306_01/win.102/b14310/ch2insta.htm#sthref51
Similar Messages
-
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; -
Oracle COM Automation Excel Charts
Hi All
I read and manged to get all the COM Demos working from the COM Automation Feature Developer's Guide <http://www.oracle.com/pls/db102/to_toc?pathname=win.102%2Fb14310%2Ftoc.htm&remark=portal+%28Windows%29>.
I have changed the Excel Demo to match what I want to use in my Database. Everything works great except the Excel Chart portion. I what to have Chart Type line but when I use xlLine, the chart still produces a bar chart.
Does anyone know how to produce a Line Chart in Excel using Oracle COM Automation?
I am using Windows Server 2003, Office Standard Edition 2003, and Oracle 10.2
My modified sql is
<pre>
set serveroutput on;
declare
CURSOR c1 IS
SELECT time, flow
FROM RT_FLOW_TEST
WHERE time > to_date('31-dec-2006','dd-mon-yyyy')
ORDER BY time;
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;
looptext varchar2(20);
error_src varchar2(255);
error_description varchar2(255);
error_helpfile varchar2(255);
error_helpID binary_integer;
begin
filename:='c:\reports\2007\overnight\meadowlandsflow';
i:=ORDExcel.CreateExcelWorkSheet('');
i:=ORDExcel.InsertData('A1', 'Day', 'BSTR');
i:=ORDExcel.InsertData('B1', 'Flow', 'BSTR');
For c1_rec IN c1 LOOP
cellColumn:=TO_CHAR(n);
cellIndex:=CONCAT('A',cellColumn);
dateValue:=c1_rec.time;
i:=ORDExcel.InsertData(cellIndex, dateValue, 'DATE');
cellIndex:=CONCAT('B',cellColumn);
cellValue:=c1_rec.flow;
i:=ORDExcel.InsertData(cellIndex, cellValue, 'BSTR');
n:=n+1;
END LOOP;
i:=ORDExcel.InsertChart(100,10,400,400,'Sheet2!$B$2:$B$365,Sheet2!$A$2:$A$365','xlLine');
select TO_CHAR(SYSDATE, 'DD-MON-YYYY') into returnedTime from dual;
filename:=CONCAT(filename, returnedTime);
i:=ORDExcel.SaveExcelFile(filename);
i:=ORDExcel.ExitExcel();
end;
</pre>
Any help is much appreciated.
Cheers
BradHi Saubhik ,
i saw that thread, but my question was that is there any limitation that the in order to use Oracle COM Automation should the OS on which oracle database is installed has to be Windows only.
or can it be implement in oracle database installed in Linux OS also ?
Edited by: krishna_36 on May 9, 2011 4:38 AM -
We are getting an Error Unable to Open IPC Connection while using COM Automation feature of Oracle 8i.
As specified in the documentation Listener.ora and TNSNames.ora are configured. The listener process is also running properly. But, still we are gettin this problem. What do we do?.
Domain Name : BSSL
Database Name : SATS
SID : SATS
TNSNames.ORA
===========
# D:\ORACLE\ORA81\NETWORK\ADMIN\TNSNAMES.ORA Configuration File:D:\Oracle\Ora81\network\admin\tnsnames.ora
# Generated by Oracle Net8 Assistant
EXTPROC_CONNECTION_DATA.BSSL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
SATS.BSSL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = vmk)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = SATS)
Config.ORA
==========
# D:\ORACLE\ORA81\NETWORK\ADMIN\LISTENER.ORA Configuration File:D:\Oracle\Ora81\network\admin\listener.ora
# Generated by Oracle Net8 Assistant
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = vmk)(PORT = 1521))
(DESCRIPTION =
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
(ADDRESS = (PROTOCOL = TCP)(HOST = vmk)(PORT = 2481))
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\Oracle\Ora81)
(PROGRAM = extproc)
(SID_DESC =
(GLOBAL_DBNAME = SATS)
(ORACLE_HOME = D:\Oracle\Ora81)
(SID_NAME = SATS)
After Installing Oracle, If we get this error, is the only solution Re-installing Oracle? Often this is troubling with this error? Can we rely on this option and continue to use Oracle COM Automation feature in our Application?
Please suggest.
My mail id:
[email protected]
[email protected]
nullcan we use this COM Automation with Oracle 9i Application server
and Oracle 8i database?
Please help me.
Thanks in advance.
Saravanan -
Format Excel sheet - Oracle COM Automation
Dear gentlemen,
I would like to get your help to generate a formatted excel sheet using Oracle COM Automation, I may don’t know the correct properties to use, or don’t know how to use it.
For example:
To set a cell value I use this line:
hresult:=Ordcom.SetProperty(RangeHandle, 'Value', data, 'BSTR');
and when I tried to fill the same cell with a yello color I used this line:
hresult:=Ordcom.SetProperty(RangeHandle, 'Interior.Color', 65535, 'BSTR');
but that has no effect at all, so please advise what is wrong, this may apply also for the most properties such as “Font.Bold”.
I appreciate so much any help from you.
Best regards,
NabilHere is another version of my package ORDExcelSB. It includes almost all the formatting needs in Excel.
Package Specification:_
CREATE OR REPLACE PACKAGE ORDExcelSB AS
/* Saubhik: These constants are added */
BorderEdgeLeft CONSTANT BINARY_INTEGER:= 7;
BorderEdgeTop CONSTANT BINARY_INTEGER:=8;
BorderEdgeBottom CONSTANT BINARY_INTEGER:=9;
BorderEdgeRight CONSTANT BINARY_INTEGER:=10;
BorderInsideVertical CONSTANT BINARY_INTEGER:=11;
BorderInsideHorizontal CONSTANT BINARY_INTEGER:=12;
/* Declare externally callable subprograms. */
/* Start: These functions are newly aded by Saubhik Banerjee */
FUNCTION CreateExcelApplication(servername VARCHAR2) RETURN binary_integer;
FUNCTION OpenExcelFile(filename VARCHAR2, sheetname VARCHAR2)
RETURN binary_integer;
FUNCTION SetCellColor(range varchar2, style INTEGER)
return binary_integer;
FUNCTION SetCellBorder(range varchar2, BordersIndex BINARY_INTEGER, BorderStyle BINARY_INTEGER)
return binary_integer;
FUNCTION FormatFontStyle(range varchar2, fontstyle varchar2)
return binary_integer;
FUNCTION FormatFontColor(range varchar2, fontcolor INTEGER)
return binary_integer;
FUNCTION FormatFontName(range varchar2, fontname varchar2)
return binary_integer;
FUNCTION FormatFontSize(range varchar2, fontsize INTEGER)
return binary_integer ;
/* End: These functions are newly aded by Saubhik Banerjee */
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;
Package Body:_
CREATE OR REPLACE 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;
/* Saubhik: This function is added to set the cell Border */
FUNCTION SetCellBorder(range varchar2, BordersIndex BINARY_INTEGER, BorderStyle BINARY_INTEGER)
return binary_integer IS
--fontToken binary_integer;
BorderToken BINARY_INTEGER;
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i := ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
ORDCOM.InitArg();
ORDCOM.SetArg(BordersIndex, 'I2');
i := ORDCOM.GetProperty(RangeToken, 'Borders', 1, BorderToken);
i := ORDCOM.SetProperty(BorderToken, 'weight', BorderStyle, 'I2');
i := ORDCOM.DestroyObject(BorderToken);
i := ORDCOM.DestroyObject(RangeToken);
return i;
END SetCellBorder;
/* Saubhik: This function is added to set the cell background color */
FUNCTION SetCellColor(range varchar2, style INTEGER)
return binary_integer IS
--fontToken binary_integer;
DummyToken BINARY_INTEGER;
SelectionToken BINARY_INTEGER;
InteriorToken BINARY_INTEGER;
--applicationToken
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i := ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
i := ORDCOM.Invoke(RangeToken,'SELECT',0,DummyToken);
i := ORDCOM.GetProperty(applicationToken,'Selection',0,SelectionToken);
i := ORDCOM.GetProperty(SelectionToken, 'Interior', 0, InteriorToken);
i := ORDCOM.SetProperty(InteriorToken, 'ColorIndex', style, 'I2');
i := ORDCOM.DestroyObject(RangeToken);
return i;
END SetCellColor;
/* Saubhik: This function is added to change the font style like Bold, Italic etc. */
FUNCTION FormatFontStyle(range varchar2, fontstyle varchar2)
return binary_integer IS
fontToken binary_integer;
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i := ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
i := ORDCOM.GetProperty(RangeToken, 'Font', 0, FontToken);
IF fontstyle = 'Bold' OR fontstyle = 'Italic' OR
fontstyle = 'Underline' THEN
i := ORDCOM.SetProperty(FontToken, fontstyle, True, 'BOOL');
END IF;
i := ORDCOM.DestroyObject(FontToken);
i := ORDCOM.DestroyObject(RangeToken);
return i;
END FormatFontStyle;
/* Saubhik: This function is added to change the font style like Arial, Bookman, Century etc. */
FUNCTION FormatFontName(range varchar2, fontname varchar2)
return binary_integer IS
fontToken binary_integer;
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i := ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
i := ORDCOM.GetProperty(RangeToken, 'Font', 0, FontToken);
i := ORDCOM.SetProperty(FontToken, 'Name', fontname, 'BSTR');
i := ORDCOM.DestroyObject(FontToken);
i := ORDCOM.DestroyObject(RangeToken);
return i;
END FormatFontName;
/* Saubhik: This function is added to change the font style like Arial, Bookman, Century etc. */
FUNCTION FormatFontSize(range varchar2, fontsize INTEGER)
return binary_integer IS
fontToken binary_integer;
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i := ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
i := ORDCOM.GetProperty(RangeToken, 'Font', 0, FontToken);
i := ORDCOM.SetProperty(FontToken, 'Size', fontsize, 'I2');
i := ORDCOM.DestroyObject(FontToken);
i := ORDCOM.DestroyObject(RangeToken);
return i;
END FormatFontSize;
/* Saubhik: This function is added to change the font color like Black, Blue etc. */
FUNCTION FormatFontColor(range varchar2, fontcolor INTEGER)
return binary_integer IS
fontToken binary_integer;
BEGIN
ORDCOM.InitArg();
ORDCOM.SetArg(range, 'BSTR');
i := ORDCOM.GetProperty(WorkSheetToken, 'Range', 1, RangeToken);
i := ORDCOM.GetProperty(RangeToken, 'Font', 0, FontToken);
i := ORDCOM.SetProperty(FontToken, 'ColorIndex', fontcolor, 'I2');
i := ORDCOM.DestroyObject(FontToken);
i := ORDCOM.DestroyObject(RangeToken);
return i;
END FormatFontColor;
* 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; -
Want to open an Excel file and load it into Oracle - Oracle COM Automation
I'm doing some test and I got the following errors in the dbms output:
Creating Excel application...
COM-0004: The registered CLSID for the ProgID is invalid.
Invoking Workbooks...
COM-0004: The registered CLSID for the ProgID is invalid.
Invoking Add to WorkBooks...
COM-0002: Invalid Token or no interface for token
I tried to register the orawpcom10.dll on the server but I could not.
I changed the orawpcom10.dll file for a newer one, but I got the same error.
I tried to google the error messages, but I did not find any solution.
Could you give me any idea?
Thanks again,
Javier
Edited by: 882807 on 01-sep-2011 6:01Sorry, I was a little bit busy at work. You can see my answers below:
1. Post your database version from v$version.
SQL> SELECT * FROM v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL>2. The path where orawpcomxx.dll stored (preferably with dir command from command prompt).
C:\oracle\product\10.2.0\db_1\BIN>dir orawpco*.dll
El volumen de la unidad C no tiene etiqueta.
El número de serie del volumen es: E0C2-001B
Directorio de C:\oracle\product\10.2.0\db_1\BIN
22/06/2010 17:40 81.920 orawpcom10.dll
1 archivos 81.920 bytes
0 dirs 31.090.524.160 bytes libres
C:\oracle\product\10.2.0\db_1\BIN>3. Definition (CREATE statement) of UTILS_LIB
create library utils_lib as 'C:\oracle\product\10.2.0\db_1\BIN\orawpcom10.dll';4. Relevant portion of TNSNAMES.ora and LISTNER.ora.
TNSNAMES.ORA
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)LISTENER.ORA
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vsdwh1.AD.SMS.CARM.ES)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
...5. Status (valid/invalid) of ORDExcelSB from all/dba/user_objects.
SQL> select object_name,object_type,status from all_objects where object_name =
'ORDEXCELSB';
OBJECT_NAME OBJECT_TYPE STATUS
ORDEXCELSB PACKAGE VALID
ORDEXCELSB PACKAGE BODY VALID
SQL>6. How you are calling and the actual error (copy paste from SQL prompt).
SQL> SET SERVEROUT ON
SQL> DECLARE
2 v_Name varchar2(90);
3 v_SlNo varchar2(100);
4 v_Job varchar2(200);
5 v_Dept varchar2(100);
6 v_recon_remark varchar2(50);
7 v_sal_amt_usd number;
8 v_Bonus_amt_usd number;
9 result INTEGER;
10
11 i binary_integer;
12 filename varchar2(255);
13 BEGIN
14
15 filename := 'C:\Example.xls';
16
17 result := ORDExcelSB.CreateExcelApplication('');
18 result := ORDExcelSB.OpenExcelFile(filename, 'Sheet1');
19
20 /* Excluding the header row and reading the first 5 row */
21 FOR n in 2 .. 5 LOOP
22
23 v_Name := ORDExcelSB.GetDataStr('A' || n);
24 v_SlNo := ORDExcelSB.GetDataReal('B' || n);
25 v_Job := ORDExcelSB.GetDataStr('C' || n);
26 v_Dept := ORDExcelSB.GetDataStr('D' || n);
27 v_sal_amt_usd := ORDExcelSB.GetDataNum('E' || n);
28 v_Bonus_amt_usd := ORDExcelSB.GetDataNum('F' || n);
29
30 dbms_output.put_line(v_Name || ' ' || v_SlNo || ' ' || v_Job || ' ' ||
31 v_Dept || ' ' || v_sal_amt_usd || ' ' ||
32 v_Bonus_amt_usd);
33
34 END LOOP;
35
36 result := ORDExcelSB.ExitExcel();
37 EXCEPTION
38 WHEN OTHERS THEN
39 result := ORDExcelSB.ExitExcel();
40 RAISE;
41 END;
42 /
Creating Excel application...
COM-0004: The registered CLSID for the ProgID is invalid.
Invoking Workbooks...
COM-0004: The registered CLSID for the ProgID is invalid.
Opening Excel file C:\Example.xls ...
COM-0002: Invalid Token or no interface for token
Opening WorkBook
COM-0002: Invalid Token or no interface for token
Invoking WorkSheets..
COM-0002: Invalid Token or no interface for token
Invoking WorkSheet
COM-0002: Invalid Token or no interface for token
Opened
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
0 0 0
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
0 0 0
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
0 0 0
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
0 0 0
Closing workbook and quitting...
Closing workbook...
COM-0002: Invalid Token or no interface for token
Closing workbooks...
COM-0002: Invalid Token or no interface for token
COM-0002: Invalid Token or no interface for token
PL/SQL procedure successfully completed.
SQL>Thanks again for your interest.
Javier -
I execute file comwarp.sql,but the function and package bodis built are all invalid,who can tell me why.
thankspls check the code / script inside that script file which you ran. May be it is referencing to not existing or invalid objects.
check the code once again -
Let everyone know! Oracle Policy Automation @ OpenWorld Shanghai
Below are the details of Oracle Policy Automation's (OPA) presence at OpenWorld Shanghai July 22nd - 25th...Scroll down for the English version.
Key highlights:
Jiangsu Provincial Office of SAT co-presenting
2 sessions on 2 different tracks
Dedicated OPA Demo pod
关注Oracle Policy Automation ,甲骨文全球大会,2013上海
在2013上海举行的甲骨文全球大会上,您将和众多行业和技术专家一起参加一系列会议和活动,了解和学习如何解决您所面对的重要问题。Oracle Policy Automation的主题会议将让您了解关于实现业务和技术转型的有价值的信息。
星期二,7月23日,2013
会议编号
时间
主题
地点
CON1621
16:45 - 17.45
Oracle Policy Automation 在政府行业
Heike Lorenz, OPA 产品市场部全球总监,甲骨文公司
世博中心 - 410 厅
星期三,7月24日, 2013
会议编号
时间
主题
地点
CON1740
14:00 – 15:00
Oracle Policy Automation 路线图: 增强客户体验
Heike Lorenz, OPA 产品市场部全球总监,甲骨文公司,
江苏省国家税务局
世博中心 – 428 厅
Oracle Policy Automation 演示台
在演示中心参观Oracle Policy Automation(OPA)的演示。在这里,不同行业的客户和合作伙伴们将看到一系列的OPA演示,包括OPA云版本。
日期
时间
地点
星期一,7月22日,2013
17:45 - 19:45
甲骨文演示中心
# 01
星期二,7月23日,2013
9:00 - 16:45
甲骨文演示中心
# 01
星期三,7月24日,2013
9:00 – 17:15
甲骨文演示中心
# 01
星期四,7月25日,2013
9:00 – 14:00
甲骨文演示中心
# 01
Focus On Oracle Policy Automation @ OpenWorld Shanghai 2013
At Oracle OpenWorld Shanghai 2013 you will be able join industry professionals and technology experts for a broad range of sessions and activities that will help you learn how you can address the critical issues facing you today. Oracle Policy Automation sessions have been designed for you to gain valuable information on how you can achieve the business and technology transformation.
Tuesday July 23rd, 2013
S E S S I O N I D
T I M E
T I T L E
L O C A T I O N
CON1621
16:45 - 17.45
Oracle Policy Automation in Public Sector
Heike Lorenz, Global Director OPA Product Marketing, Oracle
Expo Centre - Room 410
Wednesday July 24th, 2013
S E S S I O N I D
T I M E
T I T L E
L O C A T I O N
CON1740
14:00 – 15:00
Oracle Policy Automation Roadmap: Supercharging the Customer Experience
Heike Lorenz, Global Director OPA Product Marketing, Oracle
Jiangsu Provincial Office of SAT
Expo Centre - Room 428
Oracle Policy Automation Demo Pod
Come see Oracle Policy Automation in action at the Oracle Policy Automation (OPA) demo pod in the DEMOground. Here customers, prospects & partners across all industries will be able to see a variety of OPA demonstrations, including – OPA Cloud Edition.
D A T E
T I M E S
L O C A T I O N
Monday July 22, 2013
17:45 - 19:45
Oracle DEMOGrounds
# 01
Tuesday July 23, 2013
9:00 - 16:45
Oracle DEMOGrounds
# 01
Wednesday July 24, 2013
9:00 – 17:15
Oracle DEMOGrounds
# 01
Thursday July 25, 2013
9:00 – 14:00
Oracle DEMOGrounds
# 01The only official training and certification on OPA is managed through Oracle University. The following two courses are recommended for all OPA users: Oracle Policy Modeling: Essentials Part 1 Rel 10.4 and Oracle Policy Modeling: Essentials Part 2 Rel 10.4 . There is also a course offered on the OPA Connector for Siebel: Oracle Policy Automation (OPA) Connector for Siebel . Through Oracle University, you can register interest in any of the courses, inquire regarding any customized training needs, including course times, locations, eventual certification, etc It is recommended that after completion of the two Essentials courses individuals spend at least one project working with an experienced OPA mentor before attempting the certification exam.
-
COM Automation: getProperty problems
Hi,
I know that the topic of this post don't belongs to this subcategory, but really I cannot find where to put it.
I'm implementing a solucion using Oracle COM Automation to use a DLL through its COM interface from PL/SQL. The connection is done ok, and I can instantiate the object, get properties, set properties, invoke methods, etc.
The problem is that when I use getProperty to get a Property that's empty (null), it returns the last value for which getProperty obtained a valid value:
COM Object
- Property A. Value: 'dog'
- Property B. Value: 'cat'
- Property C. Value: '' (empty)
Pseudocode:
1- CreateObject using COM interface --> OK
2- getProperty('A') --> dog
3- getProperty('B') --> cat
4- getProperty('C') --> cat
So, as you can see, getProperty('C') returns the last value obtained in a getProperty that returned a value (getProperty('B)). Any of you has any clue on what could be wrong with the Oracle COM Automation method to access a COM interface?
Thanks a lot in advance,
Luis MiguelSorry, I meant to say 12g is where it wont be included.
The migration path is .NET stored procedures. You should also be able to call a COM object via via COM Interop, but you'd be breaking new ground there in a sense as I'm not sure that that is something Oracle has tested, and I haven't heard from other customers that are doing that, so if there are issues there you maybe the one to uncover them.
Greg -
Does anyone know anything about Oracle "COM Automation
Feature?" It appears to be an add-on product for Windows NT
that allows PL/SQL code to reference COM objects. For example,
this would allow a PL/SQL program to select data from a MS
access database. Any info you have would be helpful. Thanks!
Brian
null<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by hatem moushir ([email protected]):
i have a problem :
when install designer/2000 6i for win 95/98/NT
with Personal Oracle 8i for win 98 (standalone),
it doesn't work .
i do the following :
1 - install Personal Oracle Oracle 8i on windows 98 .
2 - check it by run SQL plus 8 and it is work (logicaly after start database).
3 - install designer/2000 6i .
4 - restart windows 98.
5 - the Oracle database doesn't start ??? <HR></BLOCKQUOTE>
If you install Oracle database server and Designer on the same machine, then the operating system must be Windows NT or Windows 2000. For more detail information you may check out the online doc.
null -
Does Oracle OLAP comes with Oracle Database 10g ?
1.Does Oracle OLAP comes with Oracle Database 10g or do we need seperate software to have this ?.
2.If I create a Cube with Analytic work space manager the cube is going to be stored in the Database ( meaning the in the table space where OLAP is Stored).
3. What is the difference between Analtyic work space manager and discoverer For Olap.
Help is higly appreciated ..
Thanks, PrasadOne thing to point out : The OLAP option is a costed database option, so while this is automatically installed and part of your database you do have to purchase additional licenses to use this feature. You will need to check with your Oracle account manager to see if you are actually licensed to use this feature.
If you have existing 9i OLAP cubes these can be quickly and easily migrated to 10g OLAP and the documentation explains how to do this. However, there are many new features that are part of 10g OLAP that will improve the performance of your data model that will not be enabled as part of a migration process. Based on my experiences it would be quicker and easier (depending on the size of your existing 9i OLAP cubes) to consider rebuilding your data model using these new 10g features. You should be able to export all the dimensions to XML templates from 9i OLAP and import the templates into the 10g schema and reload your dimensions.
For the cubes you will probably want to consider using partitioning, composites and compression to provide maximum flexibility and performance for your new data model. There is more information on these features within the OLAP documentation and in the many whitepapers and presentations on the OLAP home page on OTN.
For moving data from SQL Server to 10g OLAP much depends on the nature of the data transfer. If it is a one-off bulk data load then you could consider using the normal MS command line tools to dump the data out and transfer it to Oracle. Alternatively, you could consider using Oracle Data Integrator to manage the extraction of the SQL Server data and the data load process into Oracle 10g relational tables. If you decide to use Data Integrator this will require additional licenses.
If you can extract the data from SQL Server to flat files you can use Oracle Warehouse Builder (basic ETL is free as part of the 10g database license) to load that flat file data via external tables. Warehouse Builder can also be used to define your OLAP data model (think of Warehouse Builder as a more powerful version of Analytic Workspace Manager) and provides tools to load the data directly into your OLAP dimensions and cubes. You can get more information on managing OLAP data models with Warehouse Builder the Warehouse Builder home page on OTN.
There are no facilities to modify Discoverer Viewer to add customisations. You can add company logos, modify certain colors and/or hide certain features but it is not possible to add additional features. You may want to consider using BI Beans to provide this type of environment. BI Beans is the development framework used to create Discoverer Viewer. You can create customised JSP pages that look identical to Discoverer Viewer pages with the added benefit of providing your own specific features. You can get more information on the BI Beans home page on OTN.
Keith Laker
Oracle EMEA Consulting
BI Blog: http://oraclebi.blogspot.com/
DM Blog: http://oracledmt.blogspot.com/
BI on Oracle: http://www.oracle.com/bi/
BI on OTN: http://www.oracle.com/technology/products/bi/
BI Samples: http://www.oracle.com/technology/products/bi/samples/ -
Dose OHW come with Oracle Application Server 10g?
I install Oracle Application Server with two instances (named: AS10131 and AS10g2). ohw.jar is found in:
\ AS10131\jee2\home\applications\ascontrol\ascontrol\WEB-INF\lib and
\ AS10g2\jee2\home\applications\ascontrol\ascontrol\WEB-INF\lib.
Is it means:
1. Server containers have OHW already?
2. I only need to implement OHW in my web application (developed iwith Jdeveloper)?OHW is not installed by default. You can download it from OTN. (http://www.oracle.com/technology/tech/java/help/index.html).
The OHW you've found is part of the AS control application only.
--olaf -
Unable to start Oracle Reports Server for 10g version 10.1.2.3.0
Attention Oracle Reports Team or anyone else:
I am unable to start the Oracle Reports Server for 10g version 10.1.2.3.0 of the Application Server.
I have included the trace files see below. I marked the text in bold that might indicate the issues.
Any help will be greatly appreciated. Thank you.
Reports engine rwEng trace file:+
[2010/7/8 10:11:51:626] Debug 50103 (RWEngine:init): args[0]=name=rwEng-0
[2010/7/8 10:11:51:627] Debug 50103 (RWEngine:init): args[1]=server=myreportserver
[2010/7/8 10:11:51:627] Debug 50103 (RWEngine:init): args[2]=ORACLE_HOME=/myoraclehomepath
[2010/7/8 10:11:51:627] Debug 50103 (RWEngine:init): args[3]=engineimplclass=oracle.reports.engine.EngineImpl
[2010/7/8 10:11:51:627] Debug 50103 (RWEngine:init): args[4]=traceopts=trace_all
[2010/7/8 10:11:51:628] Debug 50103 (RWEngine:init): args[5]=tracefile=/myoraclehomepath/reports/logs/rwEng-0.trc
[2010/7/8 10:11:51:628] Debug 50103 (RWEngine:init): args[6]=tracemode=trace_append
[2010/7/8 10:11:51:628] Debug 50103 (RWEngine:init): args[7]=cacheDir=/myoraclehomepath/reports/cache
[2010/7/8 10:11:51:628] Debug 50103 (RWEngine:init): args[8]=server_ior="/tmp/myreportserver_xxxxxxxx_xxxxxxxxxxxxx"
[2010/7/8 10:11:51:678] Info 50128 (RWEngine:init): orb init succeeded
[2010/7/8 10:11:52:108] Info 55007 (EngineImpl:loadLibrary): Load librw.so succeeded
[2010/7/8 10:11:52:108] Debug 50103 (EngineImpl:init): useDataCache = null
[2010/7/8 10:11:52:108] Debug 50103 (EngineImpl:init): ignoreDataParameter = null
[2010/7/8 10:11:52:115] Debug 50103 (EngineImpl:EngineImpl): start CInitEngine()
[2010/7/8 10:11:52:115] Debug 50103 (EngineImpl:EngineImpl): commandline[0] = rw
[2010/7/8 10:11:52:115] Debug 50103 (EngineImpl:EngineImpl): commandline[1] = ora_rw20_3tng
[2010/7/8 10:11:52:115] Debug 50103 (EngineImpl:EngineImpl): commandline[2] = myreportserver
[2010/7/8 10:11:52:115] Debug 50103 (EngineImpl:EngineImpl): commandline[3] = /myoraclehomepath/reports/cache
[2010/7/8 10:11:52:116] Debug 50103 (EngineImpl:EngineImpl): commandline[4] = null
[2010/7/8 10:11:52:116] Debug 50103 (EngineImpl:EngineImpl): commandline[5] = null
[2010/7/8 10:11:52:116] Debug 50103 (EngineImpl:EngineImpl): commandline[6] = trace_all
[2010/7/8 10:11:52:116] Debug 50103 (EngineImpl:EngineImpl): commandline[7] = /myoraclehomepath/reports/logs/myreportserver/rwEng-0.trc
[2010/7/8 10:11:52:116] Debug 50103 (EngineImpl:EngineImpl): commandline[8] = trace_append
[2010/7/8 10:11:52:116] Debug 50103 (EngineImpl:EngineImpl): commandline[9] = null
[2010/7/8 10:11:52:117] Debug 50103 (EngineImpl:EngineImpl): commandline[10] = null
[2010/7/8 10:11:52:117] Debug 50103 (EngineImpl:EngineImpl): commandline[11] = null
*[2010/7/8 10:11:58:329] Error 50103 (C Engine): 10:11:58 ERR REP-3000: Internal error starting Oracle Toolkit.*
*[2010/7/8 10:11:58:329] Error 50103 (C Engine): 10:11:58 ERR REP-3000: Internal error starting Oracle Toolkit.*
[2010/7/8 10:11:58:330] (C Engine)
[2010/7/8 10:11:58:330] (C Engine)
| Reports Builder Profiler statistics |
[2010/7/8 10:11:58:330] (C Engine)
[2010/7/8 10:11:58:330] (C Engine)
TOTAL ELAPSED Time: 6.06 seconds
[2010/7/8 10:11:58:331] (C Engine)
Reports Time: 6.06 seconds
[2010/7/8 10:11:58:331] (C Engine) (100.00% of TOTAL)
[2010/7/8 10:11:58:331] (C Engine)
ORACLE Time: 0.00 seconds
[2010/7/8 10:11:58:331] (C Engine) ( 0.00% of TOTAL)
[2010/7/8 10:11:58:331] (C Engine)
UPI: 0.00 seconds
[2010/7/8 10:11:58:332] (C Engine)
SQL: 0.00 seconds
[2010/7/8 10:11:58:332] (C Engine)
TOTAL CPU Time used by process: 1.08 seconds
[2010/7/8 10:11:58:340] Debug 50103 (EngineImpl:EngineImpl): CInitEngine returns 3000
[2010/7/8 10:11:59:129] Debug 50103 (RWEngine:init): args[0]=name=rwEng-0
[2010/7/8 10:11:59:130] Debug 50103 (RWEngine:init): args[1]=server=myreportserver
[2010/7/8 10:11:59:130] Debug 50103 (RWEngine:init): args[2]=ORACLE_HOME=/myoraclehomepath
[2010/7/8 10:11:59:130] Debug 50103 (RWEngine:init): args[3]=engineimplclass=oracle.reports.engine.EngineImpl
[2010/7/8 10:11:59:130] Debug 50103 (RWEngine:init): args[4]=traceopts=trace_all
[2010/7/8 10:11:59:131] Debug 50103 (RWEngine:init): args[5]=tracefile=/myoraclehomepath/reports/logs/myreportserver/rwEng-0.trc
[2010/7/8 10:11:59:131] Debug 50103 (RWEngine:init): args[6]=tracemode=trace_append
[2010/7/8 10:11:59:131] Debug 50103 (RWEngine:init): args[7]=cacheDir=/myoraclehomepath/reports/cache
[2010/7/8 10:11:59:131] Debug 50103 (RWEngine:init): args[8]=server_ior="/tmp/myreportserver_xxxxxxx_xxxxxxxxxxxxx"
[2010/7/8 10:11:59:179] Info 50128 (RWEngine:init): orb init succeeded
[2010/7/8 10:11:59:593] Info 55007 (EngineImpl:loadLibrary): Load librw.so succeeded
[2010/7/8 10:11:59:593] Debug 50103 (EngineImpl:init): useDataCache = null
[2010/7/8 10:11:59:594] Debug 50103 (EngineImpl:init): ignoreDataParameter = null
[2010/7/8 10:11:59:597] Debug 50103 (EngineImpl:EngineImpl): start CInitEngine()
[2010/7/8 10:11:59:598] Debug 50103 (EngineImpl:EngineImpl): commandline[0] = rw
[2010/7/8 10:11:59:598] Debug 50103 (EngineImpl:EngineImpl): commandline[1] = ora_rw20_3tng
[2010/7/8 10:11:59:598] Debug 50103 (EngineImpl:EngineImpl): commandline[2] = myreportserver
[2010/7/8 10:11:59:598] Debug 50103 (EngineImpl:EngineImpl): commandline[3] = /myoraclehomepath/reports/cache
[2010/7/8 10:11:59:598] Debug 50103 (EngineImpl:EngineImpl): commandline[4] = null
[2010/7/8 10:11:59:599] Debug 50103 (EngineImpl:EngineImpl): commandline[5] = null
[2010/7/8 10:11:59:599] Debug 50103 (EngineImpl:EngineImpl): commandline[6] = trace_all
[2010/7/8 10:11:59:599] Debug 50103 (EngineImpl:EngineImpl): commandline[7] = /myoraclehomepath/reports/logs/myreportserver/rwEng-0.trc
[2010/7/8 10:11:59:599] Debug 50103 (EngineImpl:EngineImpl): commandline[8] = trace_append
[2010/7/8 10:11:59:599] Debug 50103 (EngineImpl:EngineImpl): commandline[9] = null
[2010/7/8 10:11:59:599] Debug 50103 (EngineImpl:EngineImpl): commandline[10] = null
[2010/7/8 10:11:59:600] Debug 50103 (EngineImpl:EngineImpl): commandline[11] = null
*[2010/7/8 10:12:5:757] Error 50103 (C Engine): 10:12:05 ERR REP-3000: Internal error starting Oracle Toolkit.*
*[2010/7/8 10:12:5:758] Error 50103 (C Engine): 10:12:05 ERR REP-3000: Internal error starting Oracle Toolkit.*
[2010/7/8 10:12:5:758] (C Engine)
[2010/7/8 10:12:5:758] (C Engine)
| Reports Builder Profiler statistics |
[2010/7/8 10:12:5:758] (C Engine)
[2010/7/8 10:12:5:759] (C Engine)
TOTAL ELAPSED Time: 6.06 seconds
[2010/7/8 10:12:5:759] (C Engine)
Reports Time: 6.06 seconds
[2010/7/8 10:12:5:759] (C Engine) (100.00% of TOTAL)
[2010/7/8 10:12:5:759] (C Engine)
ORACLE Time: 0.00 seconds
[2010/7/8 10:12:5:760] (C Engine) ( 0.00% of TOTAL)
[2010/7/8 10:12:5:760] (C Engine)
UPI: 0.00 seconds
[2010/7/8 10:12:5:760] (C Engine)
SQL: 0.00 seconds
[2010/7/8 10:12:5:760] (C Engine)
TOTAL CPU Time used by process: 1.01 seconds
[2010/7/8 10:12:5:769] Debug 50103 (EngineImpl:EngineImpl): CInitEngine returns 3000
[2010/7/8 10:12:6:475] Debug 50103 (RWEngine:init): args[0]=name=rwEng-0
[2010/7/8 10:12:6:475] Debug 50103 (RWEngine:init): args[1]=server=myreportserver
[2010/7/8 10:12:6:475] Debug 50103 (RWEngine:init): args[2]=ORACLE_HOME=/myoraclehomepath
[2010/7/8 10:12:6:476] Debug 50103 (RWEngine:init): args[3]=engineimplclass=oracle.reports.engine.EngineImpl
[2010/7/8 10:12:6:476] Debug 50103 (RWEngine:init): args[4]=traceopts=trace_all
[2010/7/8 10:12:6:476] Debug 50103 (RWEngine:init): args[5]=tracefile=/myoraclehomepath/reports/logs/myreportserver/rwEng-0.trc
[2010/7/8 10:12:6:476] Debug 50103 (RWEngine:init): args[6]=tracemode=trace_append
[2010/7/8 10:12:6:476] Debug 50103 (RWEngine:init): args[7]=cacheDir=/myoraclehomepath/reports/cache
[2010/7/8 10:12:6:476] Debug 50103 (RWEngine:init): args[8]=server_ior="/tmp/myreportserver_xxxxxxxx_xxxxxxxxxxxxx"
[2010/7/8 10:12:6:523] Info 50128 (RWEngine:init): orb init succeeded
[2010/7/8 10:12:6:942] Info 55007 (EngineImpl:loadLibrary): Load librw.so succeeded
[2010/7/8 10:12:6:942] Debug 50103 (EngineImpl:init): useDataCache = null
[2010/7/8 10:12:6:942] Debug 50103 (EngineImpl:init): ignoreDataParameter = null
[2010/7/8 10:12:6:946] Debug 50103 (EngineImpl:EngineImpl): start CInitEngine()
[2010/7/8 10:12:6:946] Debug 50103 (EngineImpl:EngineImpl): commandline[0] = rw
[2010/7/8 10:12:6:946] Debug 50103 (EngineImpl:EngineImpl): commandline[1] = ora_rw20_3tng
[2010/7/8 10:12:6:946] Debug 50103 (EngineImpl:EngineImpl): commandline[2] = myreportserver
[2010/7/8 10:12:6:947] Debug 50103 (EngineImpl:EngineImpl): commandline[3] = /myoraclehomepath/reports/cache
[2010/7/8 10:12:6:947] Debug 50103 (EngineImpl:EngineImpl): commandline[4] = null
[2010/7/8 10:12:6:947] Debug 50103 (EngineImpl:EngineImpl): commandline[5] = null
[2010/7/8 10:12:6:947] Debug 50103 (EngineImpl:EngineImpl): commandline[6] = trace_all
[2010/7/8 10:12:6:947] Debug 50103 (EngineImpl:EngineImpl): commandline[7] = /myoraclehomepath/reports/logs/myreportserver/rwEng-0.trc
[2010/7/8 10:12:6:947] Debug 50103 (EngineImpl:EngineImpl): commandline[8] = trace_append
[2010/7/8 10:12:6:948] Debug 50103 (EngineImpl:EngineImpl): commandline[9] = null
[2010/7/8 10:12:6:948] Debug 50103 (EngineImpl:EngineImpl): commandline[10] = null
[2010/7/8 10:12:6:948] Debug 50103 (EngineImpl:EngineImpl): commandline[11] = null
*[2010/7/8 10:12:13:91] Error 50103 (C Engine): 10:12:13 ERR REP-3000: Internal error starting Oracle Toolkit.*
*[2010/7/8 10:12:13:91] Error 50103 (C Engine): 10:12:13 ERR REP-3000: Internal error starting Oracle Toolkit.*
[2010/7/8 10:12:13:91] (C Engine)
[2010/7/8 10:12:13:92] (C Engine)
| Reports Builder Profiler statistics |
[2010/7/8 10:12:13:92] (C Engine)
[2010/7/8 10:12:13:92] (C Engine)
TOTAL ELAPSED Time: 6.05 seconds
[2010/7/8 10:12:13:92] (C Engine)
Reports Time: 6.05 seconds
[2010/7/8 10:12:13:92] (C Engine) (100.00% of TOTAL)
[2010/7/8 10:12:13:93] (C Engine)
ORACLE Time: 0.00 seconds
[2010/7/8 10:12:13:93] (C Engine) ( 0.00% of TOTAL)
[2010/7/8 10:12:13:93] (C Engine)
UPI: 0.00 seconds
[2010/7/8 10:12:13:93] (C Engine)
SQL: 0.00 seconds
[2010/7/8 10:12:13:93] (C Engine)
TOTAL CPU Time used by process: 1.02 seconds
*[2010/7/8 10:12:13:102] Debug 50103 (EngineImpl:EngineImpl): CInitEngine returns 3000*
reports engine rwURLEng trace file:+
*** 2010/7/8 10:11:47:306 -- Reading server config file /myoraclehomepath/reports/conf/myreportserver.conf
*** 2010/7/8 10:11:47:307 -- <server version="10.1.2.3.0">
<cache class="oracle.reports.cache.RWCache">
<property name="cacheSize" value="50"/>
<!--property name="cacheDir" value="your cache directory"/-->
<!--property name="maxCacheFileNumber" value="max number of cache files"/-->
<!--property name="ignoreParameters" value="parameter names to be ignored in constructing cache key, separated by comma ','"/-->
</cache>
<!--Please do not change the id for reports engine.-->
<!--The class specifies below is subclass of _EngineClassImplBase and implements EngineInterface.-->
<engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="4" minEngine="1" engLife="50" maxIdle="30" callbackTimeOut="90000">
<!--property name="sourceDir" value="your reports source directory"/-->
<!--property name="tempDir" value="your reports temp directory"/-->
</engine>
<engine id="rwURLEng" class="oracle.reports.urlengine.URLEngineImpl" initEngine="1" maxEngine="4" minEngine="1" engLife="50" maxIdle="30" callbackTimeOut="90000"/>
<!--security id="rwSec" class="oracle.reports.server.RWSecurity">
<property name="securityUserid" value="%PORTAL_DB_USERNAME%/%PORTAL_DB_PASSWORD%@%PORTAL_DB_TNSNAME%" confidential="yes" encrypted="no"/>
<property name="oidEntity" value="reportsApp_myhostname_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
</security-->
<!--destination destype="oraclePortal" class="oracle.reports.server.DesOraclePortal">
<property name="portalUserid" value="%PORTAL_DB_USERNAME%/%PORTAL_DB_PASSWORD%@%PORTAL_DB_TNSNAME%" confidential="yes" encrypted="no"/>
</destination-->
<destination destype="ftp" class="oracle.reports.plugin.destination.ftp.DesFTP">
<!--property name="proxy" value="proxyinfo.xml"/-->
</destination>
<destination destype="WebDav" class="oracle.reports.plugin.destination.webdav.DesWebDAV">
<!--property name="proxy" value="proxyinfo.xml"/-->
</destination>
<!-- By default server will use rwnetwork.conf as network config file
Use this element to override the same -->
<!--networkConfig file="rwnetwork.conf"></networkConfig-->
<job jobType="report" engineId="rwEng" securityId="rwSec"/>
<job jobType="rwurl" engineId="rwURLEng" securityId="rwSec"/>
<notification id="mailNotify" class="oracle.reports.server.MailNotify">
<property name="succnotefile" value="succnote.txt"/>
<property name="failnotefile" value="failnote.txt"/>
</notification>
<!--notification id="wfNotify" class="oracle.reports.server.WorkflowNotify">
<property name="connStr" value="%WF_DB_USERNAME%/%WF_DB_PASSWORD%@%WF_DB_TNSNAME%" confidential="yes" encrypted="no"/>
</notification-->
<log option="noJob"/>
<!--jobStatusRepository class="oracle.reports.server.JobRepositoryDB">
<property name="repositoryConn" value="repo_db_username/repo_db_password@repo_db_tnsname" confidential="yes" encrypted="no"/>
</jobStatusRepository-->
<trace traceOpts="trace_all" traceMode="trace_append"/>
<connection maxConnect="20" idleTimeOut="15">
<orbClient id="RWClient" publicKeyFile="clientpub.key"/>
</connection>
<queue maxQueueSize="1000"/>
<!--jobRecovery auxDatFiles="yes"/-->
<!--
The value of the 'identifier' element is encrypted and is of the form SERVERACCESSKEY_USER/SERVERACCESSKEY_PASSWORD
SERVERACCESSKEY_USER and SERVERACCESSKEY_PASSWORD in <server>.conf and targets.xml
file should match for Reports EM pages to display data correctly.
Corresponding entries of username and password in targets.xml:
<Property NAME="Password" VALUE="SERVERACCESSKEY_PASSWORD" ENCRYPTED="FALSE"/>
<Property NAME="UserName" VALUE="SERVERACCESSKEY_USER" ENCRYPTED="FALSE"/>
-->
<!--pluginParam name="mailServer">stmail.oracle.com</pluginParam-->
<!--pluginParam name="proxy" type="file">proxyinfo.xml</pluginParam-->
<pluginParam name="xmlpds" type="file">xmlpds.conf</pluginParam>
<pluginParam name="jdbcpds" type="file">jdbcpds.conf</pluginParam>
<pluginParam name="textpds" type="file">textpds.conf</pluginParam>
</server>
*** 2010/7/8 10:11:47:308 -- Reports Server is starting up
*** 2010/7/8 10:11:51:982 -- Reports Server started up engine rwURLEng-0
*** *2010/7/8 10:12:13:175 -- Shutting down engine rwURLEng-0*
*** *2010/7/8 10:12:13:177 -- Reports Server shut down engine rwURLEng-0*
*** 2010/7/8 10:12:13:178 -- Server is shutting down
Why does the rwURLEng engine start up and then immediately shut down?+
reports server trace file:+
[2010/7/8 10:11:47:276] Debug 50103 (EnvironmentUtility:getEnvironment): XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt
[2010/7/8 10:11:47:277] Debug 50103 (EnvironmentUtility:getEnvironment): NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat
[2010/7/8 10:11:47:277] Debug 50103 (EnvironmentUtility:getEnvironment): DEBUG_SLFIND=/myapppath/log/mydebuglogfile.log
[2010/7/8 10:11:47:277] Debug 50103 (EnvironmentUtility:getEnvironment): DISPLAY=myhostname:0.0
[2010/7/8 10:11:47:277] Debug 50103 (EnvironmentUtility:getEnvironment): LD_LIBRARY_PATH=/myoraclehomepath/jdk/jre/lib/sparc:/myoraclehomepath/lib:/myoraclehomepath/opmn/lib:/myoraclehomepath/lib32
[2010/7/8 10:11:47:278] Debug 50103 (EnvironmentUtility:getEnvironment): NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
[2010/7/8 10:11:47:278] Debug 50103 (EnvironmentUtility:getEnvironment): ORACLE_CONFIG_HOME=/myoraclehomepath
[2010/7/8 10:11:47:278] Debug 50103 (EnvironmentUtility:getEnvironment): ORACLE_HOME=/myoraclehomepath
[2010/7/8 10:11:47:278] Debug 50103 (EnvironmentUtility:getEnvironment): ORA_NLS33=/myoraclehomepath/ocommon/nls/admin/data
[2010/7/8 10:11:47:283] Debug 50103 (EnvironmentUtility:getEnvironment): PATH=/myoraclehomepath/jdk/bin:/myoraclehomepath/bin:/myoraclehomepath/jdk/bin:/myoraclehomepath/bin:/myoraclehomepath/dcm/bin:/myoraclehomepath/bin:/myoraclehomepath/Apache/Apache/bin:/myoraclehomepath/opmn/bin:/myoraclehomepath/dcm/bin:/bin:/usr/bin:/etc:/usr/ccs/bin:/usr/local/bin:/usr/ucb:/usr/sbin:/export/home/oracle:/usr/bin:/bin
[2010/7/8 10:11:47:283] Debug 50103 (EnvironmentUtility:getEnvironment): REPORTS_CLASSPATH=/myoraclehomepath/reports/jlib/rwbuilder.jar:/myoraclehomepath/reports/jlib/rwrun.jar:/myoraclehomepath/jlib/zrclient.jar:/myoraclehomepath/j2ee/home/oc4j.jar:/myoraclehomepath/j2ee/home/lib/ojsp.jar:/myoraclehomepath/reports/jlib/oraclebarcode.jar
[2010/7/8 10:11:47:283] Debug 50103 (EnvironmentUtility:getEnvironment): REPORTS_DEFAULT_DISPLAY=NO
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): REPORTS_NO_DUMMY_PRINTER=TRUE
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): REPORTS_PATH=/myapppath/bin:/myapppath/util/bin:/myoraclehomepath/guicommon/tk/admin/TTF:/myoraclehomepath/reports/templates:/myoraclehomepath/reports/samples/demo:/myoraclehomepath/reports/integ:/myoraclehomepath/reports/printers
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): REPORTS_TAGLIB_URI=/WEB-INF/lib/reports_tld.jar
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): REPORTS_TMP=/tmp
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): RW=/myoraclehomepath/reports
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): SHELL=/usr/bin/ksh
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): TK_DEBUG_POSTSCRIPT=Func/L/Mem
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): TK_ICON=/myoraclehomepath/reports/plugins/resource
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): TMP=/tmp
[2010/7/8 10:11:47:284] Debug 50103 (EnvironmentUtility:getEnvironment): TNS_ADMIN=/myapppath
[2010/7/8 10:11:47:285] Debug 50103 (EnvironmentUtility:getEnvironment): TZ=US/Eastern
[2010/7/8 10:11:47:285] Debug 50103 (EnvironmentUtility:getEnvironment): X_LD_LIBRARY_PATH_64=/myoraclehomepath/lib
[2010/7/8 10:11:47:285] Debug 50103 (EnvironmentUtility:getEnvironment): NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
[2010/7/8 10:11:47:285] Debug 50103 (EnvironmentUtility:getEnvironment): REPORTS_TMP=/tmp
[2010/7/8 10:11:47:308] Info 56025 (RWServer:startServer): Reports Server is starting up
[2010/7/8 10:11:47:503] Debug 50103 (JobManager:start): Using Maximum Job Retry value = 0
[2010/7/8 10:11:47:526] Info 65000 (Multicast:init): Communication channel initialized
[2010/7/8 10:11:47:528] Debug 50103 (Multicast:registerReceiver): Packet handler registered
[2010/7/8 10:11:47:529] Info 50103 (ServerPacketHandler:start): ServerPacketHandler started successfully
[2010/7/8 10:11:47:532] Info 50103 (RWServer:startServer): Using multicast mechanism
[2010/7/8 10:11:47:562] Debug 50103 (ServerPacketReceiver:handleRequestPacket): Received packets. Multicast is working
[2010/7/8 10:11:48:561] Debug 50103 (ServerPacketReceiver:handleRequestPacket): Received packets. Multicast is working
[2010/7/8 10:11:49:572] Debug 50103 (ServerPacketReceiver:handleRequestPacket): Received packets. Multicast is working
[2010/7/8 10:11:50:589] Info 56023 (ServerImpl:ServerImpl): Idle thread has been started
[2010/7/8 10:11:50:691] Info 56020 (EngineManager:spawnEngine): Launching engine rwEng-0
[2010/7/8 10:11:50:691] Info 50103 (EngineManager:spawnEngine): OS Name = SunOS : OS Arch = sparc
[2010/7/8 10:11:51:56] Info 50103 (RWLocaleUtility:RWLocaleUtility): Using oracle.i18n.util.LocaleMapper class
[2010/7/8 10:11:51:58] Debug 50103 (EngineManager:spawnEngine): Start engine command line = /myoraclehomepath/bin/rwengine.sh -server -cp /myoraclehomepath/j2ee/home/lib/ojsp.jar:/myoraclehomepath/reports/jlib/rwrun.jar:/myoraclehomepath/jlib/zrclient.jar -Duser.language=en -Duser.region=US -Xmx256M oracle.reports.engine.RWEngine name=rwEng-0 server=myreportserver ORACLE_HOME=/myoraclehomepath engineimplclass=oracle.reports.engine.EngineImpl traceopts=trace_all tracefile=/myoraclehomepath/reports/logs/myreportserver/rwEng-0.trc tracemode=trace_append cacheDir=/myoraclehomepath/reports/cache server_ior="/tmp/myreportserver_xxxxxxxx_xxxxxxxxxxxxx"
[2010/7/8 10:11:51:95] Info 56021 (EngineManager:spawnEngine): Engine rwEng-0 has been launched
[2010/7/8 10:11:51:95] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Initial
[2010/7/8 10:11:51:97] Info 56020 (EngineManager:spawnEngine): Launching engine rwURLEng-0
[2010/7/8 10:11:51:98] Info 50103 (EngineManager:spawnEngine): OS Name = SunOS : OS Arch = sparc
[2010/7/8 10:11:51:99] Debug 50103 (EngineManager:spawnEngine): Start engine command line = /myoraclehomepath/bin/rwengine.sh -server -cp /myoraclehomepath/j2ee/home/lib/ojsp.jar:/myoraclehomepath/reports/jlib/rwrun.jar:/myoraclehomepath/jlib/zrclient.jar -Duser.language=en -Duser.region=US -Xmx256M oracle.reports.engine.RWEngine name=rwURLEng-0 server=myreportserver ORACLE_HOME=/myoraclehomepath engineimplclass=oracle.reports.urlengine.URLEngineImpl traceopts=trace_all tracefile=/myoraclehomepath/reports/logs/myreportserver/rwURLEng-0.trc tracemode=trace_append cacheDir=/myoraclehomepath/reports/cache server_ior="/tmp/myreportserver_xxxxxxx_xxxxxxxxxxxxx"
[2010/7/8 10:11:51:129] Info 56021 (EngineManager:spawnEngine): Engine rwURLEng-0 has been launched
[2010/7/8 10:11:51:129] State 56004 (EngineInfo:setState): Engine rwURLEng-0 state is: Initial
[2010/7/8 10:11:51:131] Debug 50103 (JobStore:writePersistFile): Purge persistent file
[2010/7/8 10:11:51:169] Debug 50103 (JobStore:writePersistFile): Purge persistent file done
*[2010/7/8 10:11:51:981] Warning 50103 (EngineManager:registerEngine): REP-55103: API URLEngine:getEngineEnvs not applicable to URL engine*
[2010/7/8 10:11:51:982] Info 56026 (EngineManager:registerEngine): Reports Server started up engine rwURLEng-0
[2010/7/8 10:11:51:998] Debug 50103 (EngineManager:updateEngineState): Engine rwURLEng-0 status is 1
[2010/7/8 10:11:51:998] State 56004 (EngineInfo:setState): Engine rwURLEng-0 state is: Ready
[2010/7/8 10:11:58:490] Info 50103 (EngineManager:manage): Engine restart count: 1
[2010/7/8 10:11:58:590] Info 56020 (EngineManager:spawnEngine): Launching engine rwEng-0
[2010/7/8 10:11:58:590] Info 50103 (EngineManager:spawnEngine): OS Name = SunOS : OS Arch = sparc
[2010/7/8 10:11:58:592] Debug 50103 (EngineManager:spawnEngine): Start engine command line = /myoraclehomepath/bin/rwengine.sh -server -cp /myoraclehomepath/j2ee/home/lib/ojsp.jar:/myoraclehomepath/reports/jlib/rwrun.jar:/myoraclehomepath/jlib/zrclient.jar -Duser.language=en -Duser.region=US -Xmx256M oracle.reports.engine.RWEngine name=rwEng-0 server=myreportserver ORACLE_HOME=/myoraclehomepath engineimplclass=oracle.reports.engine.EngineImpl traceopts=trace_all tracefile=/myoraclehomepath/reports/logs/myreportserver/rwEng-0.trc tracemode=trace_append cacheDir=/myoraclehomepath/reports/cache server_ior="/tmp/myreportserver_xxxxxxx_xxxxxxxxxxxxx"
[2010/7/8 10:11:58:623] Info 56021 (EngineManager:spawnEngine): Engine rwEng-0 has been launched
[2010/7/8 10:11:58:624] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Initial
[2010/7/8 10:12:5:832] Info 50103 (EngineManager:manage): Engine restart count: 2
[2010/7/8 10:12:5:932] Info 56020 (EngineManager:spawnEngine): Launching engine rwEng-0
[2010/7/8 10:12:5:934] Info 50103 (EngineManager:spawnEngine): OS Name = SunOS : OS Arch = sparc
[2010/7/8 10:12:5:935] Debug 50103 (EngineManager:spawnEngine): Start engine command line = /myoraclehomepath/bin/rwengine.sh -server -cp /myoraclehomepath/j2ee/home/lib/ojsp.jar:/myoraclehomepath/reports/jlib/rwrun.jar:/myoraclehomepath/jlib/zrclient.jar -Duser.language=en -Duser.region=US -Xmx256M oracle.reports.engine.RWEngine name=rwEng-0 server=myreportserver ORACLE_HOME=/myoraclehomepath engineimplclass=oracle.reports.engine.EngineImpl traceopts=trace_all tracefile=/myoraclehomepath/reports/logs/myreportserver/rwEng-0.trc tracemode=trace_append cacheDir=/myoraclehomepath/reports/cache server_ior="/tmp/myreportserver_xxxxxxxx_xxxxxxxxxxxxx"
[2010/7/8 10:12:5:963] Info 56021 (EngineManager:spawnEngine): Engine rwEng-0 has been launched
[2010/7/8 10:12:5:964] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Initial
*[2010/7/8 10:12:13:174] Exception 56105 (): Engine rwEng-0 died with error:*
oracle.reports.RWException: IDL:oracle/reports/RWException:1.0
at oracle.reports.utility.Utility.newRWException(Utility.java:758)
at oracle.reports.server.EngineManager.manage(EngineManager.java:367)
at oracle.reports.server.IdleThread.run(IdleThread.java:88)
*[2010/7/8 10:12:13:175] Info 56029 (EngineManager:shutdownEngine): Shutting down engine rwURLEng-0*
[2010/7/8 10:12:13:176] State 56004 (EngineInfo:setState): Engine rwURLEng-0 state is: Shutdown
[2010/7/8 10:12:13:177] Info 56047 (EngineManager:remove): Reports Server shut down engine rwURLEng-0
[2010/7/8 10:12:13:177] Info 50103 (ServerPacketHandler:stop): Multicastmanager stopped successfully
[2010/7/8 10:12:13:178] Info 50002 (RWServer:shutdown): Server is shutting down
[2010/7/8 10:12:13:178] Info 50103 (RWServer:startServer): Notify thread to exit
Why does the trace file indicate that the rwEng engine died with error?+
Again why does the rwURLEng engine start up and then immediately shut down?+
Thank you for your help on this issue.+OK, I did this once and did not follow the oracle docs
If you saved your targets.xml before you started you might save it by renaming it back.
(Double check to make sure you did not miss a rename)
Otherwise, all I have to offer is my rough notes:
1. Backup the file $ORACLE_HOME/sysman/emd/targets.xml.
[oracle@ias02 emd]$ pwd
/u01/app/oracle/product/midtier/sysman/emd
cp targets.xml targets.xmlbackup
2. Modify the file targets.xml by changing all the occurrences of the wrong reports server name by the correct one.
i.e. Replace rep_test_midtier with rep_new (4 places - changes)
Copy the conf file as follows: ( this will named different from system to system )
cp /u01/app/oracle/product/midtier/reports/conf/rep_pia_oracleas.conf /u01/app/oracle/product/midtier/reports/conf/rep_fam.conf
run this script:
/u01/app/oracle/product/midtier/bin/addNewServerTarget.sh rep_fam (change rep_fam to new report server name)
3.Update the changed configuration .
/u01/app/oracle/product/midtier/dcm/bin/dcmctl updateconfig -ct opmn -v -d
/u01/app/oracle/product/midtier/dcm/bin/dcmctl resyncinstance -v -d
4. Restart the Application Server Control Console
/u01/app/oracle/product/midtier/bin/emctl stop iasconsole
/u01/app/oracle/product/midtier/bin/emctl start iasconsole
In the file:
/u01/app/oracle/product/midtier/reports/config/reportsConfig.properties
Change the Reports_Server_Name setting from rep_test_midtier to rep_fam (change rep_fam to new report server name)
Best Wishes (I was able to save mime)
The other option is to reinstall -
How to configure Oracle Dataguard for Oracle 10g database
Hi Friends,
I would like to configuer Oracle Dataguard for my Oracle 10g Database.
Please provide me the configuration document.(step by step guide)
Regards,
DBHi
Go throw below link. This would be help to configure ODG..,
http://blogs.oracle.com/AlejandroVargas/2007/09/data_guard_physical_standby_im.html
http://blogs.oracle.com/AlejandroVargas/2007/10/data_guard_broker_observer_and.html
Thanks,
Mayilselvan.S -
Oracle Spatial for XE 10g / APEX 3.1
I am working with the "2 Day + Developer's Guide" on my Oracle 10g XE / APEX 3.1 installation. There are the OEHR sample objects... the guide says that I need to install "Oracle Spatial" first:
"Tip: In order to successfully import the objects associated with the
OEHR Sample Objects application, your Oracle database must include
Oracle Spatial. If your database instance does not include Oracle
Spatial, you can install it using Database Configuration Assistant. To
learn more, see the Oracle Database Installation Guide for your operating
environment." (page 27, 3-5)
Does 10g XE already includes Spatial? I couldn't find it in the Oracle downloads section :-/
Maybe my installation doesn't have Spatial since I can't install the OEHR sample objects: Problems installing the OEHR sample objects application
Thanks a lot!Does 10g XE already includes Spatial?XE supports only Locator, which is a subset of Spatial.
The Locator is described in detail here:http://download-east.oracle.com/docs/cd/B19306_01/appdev.102/b14255/sdo_locator.htm#i632018
HTH
Maybe you are looking for
-
How can I open Adobe Air on my MacBook Pro?
How can I open Adobe Air on my MacBook Pro? I get the installer, and an image appears in the Applications folder, but it won't open.
-
Can I add an Airport Express into an existing Non Airport Wireless Network?
Hi - Is there any way I can add an Airport Express into an existing Linksys wireless (802.11g) network?. I would not mind switching completely over to Airport but I want to maintain a hybrid (part wired part wireless) configuration as I have now. tha
-
Pending requests in the Standard Manager queue
We are currently facing a situation in one of our Oracle EBS R12 instances, the current number of Standard Manager processes is set to 20, cache size 20 and sleep time 15 . We frequently observe that the concurrent requests get queued up in the Stand
-
Looking for LabVIEW job in Beijing,China
Seeks the LabVIEW part time job, if appropriate knocks, it can change to full-time job. The following is the simple introduction,I hoped it can help you to understand me. I had worked for more than 5 years in the China Aerospace Science & Industry Co
-
Hi all, can i configure metadata field to be parent for other field, so when i search by this parent return the document related to it and its child. OR can i make the returned value for one of the metadata field work as hyperlink once i click it it