Oracle Development
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsDatabasesOracle Development

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old November 17th, 2005, 02:38 PM
suetonius suetonius is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: May 2004
Posts: 123 suetonius User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 2 Days 5 h 49 m 16 sec
Reputation Power: 5
sequence in procedure

OK, I want to use a sequence inside an insert procedure to generate surrogate keys. I have tried many different things and cannot make it work. This is only my latest attempt. Does anyone know how to make this work?

PHP Code:
(
new_emp_last_name   employee.emp_last_name%type,
new_emp_first_name  employee.emp_first_name%type,
new_status          employee.status%type,
new_street          address.street%type,
new_city            address.city%type,
new_state           address.state%type,
new_zip             address.zip%type
)
AS
      
new_emp_no int/*  declare variable */
      
base_hour_wage number(1) :=6
      
rowcount number(4) :=0;
      
CURSOR emp_insert IS
                    SELECT emp_no
                    FROM employee
;
BEGIN
     new_emp_no 
:= emp_no_seq.nextVal/* attempt to apply value to variable*/
     
SELECT count(*) INTO rowcount
     FROM employee
     WHERE emp_no 
new_emp_no;
     
     IF(
rowcount AND new_status 'tmp'THEN
          INSERT INTO employee
(emp_noemp_last_nameemp_first_namestatus
          
VALUES(new_emp_nonew_emp_last_namenew_emp_first_namenew_status);
          
          
INSERT INTO temp(emp_no)
          
VALUES(new_emp_no);
          
          
UPDATE temp SET base_wage base_hour_wage
          WHERE emp_no 
new_emp_no;
          
          
UPDATE temp SET summers_worked summers_worked 1     
          WHERE emp_no 
new_emp_no;
          
          
UPDATE temp SET hourly summers_worked base_hour_wage
          WHERE emp_no 
new_emp_no;
      
     ELSE  
              
           IF(
rowcount 0)THEN        
                DBMS_OUTPUT
.PUT_LINE('Employee number in use.');           
           ELSE
                
INSERT INTO employee(emp_noemp_last_nameemp_first_namestatus
                
VALUES(new_emp_nonew_emp_last_namenew_emp_first_namenew_status);        
           
END IF;
       
           IF(
new_status 'mgr')THEN
           INSERT INTO manager
(emp_nosalary)
           
VALUES(new_emp_no30000.00);
           
END IF;
     
           IF(
new_status 'asc')THEN
           INSERT INTO associate
(emp_nosalary)
           
VALUES(new_emp_no20000.00);
           
END IF;
     
END IF; 

     
INSERT into address values(
                 
address_seq.nextValnew_streetnew_citynew_statenew_zip);
     
INSERT into emp_address values(
                 
address_seq.currValnew_emp_no);
     
     
DBMS_OUTPUT.PUT_LINE('Employee added.');
END

Reply With Quote
  #2  
Old December 14th, 2005, 12:41 PM
wubandit99 wubandit99 is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2005
Posts: 30 wubandit99 User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 8 h 6 m 31 sec
Reputation Power: 4
The easiest change to your code would be to replace your line of

Code:
new_emp_no := emp_no_seq.nextVal; /* attempt to apply value to variable*/ 



with

Code:
select emp_no_seq.nextVal
into new_emp_no
from dual;

Reply With Quote
Reply

Viewing: Dev Shed ForumsDatabasesOracle Development > sequence in procedure


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 1 hosted by Hostway
Stay green...Green IT