2011-07-30 12 views
5

मैं पीएल/एसक्यूएल का उपयोग करने के लिए नया हूं और मैं मौजूदा पैकेज में एक नई संग्रहीत प्रक्रिया बनाने की कोशिश कर रहा हूं। मुझे एहसास है कि "पैकेज तैयार करें या स्थानांतरित करें", लेकिन क्या इसका मतलब यह है कि जब मैं अपनी नई प्रो जोड़ता हूं, तो क्या पूरे शरीर को हटा दिया जाएगा, या यह इसे अभी संलग्न करेगा? (मेरे प्रो नाम का कोई भी मौजूदा प्रोसेस जैसा ही नाम नहीं है)।मौजूदा पैकेज में एक नई संग्रहीत प्रक्रिया कैसे बनाएं

धन्यवाद !!

उत्तर

9

दुर्भाग्यवश, किसी मौजूदा पैकेज में एक नया प्रसंस्करण या फ़ंक्शन जोड़ने के लिए, आपको मूल पैकेज को संशोधित करना होगा और एक निर्माण या प्रतिस्थापन के रूप में पुनः सबमिट करना होगा।

पूरे पैकेज कोड को संशोधित और पुनः सबमिट किए बिना पैकेज से जोड़ने या हटाने के लिए वर्तमान में कोई विधि नहीं है।

http://forums.oracle.com/forums/thread.jspa?threadID=380898

1
CREATE OR REPLACE PACKAGE emp_actions AS -- spec 
TYPE EmpRecTyp IS RECORD (emp_id INT, salary REAL); 
CURSOR desc_salary RETURN EmpRecTyp; 
PROCEDURE hire_employee (
    ename VARCHAR2, 
    job VARCHAR2, 
    mgr NUMBER, 
    sal NUMBER, 
    comm NUMBER, 
    deptno NUMBER); 
PROCEDURE fire_employee (emp_id NUMBER); 
END emp_actions; 

CREATE OR REPLACE PACKAGE BODY emp_actions AS -- body 
CURSOR desc_salary RETURN EmpRecTyp IS 
    SELECT empno, sal FROM emp ORDER BY sal DESC; 
PROCEDURE hire_employee (
    ename VARCHAR2, 
    job VARCHAR2, 
    mgr NUMBER, 
    sal NUMBER, 
    comm NUMBER, 
    deptno NUMBER) IS 
BEGIN 
    INSERT INTO emp VALUES (empno_seq.NEXTVAL, ename, job, 
    mgr, SYSDATE, sal, comm, deptno); 
END hire_employee; 

PROCEDURE fire_employee (emp_id NUMBER) IS 
BEGIN 
    DELETE FROM emp WHERE empno = emp_id; 
END fire_employee; 
END emp_actions; 

मैं आप पहली बार अपनी तरह के साथ समारोह को परिभाषित करने और बाद में एक या अधिक समारोह जो एक पैकेज में शामिल किया जा रहा है का पूरा शरीर लिखें। चीजें अच्छी काम करनी चाहिए।

संबंधित मुद्दे