إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

كشف الاعداد الغير موجودة


2 رد (ردود) على هذا الموضوع

#1 mmsalman87

mmsalman87

    عضو مميز

  • الأعضــاء
  • 1,689 مشاركة
  • الاسم الأول:Maher
  • اسم العائلة:Salman
  • البـلـد: Country Flag
  • المنصب الحالي:Senior Oracle HCM SaaS Pre Sale Consultant

تاريخ المشاركة 29 October 2008 - 10:06 PM

لنفرض انه لدينا حقل في جدول وفيه ارقام مثال:
1
2
4
8
9
15
كيف انشى بروسيجر يخرج لي الاعداد الغير موجودة في هذا الحقل بحيث يخرج عند اكبر عدد يعني يعطي الناتج التالي:
3
5
6
7
10
11
12
13
14

                                                                                             

                                                                                                                  Maher Salman

• Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist 

Taleo (TEE): Onboarding Administration Ed 3 LVC, Oracle University.

• Taleo (TBE): Recruit Essentials Ed 4.1 LVC, Oracle University.

• Oracle Fusion HCM Implementation, Oracle University.

• Oracle Certified Professional Developer (OCP) - Oracle Forms: Build Internet Applications.

• Oracle Certified Associate Developer (OCA).

• Oracle E-Business Suite R12 Human Capital Management Certified Implementation Specialist (HCM)

                                                                                                                                        
                                                                                                           http://learnoracle.net                                                                                                                

                                                                                                                             
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

أهم مواضيعي ( Oracle Developer )

- برنامج حفظ الكودات - My Codes

- كيفية عمل نظام متعدد اللغات

- انشاء شاشة دخول وتغيير كلمة السر والتحكم بالمستخدمين

- Import And Export On Toad

- التحكم في النظام من خلال الملف Formsweb.cfg

​- Advanced Dynamic List

- توليد ارقام وحروف عشوائية 

 

 

أهم مواضيعي ( Oracle HRMS)

 

Using Special Value set in oracle hrms 


#2 PLANET

PLANET

    مشترك

  • الأعضــاء
  • 88 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 03 November 2008 - 11:32 AM

decLare

num1 number;
num2 number;
n number;
cont number;

begin SELECT max(num) into num1 from tab;
select min(num) into num2 from tab;
n=1;
while n<=num1
loop
select count(*) into cont from tab where num=n
if cont<=0 then
يعنى ان هذا هوالرقم الغير موجود في الجدول وبالتالي يتم عمل عرض له باي طريقة تحب.
end if;
n=n+1;
end loop;

جربها وصحح الاخطاء البرمجيه اذا وجدت .. وان شاء الله تحصل نتيجة

#3 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 05 November 2008 - 11:54 PM

أتمنى ان تجد غايتك فى هذا الكود :-

[codebox]CREATE TABLE t (ID NUMBER , NAME VARCHAR2(14));

----------------------------------------------------

INSERT INTO t
(ID, NAME
)
VALUES (1, 'qq'
);
INSERT INTO t
(ID, NAME
)
VALUES (2, 'ww'
);
INSERT INTO t
(ID, NAME
)
VALUES (4, 'dfsd'
);
INSERT INTO t
(ID, NAME
)
VALUES (8, 'sdf'
);
INSERT INTO t
(ID, NAME
)
VALUES (9, 'oii'
);
INSERT INTO t
(ID, NAME
)
VALUES (15, 'nfgnd'
);
COMMIT ;

----------------------------------------------------

CREATE OR REPLACE PROCEDURE missing_values (
v_tab VARCHAR2,
v_pkey VARCHAR2,
v_where VARCHAR2 DEFAULT NULL
)
IS
v_cursor INTEGER;
v_cur1 INTEGER;
v_val NUMBER;
v_ret INTEGER;
v_next_num NUMBER := 1;
v_sql VARCHAR2 (6000)
:= 'SELECT a.'
|| v_pkey
|| '+'
|| v_next_num
|| ' FROM '
|| v_tab
|| ' a, '
|| v_tab
|| ' b
WHERE a.'
|| v_pkey
|| '+'
|| v_next_num
|| ' = b.'
|| v_pkey
|| ' (+)
AND b.'
|| v_pkey
|| ' IS NULL
AND a.'
|| v_pkey
|| ' <> (SELECT max(z.'
|| v_pkey
|| ') FROM '
|| v_tab
|| ' z)
'
|| v_where
|| ' ORDER BY '
|| 'a.'
|| v_pkey;
v_new_sql VARCHAR2 (8000);
v_value NUMBER;
v_ignore INTEGER;
v_new_value NUMBER;
BEGIN
v_cursor := DBMS_SQL.open_cursor;
DBMS_SQL.parse (v_cursor, v_sql, DBMS_SQL.native);
DBMS_SQL.define_column (v_cursor, 1, v_value);
DBMS_OUTPUT.put_line (' ');
DBMS_OUTPUT.put_line ('Missing Values');
DBMS_OUTPUT.put_line ('--------------');
DBMS_OUTPUT.put_line (' ');
v_ignore := DBMS_SQL.EXECUTE (v_cursor);

LOOP
v_ret := DBMS_SQL.fetch_rows (v_cursor);
EXIT WHEN v_ret = 0;
DBMS_SQL.COLUMN_VALUE (v_cursor, 1, v_value);
v_next_num := 1;
v_new_value := v_value - 1;

LOOP
v_next_num := v_next_num + 1;
v_new_sql :=
'SELECT a.'
|| v_pkey
|| '+'
|| v_next_num
|| '
FROM '
|| v_tab
|| ' a, '
|| v_tab
|| ' b
WHERE a.'
|| v_pkey
|| '+'
|| v_next_num
|| ' =
b.'
|| v_pkey
|| ' (+) AND b.'
|| v_pkey
|| ' IS NULL
AND a.'
|| v_pkey
|| ' <> (SELECT
max(z.'
|| v_pkey
|| ') FROM '
|| v_tab
|| ' z) AND a.'
|| v_pkey
|| ' =
'
|| v_new_value;
v_cur1 := DBMS_SQL.open_cursor;
DBMS_SQL.parse (v_cur1, v_new_sql, DBMS_SQL.native);
v_ignore := DBMS_SQL.EXECUTE (v_cur1);
v_ret := DBMS_SQL.fetch_rows (v_cur1);
DBMS_SQL.close_cursor (v_cur1);

IF v_ret = 0
THEN
IF v_next_num = 2
THEN
DBMS_OUTPUT.put_line (TO_CHAR (v_value));

IF DBMS_SQL.is_open (v_cur1)
THEN
DBMS_SQL.close_cursor (v_cur1);
END IF;

EXIT;
END IF;

DBMS_OUTPUT.put_line ( TO_CHAR (v_value)
|| '-'
|| TO_CHAR (v_new_value + v_next_num - 1)
);

IF DBMS_SQL.is_open (v_cur1)
THEN
DBMS_SQL.close_cursor (v_cur1);
END IF;

EXIT;
END IF;
END LOOP;
END LOOP;

DBMS_SQL.close_cursor (v_cursor);
END;
/[/codebox]

ملف ال Missing_Numbers_Output.txt المرفق به شكل المخرجات ،
و ملف ال Missing_Numbers.txt هو الذى به الكود السابق ذكره فى ال Code Box

و بالتوفيق

ملفات مرفقة