Based on the configuration of the 'insert-procedure' descriptor that you
provided earlier, here's the syntax of a procedure that 'should' work.
Please not that the compiler on my email editor is not working right now, so
I have no way of confirming if the syntax is correct. However, the basic
structure is correct.
CREATE OR REPLACE PROCEDURE ADDINSTANCE
( aID OUT TWTINSTANCES.ID%TYPE
, aDESCRIPTION IN TWTINSTANCES.DESCRIPTION%TYPE
, aDATASYNC IN TWTINSTANCES.DATASYNC%TYPE
, aCONFIGID IN TWTINSTANCES.CONFIGID%TYPE)
IS
BEGIN
-- Get next value from the sequence
-- This will put the value in the 'out' parameter named aID
SELECT <YourSequenceNameHere>.NEXTVAL
INTO aID
FROM DUAL;
-- Insert the record
INSERT INTO TWTINSTANCES
(ID,
DESCRIPTION,
DATASYNC,
CONFIGID)
VALUES
(aID,
aDESCRIPTION,
aDATASYNC,
aCONFIGID);
END;
HTH
Ron Gallagher
Atlanta, GA
[EMAIL PROTECTED]
-----Original Message-----
From: Thierry Hanot [mailto:[EMAIL PROTECTED]
Sent: Friday, November 07, 2003 10:58 AM
To: 'OJB Users List'
Subject: RE: Use stored procedure for insert questions
Thanks But how to do it , because there is no documentation on it ???
I probably did a wrong descriptor on the insert-procedure .....
B.R
Thierry
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Friday, November 07, 2003 4:31 PM
To: [EMAIL PROTECTED]
Subject: RE: Use stored procedure for insert questions
Thierry --
You shouldn't need to use a sequence manager since the SP is assigning the
id. Based on the configuration of the 'insert-procedure' descriptor, the
first argument to the sp will be defined as either 'OUT' or 'IN OUT'. In
either case, the value that's returned by the sp will be placed in the 'id'
attribute on the 'Twtinstances' class.
HTH
Ron Gallagher
Atlanta, GA
[EMAIL PROTECTED]
-----Original Message-----
From: Thierry Hanot [mailto:[EMAIL PROTECTED]
Sent: Friday, November 07, 2003 10:20 AM
To: 'OJB Users List'
Subject: Use stored procedure for insert questions
Hello All
I currently trying to use the cvs version of ojb 1.0 with an Oracle 9i
Database and I have a few problem with stored procedure and sequences:
1: I want to Stored procedure for insert some rows.
The stored procedure return the id ( primary key ) of the row.But i don't
know wich sequence manager i need to use for managing this class .
Here is the class descriptor:
<class-descriptor class="com.infovista.vm.ojb.Twtinstances"
table="VMUSER.TWTINSTANCES">
<field-descriptor name="cdate" column="CDATE"
jdbc-type="TIMESTAMP"/>
<field-descriptor name="configid" column="CONFIGID"
jdbc-type="BIGINT"/>
<field-descriptor name="datasync" column="DATASYNC"
jdbc-type="BIGINT"/>
<field-descriptor name="description" column="DESCRIPTION"
jdbc-type="VARCHAR"/>
<field-descriptor name="id" column="ID" jdbc-type="BIGINT"
primarykey="true" />
<insert-procedure name="ADDINSTANCE">
<runtime-argument field-ref="id" return="true"/>
<runtime-argument field-ref="description"
return="false"/>
<runtime-argument field-ref="datasync"
return="false"/>
<runtime-argument field-ref="configid"
return="false"/>
</insert-procedure>
</class-descriptor>
But i don't find any way to use it correctly in ojb .
First i didn't define any sequence manager , the PB refuse to insert any
instance . Second try : using the SequenceManagerNativeImpl ( not
implemented for this plateform ).
2: One other question concern the repository.dtd wich has the following
lines on the stored procedures:
<!ELEMENT insert-procedure (documentation?, (runtime-argument |
constant-argument)?, attribute*)> <!ATTLIST insert-procedure
name CDATA #REQUIRED
return-field-ref CDATA #IMPLIED
include-all-fields (true | false) "false"
>
A procedure could have one to many arguments , I just wonder if we should
have
<!ELEMENT insert-procedure (documentation?, (runtime-argument |
constant-argument)+, attribute*)> <!ATTLIST insert-procedure
name CDATA #REQUIRED
return-field-ref CDATA #IMPLIED
include-all-fields (true | false) "false"
>
3: Is it possible to use different sequence manager in the same repository
??? If yes how ?
B.R
Thierry Hanot
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]