Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.tools -> Re: Here is a good one

Re: Here is a good one

From: Daniel A. Morgan <Daniel.Morgan_at_attws.com>
Date: Wed, 11 Jul 2001 14:44:49 -0700
Message-ID: <3B4CC8D1.C8EA5B80@attws.com>

Jeff Boyer wrote:

> Actually what I need to know is how to pass the ID back to my program. Can
> this be done without a procedure or function?
> "Markus Stuhlpfarrer" <mstuhlpfarrer_at_hollomey.com> wrote in message
> news:3B4CA484.52FEA6A1_at_hollomey.com...
> > a function would go like this:
> >
> > CREATE OR REPLACE FUNCTION Feedback_Id_Proc
> > RETURN varchar2;
> > Temp varchar2;
> > BEGIN
> > SELECT Feedback_ID_SEQ.NEXTVAL
> > INTO Temp FROM DUAL;
> > Temp := 'FB-'||Temp;
> > RETURN Temp;
> > END Feedback_Id_Proc;
> >
> > the question is, why you don't make the "select from dual" in your insert
> > that would be the same and you don't need a function or procedure
> >
> >
> > Jeff Boyer wrote:
> >
> > > Ok, I have figured out that I need to use a stored procedure so that I
 can
> > > return the value of the new feedback Id. However, I am confused as to
 how
> > > to return this value. This is the procedure I am using:
> > >
> > > CREATE OR REPLACE PROCEDURE Feedback_Id_Proc IS
> > > Temp varchar2(30);
> > > BEGIN
> > > SELECT Feedback_ID_SEQ.NEXTVAL
> > > INTO Temp FROM DUAL;
> > > Temp := 'FB-'||Temp;
> > > Insert into Feedback (Feedback_Id) Values (Temp);
> > > return(?????);
> > >
> > > End;
> > > /
> > >
> > > If someone could help me out with what I need to return it would be
 greatly
> > > appreciated.
> > >
> > > Thanks again,
> > > Jeff
> > >
> > > "Jeff Boyer" <jdboyer@(remove)icomproductions.ca> wrote in message
> > > news:9ihu7r$sm1$1_at_news3.cadvision.com...
> > > > Ok people, I am using Oracle 8i and for a front end I have a feedback
> > > > process online using VBScript. In this feedback process I have a form
 that
> > > > inserts all the information for the feedback into my feedback table.
> > > > However ,before any of it happens I have a trigger that inserts a
 feedback
> > > > id before anything is inserted. The insertion happens when the submit
> > > > button is pressed. What happens next is where I am stuck. When you
 hit
 the
> > > > submit button, you are taken to a web page that gathers a little more
> > > > information regarding contact information and so forth. On this page
 I
 need
> > > > to be able to update that record that was just created in the feedback
> > > > table. In order to do this I need to know that feedback Id that my
 trigger
> > > > just created for me. Is there any way at all to get that id back out
 of
 the
> > > > database? I have been banging my head against a wall for a week now
 and
> > > > can't seem to get it. Just for your information the trigger I use to
 insert
> > > > the feedback id is below.
> > > >
> > > > CREATE OR REPLACE TRIGGER Feedback_Id_trg
> > > > BEFORE INSERT on Feedback
> > > > FOR EACH ROW
> > > > DECLARE
> > > > Temp varchar2(30);
> > > > BEGIN
> > > > SELECT Feedback_ID_SEQ.NEXTVAL
> > > > INTO Temp FROM DUAL;
> > > > Temp := 'FB-'||Temp;
> > > > :New.Feedback_id := Temp;
> > > >
> > > > End;
> > > > /
> > > >
> > > >
> > > >
> > > >
> >

I don't know about passing the value back but I wonder why you are doing it. There is no need for your front-end to have the number to make it part of your insert statement. All you need to do is as follows:

INSERT INTO mytable
(field1, field2, field3)
VALUES
(mysequence.NEXTVAL, value2, value3);

Unless you are using the number in some other manner your processing is inefficient of both resources and i/o.

Daniel A. Morgan Received on Wed Jul 11 2001 - 16:44:49 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US