hu8297da بتاريخ: 17 سبتمبر 2008 تقديم بلاغ مشاركة بتاريخ: 17 سبتمبر 2008 السلام عليكم ورحمة اللهانا عندي شوي استفسارات بصراحعانا عندي 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 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ORA-2008 بتاريخ: 18 سبتمبر 2008 تقديم بلاغ مشاركة بتاريخ: 18 سبتمبر 2008 مرحبابامكانك تستخدم الأمر التالي:select * from user_sourcewhere type='PACKAGE';--------------------------------------------------- اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ORA-2008 بتاريخ: 18 سبتمبر 2008 تقديم بلاغ مشاركة بتاريخ: 18 سبتمبر 2008 بالنسبة لسؤال الــ 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; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hu8297da بتاريخ: 18 سبتمبر 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 18 سبتمبر 2008 بالنسبة لسؤال الــ 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; اما هنا بدي اياه يحذف للي القسم اللي مافيه موظفين اول يروح يشيك ان القسم مافيه موظفين من جدول الموظفين وبعدين يحذف اذا حذف يطلع لي مسج انه تم الحذفاما اذا فيه موظفين يطلع لي مسج يقول لي انه يتاكد من القسم او ان القسم فيه موظفين--------------------------------------------شكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hu8297da بتاريخ: 18 سبتمبر 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 18 سبتمبر 2008 IN SAMPLE WAYHOW I CAN CREATE MAX FUNCTIONAND DELETE PROCEDUREAND BUT BOTH THEM IN PACKAGE اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ORA-2008 بتاريخ: 18 سبتمبر 2008 تقديم بلاغ مشاركة بتاريخ: 18 سبتمبر 2008 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; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ORA-2008 بتاريخ: 18 سبتمبر 2008 تقديم بلاغ مشاركة بتاريخ: 18 سبتمبر 2008 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; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ORA-2008 بتاريخ: 18 سبتمبر 2008 تقديم بلاغ مشاركة بتاريخ: 18 سبتمبر 2008 ارجو انه انحلت المشكلةكل اللي عليك انك تحطهم في الـ PACKAGE وانشالله امورك تمام... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.