بتاريخ: 17 سبتمبر 200817 سنة comment_139064 السلام عليكم ورحمة اللهانا عندي شوي استفسارات بصراحعانا عندي commandselect * from user_proceduresفهل عندي command for backage to display how it's create-------------------------------------------------------------------------------------also i have this Q??CREATE OR REPLACE PACKAGE ---NAMEISFUNCTION MAX_NO (P1 NUMBER, P2 NUMBER, P3 NUMBER) RETURN NUMBER;PROCEDURE DEP_DEPT (P_DEPTNO NUMBER);END;-------------------------------------------------------CREATE OR REPLACE PACKAGE BODY --- NAMEISFUNCTION MAX_NO (P1 NUMBER, P2 NUMBER, P3 NUMBER) RETURN NUMBERISBEGINEND;PROCEDURE DEP_DEPT (P_DEPTNO NUMBER)ISBEGINSELECT NVL(COUNT(DEPTNO)) FROM EMPWHERE DEPTNO = P_DEPTNO;COMMIT;AFTER THIS IT MUST SHOW 2 MSG1- IF IT DELETED FROM THE TABLE1 ROW DELETED2 CAN NOT DELETED--- THERE IS DATA تقديم بلاغ
بتاريخ: 18 سبتمبر 200817 سنة comment_139129 مرحبابامكانك تستخدم الأمر التالي:select * from user_sourcewhere type='PACKAGE';--------------------------------------------------- تقديم بلاغ
بتاريخ: 18 سبتمبر 200817 سنة comment_139130 بالنسبة لسؤال الــ PACKAGE انا مش فاهم انت شوبدك منه, اذا كان بدك تعرف كم سجل انحذف اكتب بعد جملة الــ DELETE SQL%ROWCOUNT;---------------------------و اما عن جملة الـ SELECT بدون INTO IN PL/SQL فهي غلط!!_________________________________________________ CREATE OR REPLACE PACKAGE ---NAME IS FUNCTION MAX_NO (P1 NUMBER, P2 NUMBER, P3 NUMBER) RETURN NUMBER; PROCEDURE DEP_DEPT (P_DEPTNO NUMBER); END; ------------------------------------------------------- CREATE OR REPLACE PACKAGE BODY --- NAME IS FUNCTION MAX_NO (P1 NUMBER, P2 NUMBER, P3 NUMBER) RETURN NUMBER IS BEGIN NULL; END; PROCEDURE DEP_DEPT (P_DEPTNO NUMBER,MSG OUT VARCHAR2) IS BEGIN /*SELECT NVL(COUNT(DEPTNO)) FROM EMP WHERE DEPTNO = P_DEPTNO;*/ DELETE FROM EMP WHERE DEPTNO=P_DEPTNO; MSG:=SQL%ROWCOUNT; COMMIT; END; تقديم بلاغ
بتاريخ: 18 سبتمبر 200817 سنة كاتب الموضوع comment_139164 بالنسبة لسؤال الــ PACKAGE انا مش فاهم انت شوبدك منه, اذا كان بدك تعرف كم سجل انحذف اكتب بعد جملة الــ DELETE SQL%ROWCOUNT;---------------------------و اما عن جملة الـ SELECT بدون INTO IN PL/SQL فهي غلط!!_________________________________________________CREATE OR REPLACE PACKAGE ---NAME IS FUNCTION MAX_NO (P1 NUMBER, P2 NUMBER, P3 NUMBER) RETURN NUMBER; PROCEDURE DEP_DEPT (P_DEPTNO NUMBER); END; هذا البكج شبفكيشن ------------------------------------------------------- CREATE OR REPLACE PACKAGE BODY --- NAME IS FUNCTION MAX_NO (P1 NUMBER, P2 NUMBER, P3 NUMBER) RETURN NUMBER IS BEGIN هنا ايش المفروض اكتب عشان يحسب لي الماكس لمن اجي انادي الفنكشن يعني عندي الارقام التاليه 1-2-3 الماكس اللي فيهم هو 3 في عندي حل اني اعرف فاريبل x = number y number x number if x< y and z then return x elsif y < x and z then return y elsif z< x and y then retuen z elsif z = y or z=x or x=y return null بس في جمله ثانيه حابه اعرفها END; PROCEDURE DEP_DEPT (P_DEPTNO NUMBER,MSG OUT VARCHAR2) IS BEGIN /*SELECT NVL(COUNT(DEPTNO)) FROM EMP WHERE DEPTNO = P_DEPTNO;*/ DELETE FROM EMP WHERE DEPTNO=P_DEPTNO; MSG:=SQL%ROWCOUNT; COMMIT; END; اما هنا بدي اياه يحذف للي القسم اللي مافيه موظفين اول يروح يشيك ان القسم مافيه موظفين من جدول الموظفين وبعدين يحذف اذا حذف يطلع لي مسج انه تم الحذفاما اذا فيه موظفين يطلع لي مسج يقول لي انه يتاكد من القسم او ان القسم فيه موظفين--------------------------------------------شكرا تقديم بلاغ
بتاريخ: 18 سبتمبر 200817 سنة كاتب الموضوع comment_139166 IN SAMPLE WAYHOW I CAN CREATE MAX FUNCTIONAND DELETE PROCEDUREAND BUT BOTH THEM IN PACKAGE تقديم بلاغ
بتاريخ: 18 سبتمبر 200817 سنة comment_139174 FUNCTION MAX_NO (P1 NUMBER, P2 NUMBER, P3 NUMBER) RETURN NUMBER IS V_MAX NUMBER; BEGIN ---------------------[MAX]----------------------- SELECT MAX(NUM) INTO V_MAX FROM ( SELECT P1 AS NUM FROM DUAL UNION SELECT P2 FROM DUAL UNION SELECT P3 FROM DUAL ); RETURN V_MAX; END; تقديم بلاغ
بتاريخ: 18 سبتمبر 200817 سنة comment_139175 PROCEDURE DEP_DEPT(P_DEPTNO NUMBER, MSG OUT VARCHAR2) IS DECLARE V NUMBER; BEGIN /*اذا كان ما في موظفين في الدائرة فهي رح تنحذف*/ DELETE FROM DEPT A WHERE NOT EXISTS (SELECT 1 FROM EMP B WHERE B.DEPTNO = A.DEPTNO) AND DEPTNO = P_DEPTNO; V := SQL%ROWCOUNT; IF V = 0 THEN MSG := 'THERE IS EMPLOYEES IN THIS DEPARTMENT[ ' || P_DEPTNO || ' ]'; ELSE COMMIT; MSG := 'DEPARTMENT[ ' || P_DEPTNO || ' ] SUCCESSFULLY DELETED...'; END IF; END; تقديم بلاغ
بتاريخ: 18 سبتمبر 200817 سنة comment_139176 ارجو انه انحلت المشكلةكل اللي عليك انك تحطهم في الـ PACKAGE وانشالله امورك تمام... تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.