DBMS_XMLSave package
I'm trying to use the DBMS_XMLSave package and the stored procedure won't compile saying it doesn't know what DBMS_XMLSave.ctxType is. Does the express edition not support this package?
Thank you for your response. I did change it to use DBMS_XMLSTORE and it does see the package. However it tells me that the insertXML procedure doesn't exist when I try to call DBMS_XMLSTORE.insertXML.
Any ideas?
Thanks again.
Similar Messages
-
Error while using DBMS_XMLSave package...
Hi All,
I am using DBMS_XMLSave package and when I try to execute the following code, it is giving me error "Java call terminated by uncaught Java exception:"
I am executing following code ....
declare
insCtx DBMS_XMLSave.ctxType;
begin
insCtx := DBMS_XMLSave.newContext('scott.emp');
end;
I am getting following error ...
ERROR at line 1:
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.ExceptionInInitializerError
ORA-06512: at "SYS.DBMS_XMLSAVE"
ORA-06512: at line
Please help me to overcome the problem....
Thanx in advance ,
YogeshFound maybe an applicable reference...
On http://publib.boulder.ibm.com/infocenter/wasinfo/v4r0/index.jsp?topic=/com.ibm.support.was.doc/html/Java_2_Connectivity_(J2C)/1163246.html
it says:
* Application code is missing a setXXX method call somewhere.
* There might be a problem in the Oracle JDBC driver code.
If the latter is the problem than you should or try a different JDBC driver or (which is probably the best solution anyway) create an iTar with Oracle support via metalink.oracle.com
Other references can also be found on the internet when using google which could be applicable. Search on keywords: "Missing IN or OUT parameter at index"
Message was edited by:
mgralike -
DBMS_XMLQuery and DBMS_XMLSave package
I have Oracle 8.1.7
Where can I get DBMS_XMLQuery and DBMS_XMLSave package using samples
The Documentation I have doesn't contain any.I did what you asked, but still get the following error when running my statement to create xml from a sql statement.
SQL> @xml01
declare
ERROR at line 1:
ORA-29541: class SYS.oracle/xml/sql/query/OracleXMLStaticQuery could not be
resolved
ORA-06512: at "SYS.DBMS_XMLQUERY", line 46
ORA-06512: at line 7
Below is copy of the contents of catxsu.sql script.
call sys.dbms_java.loadjava ('-v -r -s -grant PUBLIC rdbms/jlib/xsu12.jar');
@@dbmsxsu.sql
@@xmlgen.sql
create public synonym dbms_xmlsave for dbms_xmlsave;
create public synonym dbms_xmlquery for dbms_xmlquery;
create public synonym xmlgen for xmlgen;
Below is output from catxsu.sql run this time.
SQL> @catxsu
Call completed.
Package created.
No errors.
Package body created.
No errors.
Grant succeeded.
Package created.
No errors.
Package body created.
No errors.
Grant succeeded.
Package created.
No errors.
Package body created.
No errors.
Grant succeeded.
create public synonym dbms_xmlsave for dbms_xmlsave
ERROR at line 1:
ORA-00955: name is already used by an existing object
create public synonym dbms_xmlquery for dbms_xmlquery
ERROR at line 1:
ORA-00955: name is already used by an existing object
create public synonym xmlgen for xmlgen
ERROR at line 1:
ORA-00955: name is already used by an existing object
SQL> exit
I appreciate your help. Any more ideas? This is working for me on another server and database, but not sure what the difference is with this one.
Thanks,
Tim Gerringer -
Error when using DBMS_XMLSave package
Hi,
I am a novice at XML technology. And although I have picked up on the basics, please do bear with my questions. My requirement is that we are receiving XML files in a particular format (as below), which I need to load into Oracle tables.
<?xml version="1.0"?>
<Root_Element>
<Examinee>
<MACode>A</MACode>
<TestingJID>TN</TestingJID>
<ExamineeID>100001</ExamineeID>
<CreateDate>20020221</CreateDate>
<Demographic>
<InfoDate>20020221</InfoDate>
<FirstTime>1</FirstTime>
<LastName>JANE</LastName>
<FirstName>DOE</FirstName>
<MiddleInitial>C</MiddleInitial>
<LithoNumber>73</LithoNumber>
<IdType>1</IdType>
<IdNumber>30738</IdNumber>
<DOB>19630525</DOB>
<EthnicCode>1</EthnicCode>
<GenderCode>2</GenderCode>
<MilitaryCode/>
<MSCode/>
<RFT01>1</RFT01>
<RFT02></RFT02>
<RFT03></RFT03>
<RFT17></RFT17>
<StreetAddress>SomeAddress</StreetAddress>
<City>SomeCity</City>
<StateCode>TN</StateCode>
<ZipCode>37000</ZipCode>
<EdLevel>8</EdLevel>
<SU01> </SU01>
<SU02> </SU02>
<SU03> </SU03>
<SU04> </SU04>
<TestCenterCode>34</TestCenterCode>
<PassStatus>1</PassStatus>
<CompleteStatus>1</CompleteStatus>
<CompleteDate>20020221</CompleteDate>
<TotStdScore>268</TotStdScore>
<AvgStdScore>53.6</AvgStdScore>
<CredJID>TN</CredJID>
<CredStatus>1</CredStatus>
<CredNbr>100001</CredNbr>
<CredDate>20020310</CredDate>
</Demographic>
<Test>
<TestDate>20020221</TestDate>
<TestNbr>1</TestNbr>
<SrlNbr>13773784</SrlNbr>
<Fmt>3</Fmt>
<Frm>23</Frm>
<Raw>47</Raw>
<Top>10</Top>
<RN1>30</RN1>
<RN2>35</RN2>
<RN3></RN3>
<RS1>4</RS1>
<RS2>4</RS2>
<RS3></RS3>
<ESY>8</ESY>
<Std>58</Std>
<Rnk>81</Rnk>
<FErr>0</FErr>
<EErr>0</EErr>
<MErr>0</MErr>
<JErr>0</JErr>
<AErr>0</AErr>
<QErr>0</QErr>
<Best>1</Best>
<Inactive>0</Inactive>
<Response>4,4,4,2,2,5,1,1,2,4,5,5,5,1,3,1,5,4,1,1,5,3,1,3,5,4,4,4,4,3,1,4,1,1,3,4,2,4,4,3,1,1,4,5,4,3,1,2,4,1, , , , , </Response>
</Test>
<Test>
<TestDate>20020221</TestDate>
<TestNbr>2</TestNbr>
<SrlNbr>13773784</SrlNbr>
<Fmt>3</Fmt>
<Frm>23</Frm>
<Raw>46</Raw>
<Std>53</Std>
<Rnk>67</Rnk>
<FErr>0</FErr>
<EErr>0</EErr>
<MErr>0</MErr>
<JErr>0</JErr>
<AErr>0</AErr>
<QErr>0</QErr>
<Best>1</Best>
<Inactive>0</Inactive>
<Response>5,3,5,3,2,4,3,4,3,3,2,4,3,2,2,3,2,2,2,3,1,4,3,5,4,3,1,1,2,1,2,4,5,5,2,5,4,5,4,1,3,2,1,4,1,3,2,4,2,1,1,1,4,4,5,2,3,2,1, , , , , </Response>
</Test>
</Examinee>
</Root_Element>
We will be creating new tables, so taking into account the nested structures we decided to go the object-relational route. The "Examinee" is on the higher level with a single "Demographic" and multiple "Test" under it. This is what we have created.
create or replace type DEMOGRAPHIC_TY as object (
InfoDate VARCHAR2(50),
FirstTime VARCHAR2(50),
LastName VARCHAR2(50),
FirstName VARCHAR2(50),
MiddleInitial VARCHAR2(50),
LithoNumber VARCHAR2(50),
IdType VARCHAR2(50),
IdNumber VARCHAR2(50),
DOB VARCHAR2(50),
EthnicCode VARCHAR2(50),
GenderCode VARCHAR2(50),
MilitaryCode VARCHAR2(50),
MSCode VARCHAR2(50),
RFT01 VARCHAR2(50),
RFT02 VARCHAR2(50),
RFT03 VARCHAR2(50),
RFT17 VARCHAR2(50),
StreetAddress VARCHAR2(50),
City VARCHAR2(50),
StateCode VARCHAR2(50),
ZipCode VARCHAR2(50),
EdLevel VARCHAR2(50),
SU01 VARCHAR2(50),
SU02 VARCHAR2(50),
SU03 VARCHAR2(50),
SU04 VARCHAR2(50),
TestCenterCode VARCHAR2(50),
PassStatus VARCHAR2(50),
CompleteStatus VARCHAR2(50),
CompleteDate VARCHAR2(50),
TotStdScore VARCHAR2(50),
AvgStdScore VARCHAR2(50),
CredJID VARCHAR2(50),
CredStatus VARCHAR2(50),
CredDate VARCHAR2(50),
CredNbr VARCHAR2(50));
create or replace type TEST_TY as object (
TestDate VARCHAR2(50),
TestNbr VARCHAR2(50),
SrlNbr VARCHAR2(50),
Fmt VARCHAR2(50),
Frm VARCHAR2(50),
"Raw" VARCHAR2(50),
Top VARCHAR2(50),
RN1 VARCHAR2(50),
RN2 VARCHAR2(50),
RN3 VARCHAR2(50),
RS1 VARCHAR2(50),
RS2 VARCHAR2(50),
RS3 VARCHAR2(50),
ESY VARCHAR2(50),
Std VARCHAR2(50),
Rnk VARCHAR2(50),
FErr VARCHAR2(50),
EErr VARCHAR2(50),
MErr VARCHAR2(50),
JErr VARCHAR2(50),
AErr VARCHAR2(50),
QErr VARCHAR2(50),
Best VARCHAR2(50),
Inactive VARCHAR2(50),
Response VARCHAR2(100));
create or replace type TEST_NT as table of TEST_TY;
create table EXAMINEE (
MACode VARCHAR2(50),
TestingJID VARCHAR2(50),
ExamineeID VARCHAR2(50),
CreateDate VARCHAR2(50),
Demographic DEMOGRAPHIC_TY,
Test TEST_NT)
nested table Test store as Test
CREATE DIRECTORY XML_DIR AS 'C:\TestXML';
CREATE TABLE XML_TEMP (key NUMBER, f_lob BFILE);
INSERT INTO XML_TEMP VALUES (1,BFILENAME('XML_DIR','M01.XML'));
And this is the procedure,
CREATE OR REPLACE PROCEDURE loadxml AS
insCtx sys.DBMS_XMLSave.ctxType;
rows number;
fil BFILE;
buffer RAW(32767);
len INTEGER;
insrow INTEGER;
BEGIN
SELECT f_lob INTO fil FROM xml_temp WHERE key = 1;
DBMS_LOB.FILEOPEN(fil,DBMS_LOB.FILE_READONLY);
len := DBMS_LOB.GETLENGTH(fil);
DBMS_LOB.READ(fil,len,1,buffer);
insCtx := sys.DBMS_XMLSave.newContext('examinee'); -- get the context handle
rows := sys.DBMS_XMLSave.insertXML(insCtx,buffer); -- this inserts the document
sys.DBMS_XMLSave.closeContext(insCtx); -- this closes the handle
IF DBMS_LOB.FILEISOPEN(fil) = 1 THEN
DBMS_LOB.FILECLOSE(fil);
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('In Exception');
DBMS_OUTPUT.PUT_LINE(SQLERRM(SQLCODE));
IF DBMS_LOB.FILEISOPEN(fil) = 1 THEN
DBMS_LOB.FILECLOSE(fil);
END IF;
end;
And when I execute this, it gives an error,
In Exception
ORA-29532: Java call terminated by uncaught Java exception: oracle.xml.sql.OracleXMLSQLException: Start of root element expected.
I have tried to follow the XML Developer Guide as much possible, but might be missing something.
H E L P !!!!
Thanks.When I try the describe, it says object not found. If I go into OEM, I don't see that package either. Again, I didn't create that database, but I thought the XML DB stuff was installed by default with the database. Is there a way to add that package after the database is created?
Thanks,
Andrew -
Update the passed XML in a PL/SQL procedure and then use DBMS_XMLSAVE
hi folks,
This is a great forum and most of you guys were awesome in replying to complex queries........
I have a small issue, I am trying to do a bulk insert from my application by constructing an XML result set and pass that XML to the SP as a CLOB and using DBMS_XMLSAVE package to insert it to the oracle table. It works like a charm for me when this is as straight forward as this. But when my requirement is, I need to generate sequence numbers for a particular column (Primary key column), while for other columns I pass values from the UI (as a XML object which my SP accepts as a CLOB), i am at a loss for solution to achieve this. It would mean, that I have to generate the sequence numbers for each row and then update this value to the passed XML clob. Any indicators on how to achieve this?
I found this solution at one of the thread which might most probably help me,
declare
2 l_cnt number;
3 begin
4 select count(*) into l_cnt from books,xmltable('/Books/Book' passing object_value);
5 for i in 1..l_cnt loop
6 update books set object_value =
7 updatexml(object_value,'/Books/Book['||i||']/BookID', xmlelement("BookID",sequence_bookid.nextval))
8 where existsnode(object_value,'/Books/Book['||i||']')=1;
9 end loop;
10 end;
11 /
But here, they are trying to update a XMLTable book, but in my case the XML is a clob object and not a XML table. Will this solution work for my case as well? Please provide any pointers to me... Thanks...First if your version of Oracle has DBMS_XMLSTORE, use that instead.
Reason: {thread:id=876376} (See Marco's response).
It is possible you could run into issues, but you should start with DBMS_XMLSTORE.
Since you will have the XML in the SP, treat the data as an XMLType instead of a CLOB for as long as you can since you need to do UpdateXML on it.
For your sample PL/SQL code, lines 4-5 are replaced with the WHILE loop shown in Method 2 at
{message:id=3610259}.
The UPDATE would be replaced with the following pseudocode
SELECT UPDATEXML(<l_xmltype_variable>, ...)
INTO <l_xmltype_variable>
FROM dual;
Once your loop is done, l_xmltype_variable would contain your updated XML and then you can use that XMLType directly on the call to DBMS_XMLSTORE or convert it back to a clob via
l_clob_variable := l_xmltype_variable.getClobVal(); -
How to load an XML file to oracle9i server?
I want to use XSU DBMS_XMLsave package to load an XML file to a relational table using PL/SQL from a distant server. Now, I don't know how to load that XML file to the distant server.
Somebody help me?I want to use XSU DBMS_XMLsave package to load an XML file to a relational table using PL/SQL from a distant server. Now, I don't know how to load that XML file to the distant server.
Somebody help me? -
Backup/Recovery from web application
Hello guys,
I am using Oracle 9i as DB and Oracle 9iAS for web application server. I want to provide Backup and Recovery functionality to the user via web. I don't know any thing in this regard.
Is it possible that we can take backup and recovery from web application?
Is there any alternative for this function.
any other comments will be appreciated.
Thank you,
Jawed Nazar AliRead this article in order to get an idea about Java Stored Procedures.
Oracle Developer JAVA STORED PROCEDURES
Simplify with Java Stored Procedures
By Kuassi Mensah
Use Java stored procedures to bridge SQL, XML, Java, and J2EE and Web Services.
Stored procedures allow a clean separation of persistence logic that runs in the database tier from business logic that runs in the middle tier. This separation reduces overall application complexity and increases reuse, security, performance, and scalability.
A major obstacle, however, for widespread adoption of stored procedures is the set of various proprietary, database-dependent implementation languages that different database vendors use. The use of Java-based stored procedures fixes this concern. Oracle has implemented ANSI standards that specify the ability to invoke static Java methods from SQL as procedures or functions. This implementation is called simply "Java stored procedures."
In this article, you will learn how Java stored procedures help simplify and increase the performance of your business logic and extend database functionality. I'll show how Oracle enables the use of Java stored procedures within the database. I'll also look at how Java stored procedures access data, and show how to create a basic Java stored procedure.
PL/SQL or Java
When you think of Oracle stored procedures, you probably think of PL/SQL. Oracle, however, has provided Java support in the database since Oracle8i, to offer an open and portable alternative to PL/SQL for stored procedures. I can hear the $64,000 question: "How do I choose between PL/SQL and Java? Should I forget all the things I've been told about PL/SQL and move on to the greener Java pastures?"
Both languages are suitable for database programming, and each has its strengths and weaknesses. In deciding which language to use, here's a general rule of thumb:
Use PL/SQL for database-centric logic that requires seamless integration with SQL and therefore complete access to database objects, types, and features.
Use Java as an open alternative to PL/SQL for database independence, but also for integrating and bridging the worlds of SQL, XML, J2EE, and Web services.
OracleJVM Lets You Run Java within the Database
Since Oracle8i, Release 1 (Oracle 8.1.5), Oracle has offered a tightly integrated Java virtual machine (JVM) that supports Oracle's database session architecture. Any database session may activate a virtually dedicated JVM during the first Java code invocation; subsequent users then benefit from this already Java-enabled session. In reality, all sessions share the same JVM code and staticsonly private states are kept and garbage collected in an individual session space, to provide Java sessions the same session isolation and data integrity capabilities as SQL operations. There is no need for a separate Java-enabled process for data integrity. This session-based architecture provides a small memory footprint and gives OracleJVM the same linear SMP scalability as the Oracle database.
Creating Java Stored Procedures
There are a few steps involved in turning a Java method into a Java stored procedure. These include loading the Java class into the database using the loadjava utility, and publishing the Java methods using a call specification (Call Spec) to map Java methods, parameter types, and return types to their SQL counterparts. The following section shows how to do this.
I'll use a simple Hello class, with one method, Hello.world(), that returns the string "Hello world":
public class Hello
public static String world ()
return "Hello world";
The Loadjava Utility
Loadjava is a utility for loading Java source files, Java class files, and Java resource files; verifying bytecodes; and deploying Java classes and JAR files into the database. It is invoked either from the command line or through the loadjava() method contained within the DBMS_JAVA class. To load our Hello.class example, type:
loadjava -user scott/tiger Hello.class
As of Oracle9i Release 2, loadjava allows you to automatically publish Java classes as stored procedures by creating the corresponding Call Specs for methods contained in the processed classes. Oracle provides Oracle9i JDeveloper for developing, testing, debugging, and deploying Java stored procedures.
The Resolver Spec
The JDK-based JVM looks for and resolves class references within the directories listed in the CLASSPATH. Because Oracle database classes live in the database schema, the OracleJVM uses a database resolver to look for and resolve class references through the schemas listed in the Resolver Spec. Unlike the CLASSPATH, which applies to all classes, the Resolver Spec is applied on a per-class basis. The default resolver looks for classes first in the schema in which the class is loaded and then for classes with public synonyms.
loadjava -resolve <myclass>
You may need to specify different resolvers, and you can force resolution to occur when you use loadjava, to determine at deployment time any problems that may occur later at runtime.
loadjava -resolve -resolver "((* SCOTT) (foo/bar/* OTHERS)
(* PUBLIC))"
Call Spec and Stored Procedures Invocation
To invoke a Java method from SQL (as well as from PL/SQL and JDBC), you must first publish the public static method through a Call Spec, which defines for SQL the arguments the method takes and the SQL types it returns.
In our example, we'll use SQL*Plus to connect to the database and define a top-level Call Spec for Hello.world():
SQL> connect scott/tiger
SQL> create or replace function helloworld return
VARCHAR2 as language java name 'Hello.world () return
java.lang.String';
Function created.
You can then invoke the Java stored procedure as shown below:
SQL> variable myString varchar2[20];
SQL> call helloworld() into :myString;
Call completed.
SQL> print myString;
MYSTRING
Hello world
Java stored procedures are callable, through their Call Spec, from SQL DML statements (INSERT, UPDATE, DELETE, SELECT, CALL, EXPLAIN PLAN, LOCK TABLE, and MERGE), PL/SQL blocks, subprograms, and packages, as well as database triggers. The beauty of Call Spec is that stored procedure implementations can change over time from PL/SQL to Java or vice versa, transparently to the requesters.
Call Spec abstracts the call interface from the implementation language (PL/SQL or Java) and therefore enables sharing business logic between legacy applications and newer Java/J2EE-based applications. At times, however, when invoking a database-resident Java class from a Java client, you may not want to go through the PL/SQL wrapper. In a future release, Oracle plans to provide a mechanism that will allow developers to bypass the Call Spec.
Advanced Data-Access Control
Java stored procedures can be used to control and restrict access to Oracle data by allowing users to manipulate the data only through stored procedures that execute under their invoker's privileges while denying access to the table itself. For example, you can disable updates during certain hours or give managers the ability to query salary data but not update it, or log all access and notify a security service.
Sharing Data Logic Between Legacy and J2EE Applications
Because legacy applications and J2EE applications both invoke stored procedures through the Call Spec, the same data logic can be shared between J2EE and non-J2EE worlds. Thanks to Call Spec, this data logic can be shared regardless of the implementation language used (whether PL/SQL or Java).
Autogeneration of Primary Keys for BMP Entity Beans
When using BMP for EJB entity beans, a bean instance can be uniquely identified by the auto-generated primary key associated with the newly inserted data as a return value for ejbCreate(). You can retrieve this value within ejbCreate() in one database operation by using a stored procedure that inserts the corresponding data and retrieves or computes the primary key. Alternatively, you could insert the data and retrieve the corresponding key (or ROWID) in one SQL statement, using the RETURN_GENERATED_KEYS feature in JDBC 3.0. However, the stored procedure approach is more portable across JDBC driver versions and databases.
You can implement this pattern with these three steps:
Create the Java stored procedure, defining a public static Java method insertAccount() within a public GenPK class. This method will insert data, compute a unique key (by passing out a sequence number), and return the computed key as primary key.
Define the Call Spec.
CREATE OR REPLACE PROCEDURE insertAccount(owner IN
varchar, bal IN number, newid OUT number)
AS LANGUAGE JAVA NAME 'GenPK.insertAccount(
java.lang.String [])';
Invoke the stored procedure within ejbCreate().
Public AccountPK ejbCreate(String ownerName, int balance) throws CreateException
try {
CallableStatement call = conn.prepareCall{
"{call insertAccount(?, ?, ?)}"};
return new AccountPK(accountID);
Custom Primary Key Finders for CMP Entity Beans
Finder methods are used for retrieving existing EJB entity bean instances. Primary key finders allow you to retrieve a uniquely identified EJB instance. For CMP entity beans, the EJB container automatically generates the primary key finder findByPrimaryKey() method, based on declarative description. In some situations, however, you might need more control; for example, you may need a specialized finder such as findByStoredProcKey(). In these situations, you can use Java stored procedures in conjunction with an object relational framework (such as Oracle9i Application Server [Oracle9iAS] TopLink) to implement a custom primary key finder method. After you define the EJB finder as a REDIRECT or NAMED finder, TopLink will generate the SQL query for retrieving the bean instance.
Data-Driven EJB Invocation
In a data-driven architecture, business logic invocation can be triggered as a result of database operations (such as inserts, updates, or deletes). A Java stored procedure implementing the data logic can be declared as a database trigger to invoke EJBs running in a middle-tier J2EE application server. You can make EJB calls by using either standard remote method invocation (RMI) over Interoperable Inter-ORB Protocol (IIOP), using a J2EE 1.3 compatible server, or RMI over a vendor-specific transport protocol (such as ORMI with Oracle9iAS/OC4J or RMI over T3 with BEA WebLogic). Each application server vendor has its own optimized protocol while providing RMI over IIOP for interoperability. Oracle9iAS supports both RMI calls over IIOP and ORMI protocols.
Data-Driven Messaging
Oracle9i Database embeds Advanced Queuing (AQ), which is an integrated, persistent, reliable, secure, scalable, and transactional message-queuing framework. Oracle exposes AQ features to Java developers through the standard Java Messaging System (JMS) API. Java stored procedures can invoke AQ operations through the JMS interface to allow fast, intra-session, scalable, data-driven messaging.
Java stored procedures can use JMS to invoke AQ operations. You can implement this pattern in four steps:
Create and start the JMS Queue (to do so, embed the following operations within a SQL script):
execute dbms_aqadm.create_queue_table(queue_table =>
'queue1', queue_payload_type =>
'SYS.AQ$_JMS_TEXT_MESSAGE', comment => 'a test queue',
multiple_consumers => false, compatible => '8.1.0');
execute dbms_aqadm.create_queue( queue_name => 'queue1',
queue_table => 'queue1' );
execute dbms_aqadm.start_queue(queue_name => 'queue1');
Create the Java stored procedure (a code snippet is shown):
public static void runTest(String msgBody)
try
// get database connection
ora_drv = new OracleDriver();
db_conn = ora_drv.defaultConnection();
// setup sender (cf online code sample)
// create message
s_msg = s_session.createTextMessage(msgBody);
// send message
sender.send(s_msg);
s_session.commit();
// receive message
r_msg = (TextMessage) receiver.receive();
r_session.commit();
// output message text
String body = r_msg.getText();
System.out.println("message was '"+body+"'");
Create the Call Spec:
create or replace procedure jmsproc (t1 IN VARCHAR)
as language java name 'jmsSample.main (java.lang.String[])';
Invoke the stored procedure:
call jmsproc('hello');
Database-Assisted Web Publishing (Cache Invalidation)
One of the common issues application architects must face is how to cache database information reliably to increase overall system performance. JCACHE is an upcoming standard specification (JSR 107) that addresses this problem. It specifies an approach for temporary, in-memory caching of Java objects, including object creation, shared access, spooling, invalidation, and consistency across JVMs. It can be used to cache read-mostly data such as product catalogs and price lists within JSP. Using JCACHE, most queries will have response times an order of magnitude faster because of cached data (in-house testing showed response times about 15 times faster).
In order to track all the changes to the origin data and refresh the cached data, a Java stored procedure is attached to a table as a trigger. Any change to this table will result in the automatic invocation of this stored procedure, which in turn will call out a defined JSP to invalidate the JCACHE object that maps its state to the database table. Upon invalidation, the very next query will force the cache to be refreshed from the database. Next Steps
READ MORE about Java Stored Procedures
This article is adapted from the white paper "Unleash the Power of Java Stored Procedures." You can find the white paper at:
/tech/java/java_db/pdf/
OW_30820_JAVA_STORED_PROC_paper.PDF
New PL/SQL features in Oracle9i Database, Release 2
/tech/pl_sql/pdf/
Paper_30720_Doc.pdf
Resolver Spec
/docs/products/oracle9i/
doc_library/release2/java.920/a96659.pdf
OracleJVM and Java 2 Security
/docs/products/oracle9i/
doc_library/release2/java.920/a96656.pdf
DOWNLOAD Code
Exercise code examples from this article:
/sample_code/tech/
java/jsp/Oracle9iJSPSamples.html
LEARN about stored procedures as Web services
/tech/webservices
Extending Database Functionality
One of the great things about running Java code directly in the database is the ability to implement new functionality by simply loading the code or library and using the Call Spec to make the entry points (public static methods) available to SQL, PL/SQL, Java, J2EE, and non-Java APIs. Oracle9i Database customers can easily extend database functionality. Oracle itself leverages this capability for new utilities and packages such as the XML Developer Kits (XDKs).
Bridging SQL, PL/SQL, Java, J2EE, .NET, and XML
The Oracle XDK is written in Java and exposes its public methods as Java stored procedures, extending the database's XML programmability. SQL, PL/SQL, Java, J2EE, and non-Java (.NET) business logic all have access to the XML parser, the XSLT processor, the XPath engine, and XML SQL Utility (XSU).
The XML parser is accessible through the xmlparser and xmldom packages. XSU is a Java utility that generates an XML document from SQL queries or a JDBC ResultSet, and writes data from an XML document into a database table or view. Using XSU, XML output can be produced as Text, DOM trees, or DTDs. XSU is exposed to PL/SQL through the dbms_xmlquery and dbms_xmlsave packages.
Conclusion
The integration of the Oracle database with a Java VM enables the creation of portable, powerful, database-independent data logic and persistence logic. The loose coupling of business logic that runs in the middle tier with data logic that runs in the database tier improves application scalability, performance, flexibility, and maintenance.
Kuassi Mensah ([email protected]) is a product manager in the Server Technologies division at Oracle.
http://otn.oracle.com/oramag/oracle/03-jan/o13java.html
Joel Pérez -
Best method to load XML data into Oracle
Hi,
I have to load XML data into Oracle tables. I tried using different options and have run into a dead end in each of those. I do not have knowledge of java and hence have restricted myself to PL/SQL solutions. I tried the following options.
1. Using DBMS_XMLSave package : Expects the ROWSET and ROW tags. Connot change format of the incoming XML file (Gives error oracle.xml.sql.OracleXMLSQLException: Start of root element expected).
2. Using the XMLPARSER and XMLDOM PL/SQL APIs : Works fine for small files. Run into memory problems for large files (Gives error java.lang.OutOfMemoryError). Have tried increasing the JAVA_POOL_SIZE but does not work. I am not sure whether I am changing the correct parameter.
I have read that the SAX API does not hog memory resources since it does not build the entire DOM tree structure. But the problem is that it does not have a PL/SQL implementation.
Can anyone PLEASE guide me in the right direction, as to the best way to achieve this through PL/SQL ??? I have not designed the tables so am flexible on using purely relational or object-relational design. Although would prefer to keep a purely relational design. (Had tried used object-relational for 1. and purely relational for 2. above)
The XML files are in the following format, (EXAMINEEs with single DEMOGRAPHIC and multiple TESTs)
<?xml version="1.0"?>
<Root_Element>
<Examinee>
<MACode>A</MACode>
<TestingJID>TN</TestingJID>
<ExamineeID>100001</ExamineeID>
<CreateDate>20020221</CreateDate>
<Demographic>
<InfoDate>20020221</InfoDate>
<FirstTime>1</FirstTime>
<LastName>JANE</LastName>
<FirstName>DOE</FirstName>
<MiddleInitial>C</MiddleInitial>
<LithoNumber>73</LithoNumber>
<StreetAddress>SomeAddress</StreetAddress>
<City>SomeCity</City>
<StateCode>TN</StateCode>
<ZipCode>37000</ZipCode>
<PassStatus>1</PassStatus>
</Demographic>
<Test>
<TestDate>20020221</TestDate>
<TestNbr>1</TestNbr>
<SrlNbr>13773784</SrlNbr>
</Test>
<Test>
<TestDate>20020221</TestDate>
<TestNbr>2</TestNbr>
<SrlNbr>13773784</SrlNbr>
</Test>
</Examinee>
</Root_Element>
Thanks for the help.Please refer to the XSU(XML SQL Utility) or TransX Utility(for Multi-language Document) if you want to load data in XML format into database.
Both of them require special XML formats, please first refer to the following docs:
http://otn.oracle.com/docs/tech/xml/xdk_java/doc_library/Production9i/doc/java/xsu/xsu_userguide.html
http://otn.oracle.com/docs/tech/xml/xdk_java/doc_library/Production9i/doc/java/transx/readme.html
You can use XSLT to transform your document to the required format.
If you document is large, you can use SAX method to insert data into database. But you need to write the code.
The following sample may be useful:
http://otn.oracle.com/tech/xml/xdk_sample/xdksample_040602i.html -
i want 2 create an xml using pl/sql. oracle web agent must be installed and and xml utilities for pl/sql
im using win2000 and im connected to ora8.1.6
in linux. where do i need to install this 2 software. in the server or in my client pc?
thanks in advance.
regards
jeromeYou should install the XML SQL Utility for PL/SQL in your database. It is basically a set of JAVA classes that get loaded into the database. You will use the PL/SQL packages to access the methods on these classes. You should use the DBMS_XMLQUERY and DBMS_XMLSAVE packages.
You can run the install from your client. -
Is "unsuccessful export" any good?
Hi:
I did an export with full=Y direct=Y consistent=Y. It did everything OK except for...
. exporting roles
EXP-00008: ORACLE error 4045 encountered
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_AQ_SYS_EXP_INTERNAL
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-905: object SYS.AQ$_SUBSCRIBERS is invalid
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at "SYS.DBMS_AQ_EXP_QUEUES", line 141
ORA-06512: at line 1
EXP-00083: The previous problem occurred when calling SYS.DBMS_AQ_EXP_QUEUES.grant_sysprivs_exp
But it went ahead and exported millions and millions of data records, generating a evry large export file in the end.
Q: Will I be able to IMPORT using this export file in the future should I need to do that?
I don't want to experiment with this, because I'll clobber my DB in the process. My development DB instance does not have this problem, so I can't test there.
Any insights as to what might be wrong with the DB instance to create this problem?
Oracle8i 8.1.7.0.0 on Alpha Tru64
Thanks891 INVALIDS (gulp!)
SVRMGR> select object_name, object_type from dba_objects where status = 'INVALID';
OBJECT_NAME OBJECT_TYPE
ALL_POLICIES VIEW
ALL_PROBE_OBJECTS VIEW
ALL_QUEUES VIEW
ALL_QUEUE_TABLES VIEW
ALL_REGISTERED_SNAPSHOTS VIEW
ALL_REPCAT VIEW
ALL_REPCATLOG VIEW
ALL_REPCAT_REFRESH_TEMPLATES VIEW
ALL_REPCAT_TEMPLATE_OBJECTS VIEW
ALL_REPCAT_TEMPLATE_PARMS VIEW
ALL_REPCAT_TEMPLATE_SITES VIEW
ALL_REPCAT_USER_AUTHORIZATIONS VIEW
ALL_REPCAT_USER_PARM_VALUES VIEW
ALL_REPCOLUMN VIEW
ALL_REPCOLUMN_GROUP VIEW
ALL_REPDDL VIEW
ALL_REPFLAVOR_COLUMNS VIEW
ALL_REPFLAVOR_OBJECTS VIEW
ALL_REPGENERATED VIEW
ALL_REPGENOBJECTS VIEW
ALL_REPGROUP VIEW
ALL_REPGROUPED_COLUMN VIEW
ALL_REPGROUP_PRIVILEGES VIEW
ALL_REPKEY_COLUMNS VIEW
ALL_REPOBJECT VIEW
ALL_REPPROP VIEW
ALL_SNAPSHOTS VIEW
ALL_SNAPSHOT_LOGS VIEW
ALL_SNAPSHOT_REFRESH_TIMES VIEW
ALL_SOURCE VIEW
AQ$_DEQUEUE_HISTORY TYPE
AQ$_DEQUEUE_HISTORY_T TYPE
AQ$_DUMMY_T TYPE
AQ$_HISTORY TYPE
AQ$_JMS_BYTES_MESSAGE TYPE
AQ$_JMS_HEADER TYPE
AQ$_JMS_MAP_MESSAGE TYPE
AQ$_JMS_OBJECT_MESSAGE TYPE
AQ$_JMS_STREAM_MESSAGE TYPE
AQ$_JMS_TEXT_MESSAGE TYPE
AQ$_JMS_USERPROPARRAY TYPE
AQ$_JMS_USERPROPERTY TYPE
AQ$_NOTIFY_MSG TYPE
AQ$_RECIPIENTS TYPE
AQ$_SUBSCRIBERS TYPE
CLIENT_IP_ADDRESS FUNCTION
DATABASE_NAME FUNCTION
DBA_CACHEABLE_OBJECTS VIEW
DBA_IAS_GEN_STMTS VIEW
DBA_IAS_GEN_STMTS_EXP VIEW
DBA_IAS_OBJECTS VIEW
DBA_IAS_OBJECTS_BASE VIEW
DBA_IAS_POSTGEN_STMTS VIEW
DBA_IAS_PREGEN_STMTS VIEW
DBA_IAS_TEMPLATES VIEW
DBA_QUEUES VIEW
DBA_QUEUE_SCHEDULES VIEW
DBA_REGISTERED_SNAPSHOTS VIEW
DBA_REPCAT VIEW
DBA_REPCAT_USER_AUTHORIZATIONS VIEW
DBA_REPCAT_USER_PARM_VALUES VIEW
DBA_REPCOLUMN VIEW
DBA_REPFLAVOR_COLUMNS VIEW
DBA_REPFLAVOR_OBJECTS VIEW
DBA_REPGENERATED VIEW
DBA_REPGENOBJECTS VIEW
DBA_REPGROUP VIEW
DBA_REPGROUP_PRIVILEGES VIEW
DBA_REPOBJECT VIEW
DBA_REPPRIORITY_GROUP VIEW
DBA_REPPROP VIEW
DBA_REPSITES VIEW
DBA_RULESETS VIEW
DBA_SEGMENTS VIEW
DBA_SNAPSHOTS VIEW
DBA_SNAPSHOT_LOGS VIEW
DBA_TRIGGERS VIEW
DBA_TRIGGER_COLS VIEW
DBJ_LONG_NAME FUNCTION
DBJ_SHORT_NAME FUNCTION
DBMSOBJG PACKAGE
DBMSOBJG PACKAGE BODY
DBMSOBJG2 PACKAGE
DBMSOBJG2 PACKAGE BODY
DBMSOBJGWRAPPER PACKAGE
DBMSOBJGWRAPPER PACKAGE BODY
DBMS_ALERT PACKAGE
DBMS_ALERT PACKAGE BODY
DBMS_AQ PACKAGE
DBMS_AQ PACKAGE BODY
DBMS_AQADM PACKAGE BODY
DBMS_AQADM_SYS PACKAGE BODY
DBMS_AQADM_SYSCALLS PACKAGE
DBMS_AQADM_SYSCALLS PACKAGE BODY
DBMS_AQIN PACKAGE
DBMS_AQIN PACKAGE BODY
DBMS_AQJMS PACKAGE
DBMS_AQJMS PACKAGE BODY
DBMS_AQ_EXP_HISTORY_TABLES PACKAGE
DBMS_AQ_EXP_HISTORY_TABLES PACKAGE BODY
DBMS_AQ_EXP_INDEX_TABLES PACKAGE
DBMS_AQ_EXP_INDEX_TABLES PACKAGE BODY
DBMS_AQ_EXP_QUEUE_TABLES PACKAGE
DBMS_AQ_EXP_QUEUE_TABLES PACKAGE BODY
DBMS_AQ_EXP_SUBSCRIBER_TABLES PACKAGE
DBMS_AQ_EXP_SUBSCRIBER_TABLES PACKAGE BODY
DBMS_AQ_EXP_TIMEMGR_TABLES PACKAGE
DBMS_AQ_EXP_TIMEMGR_TABLES PACKAGE BODY
DBMS_AQ_EXP_ZECURITY PACKAGE BODY
DBMS_AQ_IMPORT_INTERNAL PACKAGE BODY
DBMS_AQ_IMP_INTERNAL PACKAGE
DBMS_AQ_IMP_INTERNAL PACKAGE BODY
DBMS_AQ_IMP_ZECURITY PACKAGE BODY
DBMS_AQ_SYS_EXP_ACTIONS PACKAGE
DBMS_AQ_SYS_EXP_ACTIONS PACKAGE BODY
DBMS_AQ_SYS_EXP_INTERNAL PACKAGE BODY
DBMS_AQ_SYS_IMP_INTERNAL PACKAGE
DBMS_AQ_SYS_IMP_INTERNAL PACKAGE BODY
DBMS_ASYNCRPC_PUSH PACKAGE
DBMS_ASYNCRPC_PUSH PACKAGE BODY
DBMS_BACKUP_RESTORE PACKAGE
DBMS_BACKUP_RESTORE PACKAGE BODY
DBMS_DDL_INTERNAL PACKAGE BODY
DBMS_DEBUG PACKAGE
DBMS_DEBUG PACKAGE BODY
DBMS_DEBUG_VC2COLL TYPE
DBMS_DEFER PACKAGE
DBMS_DEFER PACKAGE BODY
DBMS_DEFERGEN PACKAGE
DBMS_DEFERGEN PACKAGE BODY
DBMS_DEFERGEN_AUDIT PACKAGE
DBMS_DEFERGEN_AUDIT PACKAGE BODY
DBMS_DEFERGEN_INTERNAL PACKAGE
DBMS_DEFERGEN_INTERNAL PACKAGE BODY
DBMS_DEFERGEN_LOB PACKAGE
DBMS_DEFERGEN_LOB PACKAGE BODY
DBMS_DEFERGEN_PRIORITY PACKAGE
DBMS_DEFERGEN_PRIORITY PACKAGE BODY
DBMS_DEFERGEN_RESOLUTION PACKAGE
DBMS_DEFERGEN_RESOLUTION PACKAGE BODY
DBMS_DEFERGEN_UTIL PACKAGE
DBMS_DEFERGEN_UTIL PACKAGE BODY
DBMS_DEFERGEN_WRAP PACKAGE
DBMS_DEFERGEN_WRAP PACKAGE BODY
DBMS_DEFER_ENQ_UTL PACKAGE
DBMS_DEFER_ENQ_UTL PACKAGE BODY
DBMS_DEFER_INTERNAL_QUERY PACKAGE
DBMS_DEFER_INTERNAL_QUERY PACKAGE BODY
DBMS_DEFER_INTERNAL_SYS PACKAGE
DBMS_DEFER_INTERNAL_SYS PACKAGE BODY
DBMS_DEFER_QUERY PACKAGE
DBMS_DEFER_QUERY PACKAGE BODY
DBMS_DEFER_QUERY_UTL PACKAGE
DBMS_DEFER_QUERY_UTL PACKAGE BODY
DBMS_DEFER_REPCAT PACKAGE
DBMS_DEFER_REPCAT PACKAGE BODY
DBMS_DEFER_SYS PACKAGE BODY
DBMS_DEFER_SYS_PART1 PACKAGE
DBMS_DEFER_SYS_PART1 PACKAGE BODY
DBMS_DESCRIBE PACKAGE
DBMS_DESCRIBE PACKAGE BODY
DBMS_DISTRIBUTED_TRUST_ADMIN PACKAGE
DBMS_DISTRIBUTED_TRUST_ADMIN PACKAGE BODY
DBMS_EPGC PACKAGE
DBMS_EPGC PACKAGE BODY
DBMS_HS PACKAGE
DBMS_HS PACKAGE BODY
DBMS_HS_ALT PACKAGE
DBMS_HS_ALT PACKAGE BODY
DBMS_HS_CHK PACKAGE
DBMS_HS_CHK PACKAGE BODY
DBMS_HS_EXTPROC PACKAGE
DBMS_HS_EXTPROC PACKAGE BODY
DBMS_HS_UTL PACKAGE
DBMS_HS_UTL PACKAGE BODY
DBMS_IAS_CONFIGURE PACKAGE
DBMS_IAS_CONFIGURE PACKAGE BODY
DBMS_IAS_INST PACKAGE
DBMS_IAS_INST PACKAGE BODY
DBMS_IAS_INST_UTL PACKAGE
DBMS_IAS_INST_UTL PACKAGE BODY
DBMS_IAS_MT_INST PACKAGE
DBMS_IAS_MT_INST PACKAGE BODY
DBMS_IAS_QUERY PACKAGE
DBMS_IAS_QUERY PACKAGE BODY
DBMS_IAS_SESSION PACKAGE BODY
DBMS_IAS_TEMPLATE PACKAGE
DBMS_IAS_TEMPLATE PACKAGE BODY
DBMS_IJOB PACKAGE BODY
DBMS_INTERNAL_REPCAT PACKAGE
DBMS_INTERNAL_REPCAT PACKAGE BODY
DBMS_INTERNAL_TRIGGER PACKAGE
DBMS_INTERNAL_TRIGGER PACKAGE BODY
DBMS_IREFRESH PACKAGE
DBMS_IREFRESH PACKAGE BODY
DBMS_ISNAPSHOT PACKAGE
DBMS_ISNAPSHOT PACKAGE BODY
DBMS_JAVA_TEST PACKAGE
DBMS_JAVA_TEST PACKAGE BODY
DBMS_JOB PACKAGE BODY
DBMS_LOB PACKAGE
DBMS_LOB PACKAGE BODY
DBMS_LOCK PACKAGE BODY
DBMS_LOGMNR PACKAGE
DBMS_LOGMNR PACKAGE BODY
DBMS_LOGMNR_D PACKAGE
DBMS_LOGMNR_D PACKAGE BODY
DBMS_MAINT_GEN PACKAGE
DBMS_MAINT_GEN PACKAGE BODY
DBMS_NAMESPACE PACKAGE
DBMS_NAMESPACE PACKAGE BODY
DBMS_OBFUSCATION_TOOLKIT PACKAGE
DBMS_OBFUSCATION_TOOLKIT PACKAGE BODY
DBMS_OBFUSCATION_TOOLKIT_FFI PACKAGE
DBMS_OBFUSCATION_TOOLKIT_FFI PACKAGE BODY
DBMS_OFFLINE_INTERNAL PACKAGE
DBMS_OFFLINE_INTERNAL PACKAGE BODY
DBMS_OFFLINE_OG PACKAGE
DBMS_OFFLINE_OG PACKAGE BODY
DBMS_OFFLINE_RGT PACKAGE
DBMS_OFFLINE_RGT PACKAGE BODY
DBMS_OFFLINE_SNAPSHOT PACKAGE
DBMS_OFFLINE_SNAPSHOT PACKAGE BODY
DBMS_OFFLINE_UTL PACKAGE
DBMS_OFFLINE_UTL PACKAGE BODY
DBMS_ORACLE_TRACE_AGENT PACKAGE
DBMS_ORACLE_TRACE_AGENT PACKAGE BODY
DBMS_ORACLE_TRACE_USER PACKAGE
DBMS_ORACLE_TRACE_USER PACKAGE BODY
DBMS_PCLXUTIL PACKAGE
DBMS_PCLXUTIL PACKAGE BODY
DBMS_PICKLER PACKAGE
DBMS_PICKLER PACKAGE BODY
DBMS_PIPE PACKAGE
DBMS_PIPE PACKAGE BODY
DBMS_PITR PACKAGE
DBMS_PITR PACKAGE BODY
DBMS_PLUGTS PACKAGE
DBMS_PLUGTS PACKAGE BODY
DBMS_PRVTAQIM PACKAGE
DBMS_PRVTAQIM PACKAGE BODY
DBMS_PRVTAQIP PACKAGE
DBMS_PRVTAQIP PACKAGE BODY
DBMS_PRVTAQIS PACKAGE
DBMS_PRVTAQIS PACKAGE BODY
DBMS_PSP PACKAGE
DBMS_PSP PACKAGE BODY
DBMS_PSWMG_IMPORT PACKAGE
DBMS_PSWMG_IMPORT PACKAGE BODY
DBMS_RANDOM PACKAGE
DBMS_RANDOM PACKAGE BODY
DBMS_RCVMAN PACKAGE
DBMS_RCVMAN PACKAGE BODY
DBMS_RECTIFIER_DIFF PACKAGE
DBMS_RECTIFIER_DIFF PACKAGE BODY
DBMS_RECTIFIER_FRIENDS PACKAGE
DBMS_RECTIFIER_FRIENDS PACKAGE BODY
DBMS_REFRESH PACKAGE
DBMS_REFRESH PACKAGE BODY
DBMS_REPAIR PACKAGE
DBMS_REPAIR PACKAGE BODY
DBMS_REPCAT PACKAGE
DBMS_REPCAT PACKAGE BODY
DBMS_REPCAT_ADMIN PACKAGE
DBMS_REPCAT_ADMIN PACKAGE BODY
DBMS_REPCAT_AUTH PACKAGE
DBMS_REPCAT_AUTH PACKAGE BODY
DBMS_REPCAT_CACHE PACKAGE
DBMS_REPCAT_CACHE PACKAGE BODY
DBMS_REPCAT_CONF PACKAGE
DBMS_REPCAT_CONF PACKAGE BODY
DBMS_REPCAT_DECL PACKAGE
DBMS_REPCAT_DECL PACKAGE BODY
DBMS_REPCAT_FLA PACKAGE
DBMS_REPCAT_FLA PACKAGE BODY
DBMS_REPCAT_FLA_MAS PACKAGE
DBMS_REPCAT_FLA_MAS PACKAGE BODY
DBMS_REPCAT_FLA_UTL PACKAGE
DBMS_REPCAT_FLA_UTL PACKAGE BODY
DBMS_REPCAT_INSTANTIATE PACKAGE
DBMS_REPCAT_INSTANTIATE PACKAGE BODY
DBMS_REPCAT_INTERNAL PACKAGE
DBMS_REPCAT_INTERNAL PACKAGE BODY
DBMS_REPCAT_INTERNAL_PACKAGE PACKAGE
DBMS_REPCAT_INTERNAL_PACKAGE PACKAGE BODY
DBMS_REPCAT_MAS PACKAGE
DBMS_REPCAT_MAS PACKAGE BODY
DBMS_REPCAT_MIG PACKAGE
DBMS_REPCAT_MIG PACKAGE BODY
DBMS_REPCAT_MIG_INTERNAL PACKAGE
DBMS_REPCAT_MIG_INTERNAL PACKAGE BODY
DBMS_REPCAT_OUTPUT PACKAGE
DBMS_REPCAT_OUTPUT PACKAGE BODY
DBMS_REPCAT_RGT PACKAGE
DBMS_REPCAT_RGT PACKAGE BODY
DBMS_REPCAT_RGT_ALT PACKAGE
DBMS_REPCAT_RGT_ALT PACKAGE BODY
DBMS_REPCAT_RGT_CHK PACKAGE
DBMS_REPCAT_RGT_CHK PACKAGE BODY
DBMS_REPCAT_RGT_CUST PACKAGE
DBMS_REPCAT_RGT_CUST PACKAGE BODY
DBMS_REPCAT_RGT_CUST2 PACKAGE
DBMS_REPCAT_RGT_CUST2 PACKAGE BODY
DBMS_REPCAT_RGT_UTL PACKAGE
DBMS_REPCAT_RGT_UTL PACKAGE BODY
DBMS_REPCAT_RPC PACKAGE
DBMS_REPCAT_RPC PACKAGE BODY
DBMS_REPCAT_RPC_UTL PACKAGE
DBMS_REPCAT_RPC_UTL PACKAGE BODY
DBMS_REPCAT_SNA PACKAGE
DBMS_REPCAT_SNA PACKAGE BODY
DBMS_REPCAT_SNA_UTL PACKAGE
DBMS_REPCAT_SNA_UTL PACKAGE BODY
DBMS_REPCAT_UNTRUSTED PACKAGE
DBMS_REPCAT_UNTRUSTED PACKAGE BODY
DBMS_REPCAT_UTL PACKAGE
DBMS_REPCAT_UTL PACKAGE BODY
DBMS_REPCAT_UTL2 PACKAGE
DBMS_REPCAT_UTL2 PACKAGE BODY
DBMS_REPCAT_UTL3 PACKAGE
DBMS_REPCAT_UTL3 PACKAGE BODY
DBMS_REPCAT_UTL4 PACKAGE
DBMS_REPCAT_UTL4 PACKAGE BODY
DBMS_REPCAT_VALIDATE PACKAGE
DBMS_REPCAT_VALIDATE PACKAGE BODY
DBMS_REPUTIL PACKAGE
DBMS_REPUTIL PACKAGE BODY
DBMS_REPUTIL2 PACKAGE
DBMS_REPUTIL2 PACKAGE BODY
DBMS_RESOURCE_MANAGER PACKAGE
DBMS_RESOURCE_MANAGER PACKAGE BODY
DBMS_RESOURCE_MANAGER_PRIVS PACKAGE
DBMS_RESOURCE_MANAGER_PRIVS PACKAGE BODY
DBMS_RLS PACKAGE
DBMS_RLS PACKAGE BODY
DBMS_RMIN PACKAGE
DBMS_RMIN PACKAGE BODY
DBMS_ROWID PACKAGE
DBMS_ROWID PACKAGE BODY
DBMS_RULE PACKAGE
DBMS_RULE PACKAGE BODY
DBMS_RULE_ADM PACKAGE
DBMS_RULE_ADM PACKAGE BODY
DBMS_RULE_EXIMP PACKAGE
DBMS_RULE_EXIMP PACKAGE BODY
DBMS_SESSION PACKAGE BODY
DBMS_SNAPSHOT PACKAGE
DBMS_SNAPSHOT PACKAGE BODY
DBMS_SNAPSHOT_UTL PACKAGE
DBMS_SNAPSHOT_UTL PACKAGE BODY
DBMS_SNAP_INTERNAL PACKAGE
DBMS_SNAP_INTERNAL PACKAGE BODY
DBMS_SNAP_REPAPI PACKAGE
DBMS_SNAP_REPAPI PACKAGE BODY
DBMS_SPACE PACKAGE
DBMS_SPACE PACKAGE BODY
DBMS_SUMADV PACKAGE
DBMS_SUMADV PACKAGE BODY
DBMS_SUMMARY PACKAGE
DBMS_SUMMARY PACKAGE BODY
DBMS_SUMREF_CHILD PACKAGE
DBMS_SUMREF_CHILD PACKAGE BODY
DBMS_SUMREF_PARENT PACKAGE
DBMS_SUMREF_PARENT PACKAGE BODY
DBMS_SUMREF_UTIL PACKAGE
DBMS_SUMREF_UTIL PACKAGE BODY
DBMS_SUMREF_UTIL2 PACKAGE
DBMS_SUMREF_UTIL2 PACKAGE BODY
DBMS_SUMVDM PACKAGE
DBMS_SUMVDM PACKAGE BODY
DBMS_SYSTEM PACKAGE
DBMS_SYSTEM PACKAGE BODY
DBMS_SYS_ERROR PACKAGE BODY
DBMS_TRACE PACKAGE
DBMS_TRACE PACKAGE BODY
DBMS_TRANSACTION PACKAGE
DBMS_TRANSACTION PACKAGE BODY
DBMS_TTS PACKAGE
DBMS_TTS PACKAGE BODY
DBMS_XMLQUERY PACKAGE
DBMS_XMLQUERY PACKAGE BODY
DBMS_XMLSAVE PACKAGE
DBMS_XMLSAVE PACKAGE BODY
DEFCALL VIEW
DEFCALLDEST VIEW
DEFTRANDEST VIEW
DES_ENCRYPTED_PASSWORD FUNCTION
DIANA PACKAGE BODY
DICTIONARY_OBJ_NAME_LIST FUNCTION
DICTIONARY_OBJ_OWNER FUNCTION
DICTIONARY_OBJ_OWNER_LIST FUNCTION
DIUTIL PACKAGE BODY
GET_ERROR$ PACKAGE
GET_ERROR$ PACKAGE BODY
GRANTEE FUNCTION
HS_CLASS_CAPS VIEW
HS_CLASS_DD VIEW
HS_CLASS_INIT VIEW
HS_EXTERNAL_OBJECTS VIEW
HS_FDS_CLASS VIEW
HS_FDS_INST VIEW
HS_INST_CAPS VIEW
HS_INST_DD VIEW
HS_INST_INIT VIEW
HTF PACKAGE
HTF PACKAGE BODY
HTP PACKAGE
HTP PACKAGE BODY
HTTP_EXP PACKAGE
HTTP_EXP PACKAGE BODY
IFR_EXP PACKAGE
IFR_EXP PACKAGE BODY
INITJVMAUX PACKAGE
INITJVMAUX PACKAGE BODY
INSTANCE_NUM FUNCTION
IS_ALTER_COLUMN FUNCTION
IS_CREATING_NESTED_TABLE FUNCTION
IS_DROP_COLUMN FUNCTION
IS_SERVERERROR FUNCTION
JAVA_AUTONOMOUS_TRANSACTION PACKAGE
JAVA_AUTONOMOUS_TRANSACTION PACKAGE BODY
JAVA_XA PACKAGE
JAVA_XA PACKAGE BODY
JIS$INTERCEPTOR$ PACKAGE
JIS$INTERCEPTOR$ PACKAGE BODY
JIS_EXIT_JAVA_SESSION PROCEDURE
JIS_EXP PACKAGE
JIS_EXP PACKAGE BODY
JIS_EXP_AUX PACKAGE
JIS_EXP_AUX PACKAGE BODY
JIS_IMP_AUX PACKAGE
JIS_IMP_AUX PACKAGE BODY
LOGIN_USER FUNCTION
NameFromLastDDL FUNCTION
ODCIARGDESC TYPE
ODCIARGDESCLIST TYPE
ODCICOLINFO TYPE
ODCICOLINFODUMP PROCEDURE
ODCICOLINFOLIST TYPE
ODCICONST PACKAGE
ODCICOST TYPE
ODCIFUNCINFO TYPE
ODCIINDEXALTEROPTIONDUMP PROCEDURE
ODCIINDEXCTX TYPE
ODCIINDEXINFO TYPE
ODCIINDEXINFODUMP PROCEDURE
ODCIOBJECT TYPE
ODCIOBJECTLIST TYPE
ODCIPREDINFO TYPE
ODCIPREDINFODUMP PROCEDURE
ODCIQUERYINFO TYPE
ODCIQUERYINFODUMP PROCEDURE
ODCIRIDLIST TYPE
ODCISTATSOPTIONS TYPE
ODCISTATSOPTIONSDUMP PROCEDURE
ORB_EXP PACKAGE
ORB_EXP PACKAGE BODY
OWA PACKAGE
OWA PACKAGE BODY
OWA_CACHE PACKAGE
OWA_CACHE PACKAGE BODY
OWA_COOKIE PACKAGE
OWA_COOKIE PACKAGE BODY
OWA_CUSTOM PACKAGE
OWA_CUSTOM PACKAGE BODY
OWA_IMAGE PACKAGE
OWA_IMAGE PACKAGE BODY
OWA_OPT_LOCK PACKAGE
OWA_OPT_LOCK PACKAGE BODY
OWA_PATTERN PACKAGE
OWA_PATTERN PACKAGE BODY
OWA_SEC PACKAGE
OWA_SEC PACKAGE BODY
OWA_TEXT PACKAGE
OWA_TEXT PACKAGE BODY
OWA_UTIL PACKAGE
OWA_UTIL PACKAGE BODY
PBREAK PACKAGE
PBREAK PACKAGE BODY
PBRPH PACKAGE
PBRPH PACKAGE BODY
PBSDE PACKAGE
PBSDE PACKAGE BODY
PBUTL PACKAGE
PIDL PACKAGE BODY
PRIVILEGE_LIST FUNCTION
PRVT_EGUTL PACKAGE
PRVT_EGUTL PACKAGE BODY
PRVT_EPGC PACKAGE
PRVT_EPGC PACKAGE BODY
PSTUB PROCEDURE
PSTUBT PROCEDURE
REPCAT$_CDEF VIEW
REPCAT_GENERATED VIEW
REPCAT_REPCAT VIEW
REPCAT_REPOBJECT VIEW
REPCAT_REPOBJECT_BASE VIEW
REVOKEE FUNCTION
RMJVM PACKAGE
RMJVM PACKAGE BODY
SERVER_ERROR FUNCTION
SESSION_CONTEXT VIEW
SM$INTEGRITY_CONS VIEW
SM$TS_USED VIEW
SM_$VERSION VIEW
SNS_EXP PACKAGE
SNS_EXP PACKAGE BODY
SQLJUTL PACKAGE
SQLJUTL PACKAGE BODY
SYSEVENT FUNCTION
TS_PITR_OBJECTS_TO_BE_DROPPED VIEW
USER_JOBS VIEW
USER_QUEUES VIEW
USER_QUEUE_SCHEDULES VIEW
USER_REGISTERED_SNAPSHOTS VIEW
USER_REPCAT VIEW
USER_REPCATLOG VIEW
USER_REPCAT_REFRESH_TEMPLATES VIEW
USER_REPCAT_TEMPLATE_OBJECTS VIEW
USER_REPCAT_TEMPLATE_PARMS VIEW
USER_REPCAT_TEMPLATE_SITES VIEW
USER_REPCAT_USER_AUTHORIZATION VIEW
USER_REPCAT_USER_PARM_VALUES VIEW
USER_REPCOLUMN VIEW
USER_REPDDL VIEW
USER_REPFLAVOR_COLUMNS VIEW
USER_REPFLAVOR_OBJECTS VIEW
USER_REPGENERATED VIEW
USER_REPGENOBJECTS VIEW
USER_REPGROUP VIEW
USER_REPGROUP_PRIVILEGES VIEW
USER_REPKEY_COLUMNS VIEW
USER_REPOBJECT VIEW
USER_REPPROP VIEW
USER_REPSCHEMA VIEW
USER_REPSITES VIEW
USER_SEGMENTS VIEW
USER_SNAPSHOTS VIEW
USER_SNAPSHOT_LOGS VIEW
UTL_COLL PACKAGE
UTL_COLL PACKAGE BODY
UTL_FILE PACKAGE
UTL_FILE PACKAGE BODY
UTL_HTTP PACKAGE
UTL_HTTP PACKAGE BODY
UTL_INADDR PACKAGE
UTL_INADDR PACKAGE BODY
UTL_RAW PACKAGE BODY
UTL_REF PACKAGE
UTL_REF PACKAGE BODY
UTL_SMTP PACKAGE
UTL_SMTP PACKAGE BODY
UTL_TCP PACKAGE
UTL_TCP PACKAGE BODY
WAR_DEPLOYMENT PACKAGE
WAR_DEPLOYMENT PACKAGE BODY
WITH_GRANT_OPTION FUNCTION
WPG_DOCLOAD PACKAGE
WPG_DOCLOAD PACKAGE BODY
WPIUTL PACKAGE
WPIUTL PACKAGE BODY
XMLATTRCOVER PACKAGE
XMLCHARDATACOVER PACKAGE
XMLDOCUMENTCOVER PACKAGE
XMLDOM PACKAGE
XMLDOM PACKAGE BODY
XMLDOMIMPLCOVER PACKAGE
XMLDTDCOVER PACKAGE
XMLELEMENTCOVER PACKAGE
XMLENTITYCOVER PACKAGE
XMLGEN PACKAGE
XMLGEN PACKAGE BODY
XMLNNMCOVER PACKAGE
XMLNODECOVER PACKAGE
XMLNODELISTCOVER PACKAGE
XMLNOTATIONCOVER PACKAGE
XMLPARSER PACKAGE
XMLPARSER PACKAGE BODY
XMLPARSERCOVER PACKAGE
XMLPICOVER PACKAGE
XMLTEXTCOVER PACKAGE
XSLPROCESSOR PACKAGE
XSLPROCESSOR PACKAGE BODY
XSLPROCESSORCOVER PACKAGE
XSLSTYLESHEETCOVER PACKAGE
ALLREPCOLUMN VIEW
ALLREPFLAVOR_OBJECTS VIEW
DBMS_REPCAT_AUTH PACKAGE
DBMS_REPCAT_AUTH PACKAGE BODY
DEF$_PROPAGATOR_TRIG TRIGGER
ORA$_SYS_REP_AUTH PROCEDURE
REPCATLOGTRIG TRIGGER
CARTRIDGE PACKAGE
CARTRIDGE PACKAGE BODY
IM PACKAGE
IM PACKAGE BODY
ORDANNOTATION TYPE
ORDANNOTATIONLIST TYPE
ORDANNOTATIONS TYPE
ORDANNOTATIONS PACKAGE BODY
ORDAUDIO TYPE
ORDAUDIO PACKAGE BODY
ORDAUDIO_PKG PACKAGE
ORDAUDIO_PKG PACKAGE BODY
ORDIMAGE TYPE
ORDIMAGE PACKAGE BODY
ORDIMAGECONSTANTS PACKAGE
ORDIMERRORCODES PACKAGE
ORDIMERRORCODES PACKAGE BODY
ORDIMGB TYPE
ORDIMGB PACKAGE BODY
ORDIMGF TYPE
ORDIMGF PACKAGE BODY
ORDIMG_PKG PACKAGE
ORDIMG_PKG PACKAGE BODY
ORDSOURCE TYPE
ORDSOURCE PACKAGE BODY
ORDVIDEO TYPE
ORDVIDEO PACKAGE BODY
ORDVIDEO_PKG PACKAGE
ORDVIDEO_PKG PACKAGE BODY
ORDVIR TYPE
ORDVIR PACKAGE BODY
ORDVIRATTR_VARRAY TYPE
ORDVIRB TYPE
ORDVIRB PACKAGE BODY
ORDVIREXCEPTIONS PACKAGE
ORDVIRF TYPE
ORDVIRF PACKAGE BODY
ORDVIRIDX INDEXTYPE
ORDVIRIDXMETHODS TYPE
ORDVIRIDXMETHODS PACKAGE BODY
ORDVIRIDXSTATS TYPE
ORDVIRIDXSTATS PACKAGE BODY
ORDVIRROWID_TABLE TYPE
ORDVIRSCR_VARRAY TYPE
ORDVIR_PKG PACKAGE
ORDVIR_PKG PACKAGE BODY
PVTCARTRIDGE PACKAGE
PVTCARTRIDGE PACKAGE BODY
VIRSCORE OPERATOR
VIRSIMILAR OPERATOR
ORDX_AIFC_AUDIO PACKAGE
ORDX_AIFC_AUDIO PACKAGE BODY
ORDX_AIFF_AUDIO PACKAGE
ORDX_AIFF_AUDIO PACKAGE BODY
ORDX_AUFF_AUDIO PACKAGE
ORDX_AUFF_AUDIO PACKAGE BODY
ORDX_AVI_VIDEO PACKAGE
ORDX_AVI_VIDEO PACKAGE BODY
ORDX_DEFAULT_AUDIO PACKAGE
ORDX_DEFAULT_AUDIO PACKAGE BODY
ORDX_DEFAULT_VIDEO PACKAGE
ORDX_DEFAULT_VIDEO PACKAGE BODY
ORDX_FILE_SOURCE PACKAGE
ORDX_FILE_SOURCE PACKAGE BODY
ORDX_HTTP_SOURCE PACKAGE
ORDX_HTTP_SOURCE PACKAGE BODY
ORDX_MOOV_VIDEO PACKAGE
ORDX_MOOV_VIDEO PACKAGE BODY
ORDX_MPEG_VIDEO PACKAGE
ORDX_MPEG_VIDEO PACKAGE BODY
ORDX_MPGA_AUDIO PACKAGE
ORDX_MPGA_AUDIO PACKAGE BODY
ORDX_RMFF_VIDEO PACKAGE
ORDX_RMFF_VIDEO PACKAGE BODY
ORDX_WAVE_AUDIO PACKAGE
ORDX_WAVE_AUDIO PACKAGE BODY
ALL_GEOMETRY_COLUMNS VIEW
ALL_MD_COLUMNS VIEW
ALL_MD_DIMENSIONS VIEW
ALL_MD_EXCEPTIONS VIEW
ALL_MD_LOADER_ERRORS VIEW
ALL_MD_PARTITIONS VIEW
ALL_MD_TABLES VIEW
ALL_MD_TABLESPACES VIEW
ALL_SDO_GEOM_METADATA VIEW
ALL_SDO_INDEX_INFO VIEW
DBA_MD_COLUMNS VIEW
DBA_MD_PARTITIONS VIEW
DBA_MD_TABLES VIEW
DBA_MD_TABLESPACES VIEW
DBA_SDO_GEOM_METADATA VIEW
DBA_SDO_INDEX_INFO VIEW
DBA_SDO_INDEX_METADATA VIEW
F81_INDEX_OBJECT TYPE
F81_INDEX_OBJ_ARRAY TYPE
F81_NT_IND_TYPE TYPE
GEOCODER_HTTP PACKAGE
GEOCODER_HTTP PACKAGE BODY
GEOCODE_RESULT TYPE
GEODETIC_SRIDS VIEW
H81_INDEX_OBJECT TYPE
H81_INDEX_OBJ_ARRAY TYPE
H81_NT_IND_TYPE TYPE
LOCATOR_WITHIN_DISTANCE OPERATOR
MD PACKAGE
MD PACKAGE BODY
MD1 PACKAGE
MD1 PACKAGE BODY
MD2 PACKAGE
MD2 PACKAGE BODY
MDBOOTSTRAP PACKAGE
MDBOOTSTRAP PACKAGE BODY
MDDICT PACKAGE
MDDICT PACKAGE BODY
MDERR PACKAGE
MDERR PACKAGE BODY
MDEXEC PACKAGE
MDEXEC PACKAGE BODY
MDEXEX PACKAGE
MDEXEX PACKAGE BODY
MDGEN PACKAGE
MDGEN PACKAGE BODY
MDLEXR PACKAGE
MDLEXR PACKAGE BODY
MDLIB PACKAGE
MDLIB PACKAGE BODY
MDTRIG PACKAGE
MDTRIG PACKAGE BODY
MDVERIFY PACKAGE
MDVERIFY PACKAGE BODY
MD_DDL PACKAGE
MD_DDL PACKAGE BODY
MD_DML PACKAGE
MD_DML PACKAGE BODY
MD_PART PACKAGE
MD_PART PACKAGE BODY
PRVT_IDX PACKAGE
PRVT_IDX PACKAGE BODY
RTREE_FILTER OPERATOR
RTREE_IDX PACKAGE
RTREE_IDX PACKAGE BODY
RTREE_INDEX INDEXTYPE
RTREE_INDEX_METHOD TYPE
RTREE_INDEX_METHOD PACKAGE BODY
RTREE_NN OPERATOR
SDO PACKAGE
SDO PACKAGE BODY
SDO_3GL PACKAGE
SDO_3GL PACKAGE BODY
SDO_ADMIN PACKAGE
SDO_ADMIN PACKAGE BODY
SDO_CATALOG PACKAGE
SDO_CATALOG PACKAGE BODY
SDO_CS PACKAGE
SDO_CS PACKAGE BODY
SDO_DIM_ARRAY TYPE
SDO_DIM_ELEMENT TYPE
SDO_ELEM_INFO_ARRAY TYPE
SDO_FILTER OPERATOR
SDO_GEOM PACKAGE
SDO_GEOM PACKAGE BODY
SDO_GEOMETRY TYPE
SDO_GEOM_TRIG_DEL1 TRIGGER
SDO_GEOM_TRIG_INS1 TRIGGER
SDO_GEOM_TRIG_UPD1 TRIGGER
SDO_IDX PACKAGE
SDO_IDX PACKAGE BODY
SDO_INDEX_METHOD TYPE
SDO_INDEX_METHOD PACKAGE BODY
SDO_INT2_FILTER OPERATOR
SDO_INT2_RELATE OPERATOR
SDO_INT_FILTER OPERATOR
SDO_INT_RELATE OPERATOR
SDO_LRS PACKAGE
SDO_LRS PACKAGE BODY
SDO_MBR TYPE
SDO_META PACKAGE
SDO_META PACKAGE BODY
SDO_MIGRATE PACKAGE
SDO_MIGRATE PACKAGE BODY
SDO_NN OPERATOR
SDO_ORDINATE_ARRAY TYPE
SDO_POINT_TYPE TYPE
SDO_RELATE OPERATOR
SDO_RELATEMASK_TABLE VIEW
SDO_RELATE_MASK PACKAGE
SDO_RELATE_MASK PACKAGE BODY
SDO_RTREE_ADMIN PACKAGE
SDO_RTREE_ADMIN PACKAGE BODY
SDO_RTREE_FILTER OPERATOR
SDO_RTREE_RELATE OPERATOR
SDO_TUNE PACKAGE
SDO_TUNE PACKAGE BODY
SDO_VPOINT_TYPE TYPE
SDO_WITHIN_DISTANCE OPERATOR
SERV_PART PACKAGE
SERV_PART PACKAGE BODY
SPATIAL_INDEX INDEXTYPE
USER_MD_COLUMNS VIEW
USER_SDO_GEOM_METADATA VIEW
USER_SDO_INDEX_INFO VIEW
USER_SDO_INDEX_METADATA VIEW
V81_INDEX_OBJECT TYPE
V81_INDEX_OBJ_ARRAY TYPE
V81_NT_IND_TYPE TYPE
CATINDEXMETHODS TYPE
CATINDEXMETHODS PACKAGE BODY
CATSEARCH OPERATOR
CONTAINS OPERATOR
CONTEXT INDEXTYPE
CTXCAT INDEXTYPE
CTX_ADM PACKAGE
CTX_ADM PACKAGE BODY
CTX_CATSEARCH PACKAGE
CTX_CONTAINS PACKAGE
CTX_DDL PACKAGE
CTX_DDL PACKAGE BODY
CTX_DOC PACKAGE
CTX_DOC PACKAGE BODY
CTX_FEEDBACK_ITEM_TYPE TYPE
CTX_FEEDBACK_ITEM_TYPE PACKAGE BODY
CTX_FEEDBACK_TYPE TYPE
CTX_OUTPUT PACKAGE
CTX_OUTPUT PACKAGE BODY
CTX_QUERY PACKAGE
CTX_QUERY PACKAGE BODY
CTX_SERVERS VIEW
CTX_THES PACKAGE
CTX_THES PACKAGE BODY
DRIACC PACKAGE
DRIACC PACKAGE BODY
DRIADM PACKAGE
DRIADM PACKAGE BODY
DRICON PACKAGE
DRICON PACKAGE BODY
DRIDDL PACKAGE
DRIDDL PACKAGE BODY
DRIDDLC PACKAGE
DRIDDLC PACKAGE BODY
DRIDISP PACKAGE
DRIDISP PACKAGE BODY
DRIDML PACKAGE
DRIDML PACKAGE BODY
DRIDOC PACKAGE
DRIDOC PACKAGE BODY
DRIEXP PACKAGE
DRIEXP PACKAGE BODY
DRIG PACKAGE
DRIIMP PACKAGE
DRIIMP PACKAGE BODY
DRILIST PACKAGE
DRILIST PACKAGE BODY
DRILOAD PACKAGE
DRILOAD PACKAGE BODY
DRIOBJ PACKAGE
DRIOPT PACKAGE
DRIOPT PACKAGE BODY
DRIPARSE PACKAGE
DRIPARSE PACKAGE BODY
DRIPIPE PACKAGE
DRIPIPE PACKAGE BODY
DRIPREF PACKAGE
DRIPREF PACKAGE BODY
DRIREC PACKAGE
DRIREC PACKAGE BODY
DRISCORE PACKAGE
DRITHS PACKAGE
DRITHS PACKAGE BODY
DRITHSC PACKAGE
DRITHSC PACKAGE BODY
DRITHSD PACKAGE
DRITHSD PACKAGE BODY
DRITHSL PACKAGE
DRITHSL PACKAGE BODY
DRITHSX PACKAGE
DRITHSX PACKAGE BODY
DRIUTL PACKAGE
DRIUTL PACKAGE BODY
DRIVAL PACKAGE
DRIVAL PACKAGE BODY
DRIXTAB PACKAGE
DRIXTAB PACKAGE BODY
DRUE PACKAGE
DRUE PACKAGE BODY
DR_DEF PACKAGE
SCORE OPERATOR
SYNCRN PROCEDURE
TEXTINDEXMETHODS TYPE
TEXTINDEXMETHODS PACKAGE BODY
TEXTOPTSTATS TYPE
TEXTOPTSTATS PACKAGE BODY
FOOTESTCREATE FUNCTION
IMP_GET_SOFT_CONNS PROCEDURE
IMP_LOAD_ALLCONNINFO PROCEDURE
LOAD_DANGLE_REPORT PROCEDURE
NQT_INFO PROCEDURE
RTL_LEAF_DANGLE_REPORT PROCEDURE
TOPSIGNAME FUNCTION
TOPSIGNAME_RTL FUNCTION
891 rows selected.
SVRMGR> -
XML load error - when moving table data after upgrade
Greetings:
Background:
Previously in our 2.2 instance, we would use the Data Load/Unload feature of APEX to move data in the form of XML from instance 1 to instance 2. This woks well because it moves images also (BLOB)
What Changed:
Recently we did the upgrade to APEX 3.0. The tool is working well, but we are having issues uploading XML data in the same manner we used to. The process wizard works up until time for execution.. the following error message is seen.
XML load error.
Return to application.
Assumption:
I do not believe this is an XML file issues because the file I am testing the process with is from the EMP table, and is from the UNLOAD option on the same DB and SCHEMA.. (testing is unloading the data, than re-loading the same data to the same place)
Internally some permissions or something internal must be missing.
Assistance or suggestions on where to look is greatly appreciated.
Regards,
TimTim,
Sorry for the delay - that silly day job keeps getting in the way.
Here is a small procedure you could use to take the XML data file format exported from Application Express and import into your table. This uses the Java-dependent DBMS_XMLSAVE package, which avoids the issue mentioned above.
create or replace procedure load_xml(
p_clob in clob,
p_schema in varchar2,
p_table in varchar2 )
is
l_insCtx dbms_xmlsave.ctxType;
l_rows number;
begin
l_insCtx := dbms_xmlsave.newContext(p_schema || '.' || p_table);
dbms_xmlsave.setDateFormat(l_insCtx,'yyyy-MM-dd''T''HH:mm:ss.SSS');
l_rows := dbms_xmlsave.insertXML( l_insCtx, p_clob);
dbms_xmlsave.closeContext(l_insCtx);
end load_xml;I then ran the following quick test on apex.oracle.com just for verification.
declare
l_xml varchar2(32000);
begin
l_xml := '<?xml version="1.0"?>
<ROWSET>
<ROW>
<ID>11645117496276327</ID>
<FLOW_ID>30072</FLOW_ID>
<NAME>F11645117496276327/no_image_found.gif</NAME>
<FILENAME>no_image_found.gif</FILENAME>
<MIME_TYPE>image/gif</MIME_TYPE>
<CREATED_BY>JOEL</CREATED_BY>
<CREATED_ON>2007-03-14T05:06:38.000</CREATED_ON>
<BLOB_CONTENT>474946383961C800...(data removed for this example)...41000003B</BLOB_CONTENT>
</ROW>
</ROWSET>';
load_xml( l_xml, 'MY_DB_USER', 'MY_APEX_FILES' );
end;It's now simply a matter of how you get your XML file(s) into a CLOB to call this procedure. The options include:
1) Just pass in a VARCHAR2 as I did in the example above, which would limit you to roughly 32K.
2) You could use DBMS_LOB.LOADCLOBFROMFILE to read it from the database server filesystem.
3) You could upload the file via an APEX application (or some other means within APEX), you could convert the BLOB to a CLOB, and then call this procedure. If you need help with this method, let me know.
Don't forget - as yet another alternative, you could always contact Oracle Support to see what could be done about that underlying database bug.
I hope this helps.
Joel -
XML data partially loading in DB
Hello,
I'm using Oracle 9i v.9.2.0 and I'm having the following problem:
I need to load the content of an XML file (using the DBMS_XMLSAVE package) into an temporary table I created. In order to do so, I created a stored procedure to load the data from the file, validate that data and then transfer it into a production table. The stored proc receives the XML data in a CLOB parameter.
Everything's working fine when the XML data contains from 1 to 139 "records" but with 140 (and greater) (???) I get the following error message :
"ORA-29532: Java call terminated by uncaught Java exception: oracle.xml.sql.OracleXMLSQLException: Expected name instead of \u07EE¿." (sometimes, instead of "\u07EE¿", I get the name of an existing tag who's valid).
I spent hours searching on Ask Tom or Metalink or in Oracle Documentation or asking collegues but nothing helped so far. I really don't know what might be the problem and I certainly don't want to manually parse the XML file.
So if anyone could help me with this problem I would greatly appriciate it.
Thanks in advance!Hi Morten,
Thanks for your reply but I doubt having an invalid character in the file. You see, in order to test my procedure, I started with one record (in the XML file), then 5, and 10, 50, etc. Each time doing cut-and-paste to add more records in the file (there's no primary key nor unique index in my temporary table so I could insert the same record any number of times) .
So if it's working for up to 139 records and, starting at 140, I get the Oracle error, I wouldn't think that an invalid character be in cause.
Any more ideas?
Thanks again. -
DBMS_XMLSave issues with different databases
This is a brainteaser...
I have set up a couple of stored procedures in a package that inser / update and delete values in a database table using the DBMS_XMLSave functions as per the article 'Using XML-SQL Utility (XSU), 24 of 26' and re-use the context handle.
This is being used for an ASP application and as such I am using the Oracle 8.1.7 OLEDb provider and passing the XML string as a clob to the stored procedures using a command object.
I am now moving the application to another database in preparation for it going to staging and have come across a very interesting error. On the old database everything worked correctly, though on this new database (same IIS server) when i try to insert, update or delete on any table using the XML functions i get the following error:
Unable to insert the details. SQL ERROR:[ORA-29532: Java call terminated by uncaught Java exception: oracle.xml.sql.OracleXMLSQLException: Expected name instead of ??.]
Using the same ASP i connected to the old database and successfully ran the page, i change it to the new database and get the above error.
However I can successfully execute the stored procedure from a command prompt (TOAD) on the new database.
I have done some digging and found that it might have something to do with the NLS settings in the database.
if i change the NLS registry key (HKEY_LOCAL_MACHINE\Software\Oracle\HOME0\NLS_LANG) from AMERICAN_AMERICA.WE8ISO8859P1 to AMERICAN_AMERICA.UTF8 on the IIS server i am running my ASP from, i can get both to return the same error though the question marks turn upside down.
Here's an example of the sample code i am using. Note how i have to convert a CLOB to a string and back to a CLOB. This was because originally Oracle would not accept CLOBS from ASP (as the createParameter method did not really have a clob datatype but did have a longvarchar though Oracle recognises it as a clob because i can do clob operations on it. If anyone has an idea to get around this could you tell me as well?)
Here's a snippit of the package i use
saveCtx := DBMS_XMLSave.newContext('USER_FAVOURITE'); -- create the context once..!
DBMS_XMLSave.setKeyColumn(saveCtx, 'FAVOURITE_ID'); -- set the key column name.
PROCEDURE insert_XML(
o_result OUT NUMBER,
o_result_msg OUT VARCHAR2,
xmlDoc in clob
) is
e_processing_error EXCEPTION;
v_processing_msg VARCHAR2(1990);
v_result_msg VARCHAR2(1990);
insXML CLOB;
BEGIN
-- Create a temp LOB as an input parameter
DBMS_LOB.CREATETEMPORARY(insXML,TRUE);
-- Write the XML doc to the LOB
DBMS_LOB.WRITE(insXML, DBMS_LOB.GETLENGTH(xmlDoc), 1, DBMS_LOB.SUBSTR(xmlDoc, 32767));
rows := DBMS_XMLSave.insertXML(saveCtx, insXML);
-- Free the LOB space in memory
DBMS_LOB.FREETEMPORARY(insXML);
END;XSU don't suppose to support databases other than Oracle.
-
Error opening external DTD 'Segnatura.dtd' using dbms_xmlsave.insertXML
I've been trying to insert a document in a table. All works fine
if the xml doesn't contains the doctype element!
If I add the row
<!DOCTYPE Segnatura SYSTEM "Segnatura.dtd">
to my xml I get the error:
oracle.xml.sql.OracleXMLSQLException: Error opening external DTD
'Segnatura.dtd'.
If I specify all the path "file:///temp/Segnatura.dtd" the insert
works, but I don't want to do in that way beacause I don't want
to modify the original xml that i'm inserting!
In the package dbms_xmlsave I have no ways to change the
basedir/baseurl
or to setValidationMode to false like in xmlparser package.
Is there any way to solve this problem??
Thank's in advance
Mauro
This is an example scratch of my xml doc:
<?xml version = '1.0' encoding = 'ISO-8859-1'?>
<!DOCTYPE Segnatura SYSTEM "Segnatura.dtd">
<Segnatura versione="2001-05-07"
xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="it">
</Segnatura>Hy Steven, thank's for your attention.
I'm not using the xsql servlet.
I'm reading an xml file coming from the file system and I want to
import it in the db using a java stored proc.
I also have the dtd file (Segnatura.dtd) but I don't know where
to put in on the server.
If I run my java program and I put Segnatura.dtd in the execution
classpath on the program the xml is loaded fine.
If I load the stored proc in the db then I don't know where to
put the dtd. Do I have to put the directory containing the dtd in
the server classpath and the restart the db maibe?
thank's
mauro -
Dbms_xmlsave Error line 65
We are passing a clob to dbms_xmlsave.insertxml successfully for all XML clobs under .5 megs but once we go over that size the Error line 65 "Invalid arguments encountered processing ROW ELEMENT 0 show up. Is this a size limitation for dbms_xmlsave? Is there an approach that can handle clobs over .5 meg?
Looks like XDB is not installed. You can verify this by doing desc RESOURCE_VIEW. If RESOURCE_VIEW does not exist then you need to install XDB to install the dbms_xmlstore() package
You need to run the script catqm in $ORACLE_HOME/rdbms/admin. This will add the DBMS_XMLSTORE package. catqm takes 3 arguments. The XDB password, typically XDB, the tablespace to be used for the XDB repository and the name of the temporay tablespace to be used by XDB. Once this has been run DBMS_XMLSTORE() should be there.
Once XDB has been installed you should get the following:
SQL> desc dbms_xmlstore
PROCEDURE CLEARKEYCOLUMNLIST
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
PROCEDURE CLEARUPDATECOLUMNLIST
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
PROCEDURE CLOSECONTEXT
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
FUNCTION DELETEXML RETURNS NUMBER
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
XDOC VARCHAR2 IN
FUNCTION DELETEXML RETURNS NUMBER
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
XDOC CLOB IN
FUNCTION DELETEXML RETURNS NUMBER
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
XDOC XMLTYPE IN
FUNCTION INSERTXML RETURNS NUMBER
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
XDOC VARCHAR2 IN
FUNCTION INSERTXML RETURNS NUMBER
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
XDOC CLOB IN
FUNCTION INSERTXML RETURNS NUMBER
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
XDOC XMLTYPE IN
FUNCTION NEWCONTEXT RETURNS NUMBER
Argument Name Type In/Out Default?
TARGETTABLE VARCHAR2 IN
PROCEDURE SETKEYCOLUMN
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
COLNAME VARCHAR2 IN
PROCEDURE SETROWTAG
Argument Name Type In/Out Default?
CTX NUMBER IN
ROWTAGNAME VARCHAR2 IN
PROCEDURE SETUPDATECOLUMN
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
COLNAME VARCHAR2 IN
FUNCTION UPDATEXML RETURNS NUMBER
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
XDOC VARCHAR2 IN
FUNCTION UPDATEXML RETURNS NUMBER
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
XDOC CLOB IN
FUNCTION UPDATEXML RETURNS NUMBER
Argument Name Type In/Out Default?
CTXHDL NUMBER IN
XDOC XMLTYPE IN
SQL>
Message was edited by:
mdrake
Maybe you are looking for
-
Portal runtime error while accessing BI Report as URL iView
Hi All, I created an URL Iview with the URL of BI report, when i am trying to access it then getting portal runtime error. I had check the log it is showing the following details about the error, could you please help me out what is the root cause ba
-
Erratic track pad behaviour when connected with lcd tv thru hdmi
hello all.. i have a 3 week old mbp with lion preinstalled. i tried connecting my JVC LCD tv to it using HDMI. as soon as i get the projection of my desktop on the tv, the trackpad starts its erratic behaviour. it just starts jumping around and somet
-
How to bring the Cost of Depreciation to Costing
Hi, How to bring the Depreciation Cost, Interest on Working capital to Costing. We have created the Cost components for those mentioned items and what criteria we can bring the values to Costing. Thanks Prasad
-
Apple and updating iPod Touch...
We have 2 ipod touches in our household. On a number of cases, we've had to completely rebuild them due to these types of errors. I hope Apple support sees this error. We have a 16GB and a 32 GB ipod touch... when it tried to back them up for the upd
-
Using both iPhoto 6 and iPhoto '08 - 3rd party software?
Hey guys, I recently purchased and installed iLife '08. After doing this I tried to run Still Life 2.3.4 This is a program that allows you to zoom and pan across photos for iMovie exactly the way you want. When I tired to run this program and open an