ARE ORACLE OBJECTS ALWAYS STORED IN UPPERCASE
Are the oracle objects always stored in Capital letters?
Say ,for example If I create a table as 'Table A' , It gets stored in the USER_TAB_VIEWS as TABLE A !! Is there a way to get it back as 'Table A'
..Is there any way to do it..Yes, as I indicated, use double quotes.
I am modifying an application that worked on SQL Server and hence forced to
use mixed caseI'm not sure that follows. Unless of course the app has database objects whose only difference is the use of CamelCase, e.g. tables called TableA and Tablea and (why not?) tableA. If the names are unique in a case insensitive mode then I think you are better off using Oracle's default naming convention.
But you know what you are doing, and if you think that using ...
SELECT * FROM "CamelCase"
SELECT * FROM user_tables
WHERE table_name = 'CamelCase'
/... is a lesser world of pain than ...
SELECT * FROM camelcase
SELECT * FROM user_tables
WHERE table_name = 'CAMELCASE'
/... then do go ahead.
Cheers, APC
Similar Messages
-
Where are the data-binding frameworks for Oracle Objects?
Oracle offers a few different options for data-binding frameworks to Oracle relational data. Amongst them they include TopLink and the Oracle Application Development Framework (ADF)in JDeveloper 10G. J2EE also offers the EJB standard framework. Both of the Oracle data-binding frameworks appear to work well with relational data but fail miserably when one tries to work with a fully fledged Oracle Object-Relational schema. I have spend much time with ADF but have not been able to create successful bindings to Objects with nested complex objects (such as a 2-level nested object) or objects containing nested tables. TopLink will not even touch Object tables.
Have other people being more successful with this? Do we have to implement our own data binding framework? Does Oracle plan on improving these frameworks to fully support Oracle Objects?TopLink Runtime supports both fully fledged OX mappings and nested complex objects. These mappings can be setup in the code.
TopLink ADF design time however currently does not have support for OX mappings.
Hope this helps, -
Where are the Oracle Data Binding Frameworks for Oracle Objects?
Oracle offers a few different options for data-binding frameworks to Oracle relational data. Amongst them they include TopLink and the Oracle Application Development Framework (ADF)in JDeveloper 10G. J2EE also offers the EJB standard framework. Both of the Oracle data-binding frameworks appear to work well with relational data but fail misserably when one tries to work with a fully fledged Oracle Object-Relational schema. I have spend much time with ADF but have not been able to create successful bindings to Objects with nested complex objects (such as a 2-level nested object) or objects containing nested tables. TopLink will not even touch Object tables.
Have other people being more successful with this? Do we have to implement our own data binding framework? Does Oracle plan on improving these frameworks to fully support Oracle Objects?TopLink Runtime supports both fully fledged OX mappings and nested complex objects. These mappings can be setup in the code.
TopLink ADF design time however currently does not have support for OX mappings.
Hope this helps, -
Custom Mapping: Storing embedded objects to column of Oracle Object type
Hello,
How hard in your opinion it would be to write custome mapping to store an
embedded object which only have simple fields in it (no references to other
persistent classes) to oracle object column. What superclass is the best for
the job?
Simplest approach I see is to define "none" mapped class for my embedded
object and use transformation mapping to do the job
What if I need to reference other persistent objects in my embedded one - do
you think it will make any difference?
Thank you for your assistance
Alexoverriding loadProjection() took care of this issue
"Alex Roytman" <[email protected]> wrote in message
news:cjslsb$uo6$[email protected]..
Looks like transform mapping would not work - Kodo does not support object
mappings (use stream instead) or I am missing something?
"Alex Roytman" <[email protected]> wrote in message
news:cjshqv$ref$[email protected]..
Hello,
How hard in your opinion it would be to write custome mapping to store an
embedded object which only have simple fields in it (no references to
other persistent classes) to oracle object column. What superclass is the
best for the job?
Simplest approach I see is to define "none" mapped class for my embedded
object and use transformation mapping to do the job
What if I need to reference other persistent objects in my embedded one -
do you think it will make any difference?
Thank you for your assistance
Alex -
Concurrency and Oracle Object Types
Hi All,
I have a question regarding Concurrent usage of an Object type in Oracle.
I have a java program which calls an Oracle stored proc with the object's table type as IN parameter. In my stored proc, I am populating an Oracle Object with data received from java and retrieving some data based on that.
My java program can be invoked concurrently by 500 users at the same time - the application is built to handle that request load.
Now in Oracle, if a bunch of requests are received at the same, would Oracle create multiple instances of this object type that would be usage to the multiple stored proc invocations? Or would there be a prob of concurrency?
If multiple instance creation is not supported, is there some alternative I can use?
My code roughly resembles:
Object:
contains two columns - name, age
Stored proc - logic to retrieve and return data from a table based on the name, age received.
When a bunch of requests access the stored proc simultaneously, will a bunch of instnaces of the object type get created? Or would there be a scenario where the object is common to all requests and hence data from one request would be conflicted due to data from another request?Hi Wiiliam
Sorry for the late acknowledgement (i dozed off!).. Thanks for the response. So the private instance specific to a session ensure that theres no conflict between multiple requests to the same stored proc and hence no conflict of data... Great
Chaitanya -
ORACLE OBJECTS FOR OLE(OO4O) PERFORMANCE TUNING
제품 : ORACLE SERVER
작성날짜 : 1997-10-10
ODBC의 경우는 Block단위로 data를 Query하는데 비해 OLE의 경우는 한번에 전체
의 자료를 가져다가 Temporary storage space에 넣게 됩니다.
그래서 튜닝을 위해서는
Windows 3.1의 경우는 c:/windows/oraole.ini
WIN95의 경우는 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OO4O
parameters를 수정해야 합니다.
만일 위의 File이 없는 경우는 모든 변수가 Default로 설정된 경우이므로 인스톨
된 Help를 자세히 읽어보고 적용을 해야합니다.
FetchLimit이 가장 큰 영향을 끼치는 파라미터로, 일반적으로 이 값이 클수록
속도가 빨라지게 됩니다. 다음은 관련 자료입니다.
Tuning and Customization
A number of working parameters of Oracle Objects for OLE can be
customized. Access to these parameters is provided through the Oracle
initialization file, by default named ORAOLE.INI.
Each entry currently available in that file is described below. The location
of the ORAOLE.INI file is specified by the ORAOLE environment variable.
Note that this variable should specify a full pathname to the Oracle
initialization file, which is not necessarily named ORAOLE.INI. If this
environment variable is not set, or does not specify a valid file entry, then
Oracle Objects for OLE looks for a file named ORAOLE.INI in the Windows
directory. If this file does not exist, all of the default values
listed will apply.
You can customize the following sections of the ORAOLE.INI file:
[Cache Parameters]
A cache consisting of temporary data files is created to manage amounts
of data too large to be maintained exclusively in memory. This cache
is needed primarily for dynaset objects, where, for example, a single
LONG RAW column can contain more data than exists in physical
(and virtual) emory.
The default values have been chosen for simple test cases, running on a machine
with limited Windows resources. Tuning with respect to your machine and
applications is recommended.
Note that the values specified below are for a single cache, and that a separate
cache is allocated for each object that requires one. For example, if
your application contains three dynaset objects, three independent data
caches are constructed, each using resources as described below.
SliceSize = 256 (default)
This entry specifies the minimum number of bytes used to store a piece
of data in the cache. Items smaller than this value are allocated the
full SliceSize bytes for storage; items larger than this value are
allocated an integral multiple of this space value. An example of an
item to be stored is a field value of a dynaset.
PerBlock = 16 (default)
This entry specifies the number of Slices (described in the preceding
entry) that are stored in a single block. A block is the minimum unit
of memory or disk allocation used within the cache. Blocks are read
from and written to the disk cache temporary file in their entirety. Assuming a SliceSize of 256 and a PerBlock value of 16, then the block
size is 256 * 16 = 4096 bytes.
CacheBlocks = 20 (default)
This entry specifies the maximum number of blocks held in memory at any
one time. As data is added to the cache, the number of used blocks
grows until the value of CacheBlocks is reached. Previous blocks are
swapped from memory to the cache temporary disk file to make room for
more blocks. The blocks are swapped based upon recent usage. The total
amount of memory used by the cache is calculated as the product of
(SliceSize * PerBlock * CacheBlocks).
Recommended Values: You may need to experiment to find optimal cache parameter
values for your applications and machine environment. Here are some guidelines
to keep in mind when selecting different values:
The larger the (SliceSize * PerBlock) value, the more disk I/O is
required for swapping individual blocks. The smaller the (SliceSize * PerBlock) value, the
more likely it is that blocks will need to be swapped to or from disk.
The larger the CacheBlocks value, the more memory is required, but the
less likely it is that Swapping will be required.
A reasonable experiment for determining optimal performance might
proceed as follows:
Keep the SliceSize >= 128 and vary PerBlock to give a range of block
sizes from 1K through 8K.
Vary the CacheBlocks value based upon available memory. Set it high
enough to avoid disk I/O, but not so high that Windows begins swapping
memory to disk.
Gradually decrease the CacheBlocks value until performance degrades or
you are satisfied with the memory usage. If performance drops off,
increase the CacheBlocks value once again as needed to restore
performance.
[Fetch Parameters]
FetchLimit = 20 (default)
This entry specifies the number of elements of the array into which data
is fetched from Oracle. If you change this value, all fetched values
are immediately placed into the cache, and all data is retrieved from
the cache. Therefore, you should create cache parameters such that all
of the data in the fetch arrays can fit into cache memory. Otherwise,
inefficiencies may result.
Increasing the FetchLimit value reduces the number of fetches (calls
to the database) calls and possibly the amount of network traffic.
However, with each fetch, more rows must be processed before user
operations can be performed. Increasing the FetchLimit increases
memory requirements as well.
FetchSize = 4096 (default)
This entry specifies the size, in bytes, of the buffer (string) used for
retrieved data. This buffer is used whenever a long or long raw column
is initially retrieved.
[General]
TempFileDirectory = [Path]
This entry provides one method for specifying disk drive and directory
location for the temporary cache files. The files are created in the
first legal directory path given by:
1.The drive and directory specified by the TMP environment variable
(this method takes precedence over all others);
2.The drive and directory specified by this entry (TempFileDirectory)
in the [general] section of the ORAOLE.INI file;
3.The drive and directory specified by the TEMP environment variable; or
4.The current working drive and directory.
HelpFile = [Path and File Name]
This entry specifies the full path (drive/path/filename) of the Oracle Objects
for OLE help file as needed by the Oracle Data Control. If this entry cannot
be located, the file ORACLEO.HLP is assumed to be in the directory where
ORADC.VBX is located
(normally \WINDOWS\SYSTEM).제품 : ORACLE SERVER
작성날짜 : 1997-10-10
ODBC의 경우는 Block단위로 data를 Query하는데 비해 OLE의 경우는 한번에 전체
의 자료를 가져다가 Temporary storage space에 넣게 됩니다.
그래서 튜닝을 위해서는
Windows 3.1의 경우는 c:/windows/oraole.ini
WIN95의 경우는 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OO4O
parameters를 수정해야 합니다.
만일 위의 File이 없는 경우는 모든 변수가 Default로 설정된 경우이므로 인스톨
된 Help를 자세히 읽어보고 적용을 해야합니다.
FetchLimit이 가장 큰 영향을 끼치는 파라미터로, 일반적으로 이 값이 클수록
속도가 빨라지게 됩니다. 다음은 관련 자료입니다.
Tuning and Customization
A number of working parameters of Oracle Objects for OLE can be
customized. Access to these parameters is provided through the Oracle
initialization file, by default named ORAOLE.INI.
Each entry currently available in that file is described below. The location
of the ORAOLE.INI file is specified by the ORAOLE environment variable.
Note that this variable should specify a full pathname to the Oracle
initialization file, which is not necessarily named ORAOLE.INI. If this
environment variable is not set, or does not specify a valid file entry, then
Oracle Objects for OLE looks for a file named ORAOLE.INI in the Windows
directory. If this file does not exist, all of the default values
listed will apply.
You can customize the following sections of the ORAOLE.INI file:
[Cache Parameters]
A cache consisting of temporary data files is created to manage amounts
of data too large to be maintained exclusively in memory. This cache
is needed primarily for dynaset objects, where, for example, a single
LONG RAW column can contain more data than exists in physical
(and virtual) emory.
The default values have been chosen for simple test cases, running on a machine
with limited Windows resources. Tuning with respect to your machine and
applications is recommended.
Note that the values specified below are for a single cache, and that a separate
cache is allocated for each object that requires one. For example, if
your application contains three dynaset objects, three independent data
caches are constructed, each using resources as described below.
SliceSize = 256 (default)
This entry specifies the minimum number of bytes used to store a piece
of data in the cache. Items smaller than this value are allocated the
full SliceSize bytes for storage; items larger than this value are
allocated an integral multiple of this space value. An example of an
item to be stored is a field value of a dynaset.
PerBlock = 16 (default)
This entry specifies the number of Slices (described in the preceding
entry) that are stored in a single block. A block is the minimum unit
of memory or disk allocation used within the cache. Blocks are read
from and written to the disk cache temporary file in their entirety. Assuming a SliceSize of 256 and a PerBlock value of 16, then the block
size is 256 * 16 = 4096 bytes.
CacheBlocks = 20 (default)
This entry specifies the maximum number of blocks held in memory at any
one time. As data is added to the cache, the number of used blocks
grows until the value of CacheBlocks is reached. Previous blocks are
swapped from memory to the cache temporary disk file to make room for
more blocks. The blocks are swapped based upon recent usage. The total
amount of memory used by the cache is calculated as the product of
(SliceSize * PerBlock * CacheBlocks).
Recommended Values: You may need to experiment to find optimal cache parameter
values for your applications and machine environment. Here are some guidelines
to keep in mind when selecting different values:
The larger the (SliceSize * PerBlock) value, the more disk I/O is
required for swapping individual blocks. The smaller the (SliceSize * PerBlock) value, the
more likely it is that blocks will need to be swapped to or from disk.
The larger the CacheBlocks value, the more memory is required, but the
less likely it is that Swapping will be required.
A reasonable experiment for determining optimal performance might
proceed as follows:
Keep the SliceSize >= 128 and vary PerBlock to give a range of block
sizes from 1K through 8K.
Vary the CacheBlocks value based upon available memory. Set it high
enough to avoid disk I/O, but not so high that Windows begins swapping
memory to disk.
Gradually decrease the CacheBlocks value until performance degrades or
you are satisfied with the memory usage. If performance drops off,
increase the CacheBlocks value once again as needed to restore
performance.
[Fetch Parameters]
FetchLimit = 20 (default)
This entry specifies the number of elements of the array into which data
is fetched from Oracle. If you change this value, all fetched values
are immediately placed into the cache, and all data is retrieved from
the cache. Therefore, you should create cache parameters such that all
of the data in the fetch arrays can fit into cache memory. Otherwise,
inefficiencies may result.
Increasing the FetchLimit value reduces the number of fetches (calls
to the database) calls and possibly the amount of network traffic.
However, with each fetch, more rows must be processed before user
operations can be performed. Increasing the FetchLimit increases
memory requirements as well.
FetchSize = 4096 (default)
This entry specifies the size, in bytes, of the buffer (string) used for
retrieved data. This buffer is used whenever a long or long raw column
is initially retrieved.
[General]
TempFileDirectory = [Path]
This entry provides one method for specifying disk drive and directory
location for the temporary cache files. The files are created in the
first legal directory path given by:
1.The drive and directory specified by the TMP environment variable
(this method takes precedence over all others);
2.The drive and directory specified by this entry (TempFileDirectory)
in the [general] section of the ORAOLE.INI file;
3.The drive and directory specified by the TEMP environment variable; or
4.The current working drive and directory.
HelpFile = [Path and File Name]
This entry specifies the full path (drive/path/filename) of the Oracle Objects
for OLE help file as needed by the Oracle Data Control. If this entry cannot
be located, the file ORACLEO.HLP is assumed to be in the directory where
ORADC.VBX is located
(normally \WINDOWS\SYSTEM). -
Connection pooling does not work Oracle Objects! Oracle please respond!
The problem is that when we retrieve Oracle Objects using pooled connection (closing logical connection at the end of every call)it takes 6-8 times longer than in case we share the same physical connection for all database calls. Parts of our application which do not utilize Oracle Objects (just old good relational data) works just fine with pooled connections - no performance degradation
This is my reconstruction of f the what is happening behind the seen, so some parts can be not entirely correct.
OracleConnection class caches StructDescriptor objects in descriptorCache hash table. StructDescriptor objects map content of oracle STRUCTs which are retrieved through the connection onto oracle type names. For example if you retrieve an instance of HR.EMPLOYEE_T oracle object from database some metadata will be retrieved and stored as an entry in descriptorCache cache table associated with "HR.EMPLOYEE_T" key to assist CustomDatum interface. It is a time consuming process and caching of this metadata improves it dramatically.
Now when using pooled connection descriptorCache gets cleared when you close your logical connection (java.sql.Connection) so next time you get a connection from your pooled connection it will have to repopulate the cache which as I said is very time consuming. As a result even though we can reuse our physical connection by using pooled connection whole setup does not work - fetching metadata takes a long time and we cant use Oracle objects in EJB environment (or Servlet environment)
Alex Roytman
Peace Technology, Inc.
(301) 206-9696
nullcheck out managed datasources in the manuals
-
Working with Oracle Objects in JAVA - How-to do with views
Hello,
I am trying to access to Oracle object types from Java.
My problem is, I have relational tables, Object Types and Object Views.
All the examples I found from Oracle manuals are working with Object Tables(Table column is created as Object Type).
You run a query and get this object type (oraconn.GetObject(1)) and the query is (SELECT * FROM Object_Table) so its get first column(which is an object type) and cast it to Java Class(with SQLDATA or ORADATA).
The problem is that my data is in Relational Tables and I don't want to export them to Object tables.
I want to get it from Object View.
Is this possible? Or better is anybody has an example???
Thx in advanceHi,
I think you will be able to help me. your question made me to think that you will be able to help me. Here the question goes.
I have a Stored Procedure which returns a user defined ROWTYPE(its a IN OUT param to the procedure). I need to call this procedure from my Java program. So I would like to know how to do it. Do we need to use any packages provided by oracle or some thing like that.
thanks & regards,
Anil.
[email protected] -
Working with Oracle Objects in JAVA - How to with views
Hello,
I am trying to access to Oracle object types from Java.
My problem is, I have relational tables, Object Types and Object Views.
All the examples I found from Oracle manuals are working with Object Tables(Table column is created as Object Type).
You run a query and get this object type (oraconn.GetObject(1)) and the query is (SELECT * FROM Object_Table) so its get first column(which is an object type) and cast it to Java Class(with SQLDATA or ORADATA).
The problem is that my data is in Relational Tables and I don't want to export them to Object tables.
I want to get it from Object View.
Is this possible? Or better is anybody has an example???
Thx in advanceHi,
I think you will be able to help me. your question made me to think that you will be able to help me. Here the question goes.
I have a Stored Procedure which returns a user defined ROWTYPE(its a IN OUT param to the procedure). I need to call this procedure from my Java program. So I would like to know how to do it. Do we need to use any packages provided by oracle or some thing like that.
thanks & regards,
Anil.
[email protected] -
How to return Values from Oracle Object Type to Java Class Object
Hello,
i have created an Oracle Object Types in the Database. Then i created Java classes with "jpub" of these types. Here is an example of the type.
CREATE OR REPLACE TYPE person_type AS OBJECT
ID NUMBER,
vorname VARCHAR2(30),
nachname VARCHAR2(30),
geburtstag DATE,
CONSTRUCTOR FUNCTION person_type RETURN SELF AS RESULT,
CONSTRUCTOR FUNCTION person_type(p_id NUMBER) RETURN SELF AS RESULT,
CONSTRUCTOR FUNCTION person_type(p_vorname VARCHAR2,
p_nachname VARCHAR2,
p_geburtstag DATE) RETURN SELF AS RESULT,
MEMBER FUNCTION object_exists(p_id NUMBER) RETURN BOOLEAN,
MEMBER PROCEDURE load_object(p_id NUMBER),
MEMBER PROCEDURE save_object,
MEMBER PROCEDURE insert_object,
MEMBER PROCEDURE update_object,
MEMBER PROCEDURE delete_object
MEMBER PROCEDURE load_object(p_id NUMBER) IS
BEGIN
SELECT p.id, p.vorname, p.nachname, p.geburtstag
INTO SELF.ID, SELF.vorname, self.nachname, SELF.geburtstag
FROM person p
WHERE p.id = p_id;
END;
My problem is, that if i use the member function "load_object" from my java app it doesnt return the selected values to the java class and i dont know why. I use the java class like this:
PersonObjectType p = new PersonObjectType();
p.load_object(4);
There is a reocrd in the database with id = 4 and the function will execute successful. But if i try to use "p.getVorname()" i always get "NULL". Can someone tell me how to do that?
Thanks a lot.
Edited by: NTbc on 13.07.2010 15:36
Edited by: NTbc on 13.07.2010 15:36CallableStatement =
"DECLARE
a person_type;
BEGIN
a.load_object(4);
? := a;
END;"
And register as an out parameter.
Edited by: michael76 on 14.07.2010 05:01 -
When target DB is down in which table is the data from source is stored, also where are the error messages stored in ODI( I am not getting any error message in E$_TARGET_ANI_TEST).
When i am running the interface i am getting the below error against the errored step
"ORA-01045: user ABC lacks CREATE SESSION privilege; logon denied."
Only E$_TARGET_ANI_TEST is created with no data. No such tables like C$_0TARGET_ANI_TEST, I$_TARGET_ANI_TEST are created and also data is not inserted in the target table TARGET_ANI_TEST.Hi,
I have checked that only E$ table is created. C$ and I$ table are not created ( I have selected my target schema as the part for the staging table).
All the parameters for dropping the tables are selected as "<default>:false".
I am importing the following KMs with the following parameters:
1) CKM Oracle
DROP_ERROR_TABLE
:false
DROP_CHECK_TABLE
:false
CREATE_ERROR_INDEX
:true
COMPATIBLE
:9
VALIDATE
:false
ENABLE_EDITION_SUPPORT
:false
UPGRADE_ERROR_TABLE
:false
2) LKM SQL to SQL
DELETE_TEMPORARY_OBJECTS
:true
3) IKM SQL Incremental Update
INSERT
:true
UPDATE
:true
COMMIT
:true
SYNC_JRN_DELETE
:true
FLOW_CONTROL
:true
RECYCLE_ERRORS
:false
STATIC_CONTROL
:false
TRUNCATE
:false
DELETE_ALL
:false
CREATE_TARG_TABLE
:false
DELETE_TEMPORARY_OBJECTS
:true -
Memory leak problem while passing Object to stored procedure from C++ code
Hi,
I am facing memory leak problem while passing object to oracle stored procedure from C++ code.Here I am writing brief description of the code :
1) created objects in oracle with the help of "create or replace type as objects"
2) generated C++ classes corresponding to oracle objects with the help of OTT utility.
3) Instantiating classes in C++ code and assigning values.
4) calling oracle stored procedure and setting object in statement with the help of setObject function.
5) deleted objects.
this is all I am doing ,and getting memory leak , if you need the sample code then please write your e-mail id , so that I can attach files in reply.
TIA
Jagendrajust to correct my previous reply , adding delete statement
Hi,
I am using oracle 10.2.0.1 and compiling the code with Sun Studio 11, following is the brief dicription of my code :
1) create oracle object :
create or replace type TEST_OBJECT as object
( field1 number(10),
field2 number(10),
field3 number(10) )
2) create table :
create table TEST_TABLE (
f1 number(10),f2 number (10),f3 number (10))
3) create procedure :
CREATE OR REPLACE PROCEDURE testProc
data IN test_object)
IS
BEGIN
insert into TEST_TABLE( f1,f2,f3) values ( data.field1,data.field2,data.field3);
commit;
end;
4) generate C++ classes along with map file for database object TEST_OBJECT by using Oracle OTT Utility
5) C++ code :
// include OTT generate files here and other required header files
int main()
int x = 0;
int y = 0;
int z =0;
Environment *env = Environment::createEnvironment(Environment::DEFAULT);
Connection* const pConn =
env->createConnection"stmprf","stmprf","spwtrgt3nms");
const string sqlStmt("BEGIN testProc(:1) END;");
Statement * pStmt = pConn->createStatement(sqlStmt);
while(1)
TEST_OBJECT* pObj = new TEST_OBJECT();
pObj->field1 = x++;
pObj->field2 = y++;
pObj->field3 = z++;
pStmt->setObject(1,pObj);
pStmt->executeUpdate();
pConn->commit();
delete pObj;
} -
Use of Complex Oracle Object with JDBC
How can I use Oracle Object(or PL/Sql type) with JDBC
I have a structure of record with some attributes and table of another attribute.
My types are defined as follows !
<code>
CREATE TYPE EMPLOYEE_GRADES AS TABLE OF VARCHAR2(50)
CREATE TYPE EMPLOYEES AS OBJECT(EmpName VARCHAR2(50), EmpGrades Employee_Grades)
</code>
My custom object might have the following structure (or should it be different)
<code>
public class EmpColl implements CustomDatum, CustomDatumFactory
-- other stuff ----
/* fields */
public String empName;
public Collection empNos;
</code>
I want to pass an variable of type EMPLOYEES to an procedure.
Thanx in Advance
Chetan
[email protected]<code>
CREATE TYPE EMPLOYEE_GRADES AS TABLE OF VARCHAR2(50)
CREATE TYPE EMPLOYEES AS OBJECT(EmpName VARCHAR2(50), EmpGrades Employee_Grades)
</code>The easiest is to use JPublisher (which comes with the SQLJ distribution).
Say:
jpub -user=username/password -sql=EMPLOYEES:Employees,EMPLOYEE_GRADES:EmployeeGrades
You will get (among others) the Java files Employees.java and EmployeeGrade.java. Go ahead, compile and use them.
Look in [Oracle Home]/sqlj/demo/jpub for a number of additional examples, and in the JPublisher User's Guide for background info.
The next (9.2) release of JPublisher will also provide some support for accessing legacy PL/SQL types from Java. -
Oracle Object Views Jdeveloper compatibility
Our application has been designed OOAD and documented in UML. We mapped the UML class diagrams to relational tables and created Oracle object views on top of these tables. From these views we can now generate C++ code with OTT. However, trying to access these views from JDeveloper gives us some problems. Specifically, if an object type defined by "CREATE TYPE xxx AS OBJECT" has a REF column somewhere inside it, there seems to be very little support for this in JDeveloper 10g. Our example is a country with numerous provinces. A provice type has a reference to the country type it falls in. Trying to make a GUI to maintain the provinces gives us no way to select a country to make the REF column from. In JDeveloper, when using the object view to create a maintenance GUI, we see the reference to the country in binary form. Typically we would want to select the country from a drop-down box containing country names instead of binary references. Can someone please point me to documentation describing how to do this or explain here. Thank you in advance.
Not sure if this will be helpful for you, but maybe a better approach for your Java project will be to use TopLink to map your Java objects directly to the relational schema using TopLink's meet-in-the-middle capabilities.
This way you won't need to work with the Object views in the database.
More on TopLink here:
http://www.oracle.com/technology/products/ias/toplink/index.html
Some demos of the mapping capabilities are here:
http://www.oracle.com/technology/products/ias/toplink/mwdemos/index.html
TopLink is very well integrated with JDeveloper 10.1.2 -
Oracle object cols and inserts
hi,
i have a type defined as follows
create type foo
a number(10),
b number(10),
c date, d date);
now i use this in a table as follows
create table test
foo_obj foo default foo(-1, -1, sysdate, sysdate) not null,
foo_name varchar2(100) not null
now what im really interested in is when i do
an insert id like to specify only some of
the values for a given obj
aka
insert into test(foo_obj, foo_name)
values (foo_obj.a(10), 'test')
so the rest of the values for that obj
come from the defaults specified..
ive been unable to find examples for the above method in the 8i docs & any help here
on the correct syntax with an example would
help enormously
thanx
pete
nullOracle® Database Object-Relational Developer's Guide
Also note that object relational database design is often less performant and scalable than relational. It is not very often used in production environments.
However, the object orientated programming feature that is provided with Oracle object feature set are used and can make development and interfaces a lot easier.
So in a nutshell. Say no to ref and nested table columns. Say yes to most of the other object features. IMO of course...
Maybe you are looking for
-
IPhone Problem Hardware and Software Overview
Dear iPhone Users, over the time I myself have been using the iPhone for some months and discovered some hardware and aoftware problems, with perhaps some solutions to such problems. a) The "Dead-Flashlight" Error: This is an annoying error, which is
-
How to restrict instance in swimlane to initiating User only?
Hi, In my process, using BPM 11.1.1.6, there are two swimlanes. The first swimlane (SUBMITTER) allows a user to instantiate an instance, and after some service tasks, the user moves to the next human task, in the same lane. On submission, the instanc
-
I have an iPhone 5 and I tried to use my personal hotspot but I don't have settings for it. When I called Talk Talk - they were unable to provide me woth the settings (as they do not selol iPhones and I bought a sim only contract). Where can I get th
-
Material master upload-Batch input method
I am trying to extend sales view.When i try to upload,the system is thrwing error msg * 172 You have not fully maintained the tax classifications* The field is TAXKM,but this field not availbale in the field mapping.How to map this field & up
-
What is minimum runtime engine size when installed on XP embedded OS
I hope to build move an existing Labview 8.6 application to a Windows XP embedded machine and would like to know if their are any tools available to help minimize the hard disk memory requirement, specifically can the runtime engine installation be m