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

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

صورة
- - - - -

انشاء جدول من خلال البروسيجر


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

#1 King Oracle

King Oracle

    مشرف قسم المشاريع

  • فريق الإشراف
  • 2,043 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 23 August 2007 - 10:17 AM

بسم الله الرحمن الرحيم

اخواني الاعزاء ... هل من الممكن انشاء جدول من خلال البروسيجر بحيث انني مثلا اقوم ببعث اسم الجدول
ويقوم البروسيجر بإنشائه .

انا حسب معرفتي انه لا يمكن للبروسيجر تنفيذ جملة انشاء الجدول بتاتا ........ :rolleyes:

هل من الممكن وجود طريقة اخرى ...؟؟؟؟؟؟؟ :rolleyes:


طالب عونكم .... لا تفشلونا

[سبحان الله وبحمده ... سبحان الله العظيم]


م.علاء الدين الجبالي
Oracle APPS HCM Techno Functional Consultant


مدونتي الخاصة ... ( للتواصل معكم )
http://aljabali2010.blogspot.com/

التواصل عبر السكايبي

araboug.org
or
aladdin_aljabali

للتواصل عبر الايميل ( الماسنجر )

aladdin2011@live.com

موبايل 1: 00966540873048 ( حاليا في السعودية)
موبايل 2: 00962798522832


اللهم لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم


#2 heavens

heavens

    مشترك

  • الأعضــاء
  • 59 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Reading - Developing

تاريخ المشاركة 23 August 2007 - 11:53 AM

alsalam alikom
this code is from forms help



---------------------------------------------------------------------------------------
** Built-in: FORMS_DDL
** Example: The statement parameter can be a block
** of dynamically created PL/SQL code.
*/
DECLARE
procname VARCHAR2(30);
BEGIN
IF :global.flag = 'TRUE' THEN
procname := 'Assign_New_Employer';
ELSE
procname := 'Update_New_Employer';
END IF;
Forms_DDL('Begin '|| procname ||'; End;');
IF NOT Form_Success THEN
Message ('Employee Maintenance Failed');
ELSE
Message ('Employee Maintenance Successful');
END IF;
END;
------------------------------------------------------------------------------------

#3 King Oracle

King Oracle

    مشرف قسم المشاريع

  • فريق الإشراف
  • 2,043 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 23 August 2007 - 12:27 PM

اخي الكريم heavens اشكرك على الرد , واعتقد ان الكود المرفق بعيد عما طلبته .

هل من الممكن انشاء جدول من خلال البروسيجر .

[سبحان الله وبحمده ... سبحان الله العظيم]


م.علاء الدين الجبالي
Oracle APPS HCM Techno Functional Consultant


مدونتي الخاصة ... ( للتواصل معكم )
http://aljabali2010.blogspot.com/

التواصل عبر السكايبي

araboug.org
or
aladdin_aljabali

للتواصل عبر الايميل ( الماسنجر )

aladdin2011@live.com

موبايل 1: 00966540873048 ( حاليا في السعودية)
موبايل 2: 00962798522832


اللهم لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم


#4 heavens

heavens

    مشترك

  • الأعضــاء
  • 59 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Reading - Developing

تاريخ المشاركة 23 August 2007 - 12:39 PM

this code shows you how to use forms_ddl function builtin
its main function is to make ddl on th database from procedure or forms

and this is another example of how to create a function
FUNCTION Do_Sql (stmt VARCHAR2, check_for_locks BOOLEAN := TRUE)
RETURN NUMBER
IS
SQL_SUCCESS CONSTANT NUMBER := 0;
BEGIN
IF stmt IS NULL THEN
Message ('DO_SQL: Passed a null statement.');
RETURN SQL_SUCCESS;
END IF;
IF Check_For_Locks AND :System.Form_Status = 'CHANGED' THEN
Message ('DO_SQL: Form has outstanding locks pending.');
RETURN SQL_SUCCESS;
END IF;
Forms_DDL(stmt);
IF Form_Success THEN
RETURN SQL_SUCCESS;
ELSE
RETURN Dbms_Error_Code;
END IF;
END;
----------------------------------------------

#5 break

break

    مشترك

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

تاريخ المشاركة 23 August 2007 - 01:46 PM

اللهم نسألك الفردوس الأعلى و مرافقه نبيك محمد صلى الله عليه وسلم
Create table table100
(Field1 varchar2(10) primary key,
Field2 varchar2(30));


CREATE OR REPLACE PROCEDURE add_table100
(p_field1 IN table1.field1%TYPE,
p_field2 IN table1.field2%TYPE)
IS
BEGIN
INSERT INTO table100 (field1, field2)
VALUES (p_field1, p_field2);
Exception
When others THEN
RAISE_APPLICATION_ERROR(-200100,’Table100 record NOT added.’);
END;
/

#6 King Oracle

King Oracle

    مشرف قسم المشاريع

  • فريق الإشراف
  • 2,043 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 23 August 2007 - 03:50 PM

اخي العزيز break اشكرك اولا على الرد , اخي الكريم انت قمت بعمل بروسيجر يعمل
اضافة على الجدول وهذا لا مشكلة فيه , انا اريد عمل انشاء للجدول من خلال البروسيجر .

[سبحان الله وبحمده ... سبحان الله العظيم]


م.علاء الدين الجبالي
Oracle APPS HCM Techno Functional Consultant


مدونتي الخاصة ... ( للتواصل معكم )
http://aljabali2010.blogspot.com/

التواصل عبر السكايبي

araboug.org
or
aladdin_aljabali

للتواصل عبر الايميل ( الماسنجر )

aladdin2011@live.com

موبايل 1: 00966540873048 ( حاليا في السعودية)
موبايل 2: 00962798522832


اللهم لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم


#7 sky information

sky information

    عضو نشط

  • الأعضــاء
  • 337 مشاركة

تاريخ المشاركة 23 August 2007 - 06:08 PM

الأخ\ الجبالي

عملت هذه الأكواد و إن شاء الله تكون المطلوب لا كن بصراحة ما ستعملت انا procedure ولا كن أستعملت function

نبدأ باسم الله:

1- إنشاء function :
create or replace function create_table(
table_name  varchar2
col1			   varchar2
col2			   varchar2
col3			   varchar2
col4			   varchar2) return char
as
stm varchar2(200);
tab_colmuns varchar2(200);
begin
tab_colmun:=col||','||col2||','||col3||','||col4;
stm:='create table '||table_nam|| '('||tab_colmuns||')';
return(stm);
end;
2- نفذ الوحدة البرمجية التالية :

begin
execute immediate create_table('emp',
														 'ename varchar2(10)',
														' sal		 number(10)',
														 'comm	number(10)',
														 'dept	   number(10)');
end;

جرب و خبرني ....................... تحياتي

#8 King Oracle

King Oracle

    مشرف قسم المشاريع

  • فريق الإشراف
  • 2,043 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 24 August 2007 - 12:42 PM

اخي الغالي sky information يا اخي اريد ان اعرف من اين تاتي بهذا الابداع ......
انا للوهلة الاولى اعتقد انك اتيت بالمطلوب
على كل حال راح اجرب الكود وان شاء الله راح اخبرك ... :rolleyes: :rolleyes:

اتمنى المشاركة معنا في مشروع السوبر ماركت المشترك

تسلم يا غالي ..... وفقك الله الى الخير والمحبة .......

[سبحان الله وبحمده ... سبحان الله العظيم]


م.علاء الدين الجبالي
Oracle APPS HCM Techno Functional Consultant


مدونتي الخاصة ... ( للتواصل معكم )
http://aljabali2010.blogspot.com/

التواصل عبر السكايبي

araboug.org
or
aladdin_aljabali

للتواصل عبر الايميل ( الماسنجر )

aladdin2011@live.com

موبايل 1: 00966540873048 ( حاليا في السعودية)
موبايل 2: 00962798522832


اللهم لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم


#9 sky information

sky information

    عضو نشط

  • الأعضــاء
  • 337 مشاركة

تاريخ المشاركة 24 August 2007 - 01:05 PM

الأخ الجبالي

تمنى المشاركة معنا في مشروع السوبر ماركت المشترك


انا حاليا منذ فترة أمر في ظروف فإذا فرجت بأذن الله سوف أكون من المشاركين

#10 King Oracle

King Oracle

    مشرف قسم المشاريع

  • فريق الإشراف
  • 2,043 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 25 August 2007 - 12:39 AM

ان شاء الله ظروفك محلولة اخي العزيز sky information والى الامام وفقك الله ورعاك

[سبحان الله وبحمده ... سبحان الله العظيم]


م.علاء الدين الجبالي
Oracle APPS HCM Techno Functional Consultant


مدونتي الخاصة ... ( للتواصل معكم )
http://aljabali2010.blogspot.com/

التواصل عبر السكايبي

araboug.org
or
aladdin_aljabali

للتواصل عبر الايميل ( الماسنجر )

aladdin2011@live.com

موبايل 1: 00966540873048 ( حاليا في السعودية)
موبايل 2: 00962798522832


اللهم لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم


#11 King Oracle

King Oracle

    مشرف قسم المشاريع

  • فريق الإشراف
  • 2,043 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 25 August 2007 - 01:31 PM

اخي العزيز sky information فعلا الفنكشن كما اريد بالضبط , قمت بانشائه بنجاح
ولكن عند عملية تنفيذه اعترض واخبرني بأنها جملة SQL غير صالحة
:

begin
execute immediate create_table2007('emp', 'ename varchar2(10)',
' sal number(10)',
'comm number(10)',
'dept number(10)');
end;

--------------------------------------------------------------------
begin
*
يوجد خطأ عند السطر 1:
ORA-00900: SQL غير صالحة جملة
ORA-06512: line 2 عند

[سبحان الله وبحمده ... سبحان الله العظيم]


م.علاء الدين الجبالي
Oracle APPS HCM Techno Functional Consultant


مدونتي الخاصة ... ( للتواصل معكم )
http://aljabali2010.blogspot.com/

التواصل عبر السكايبي

araboug.org
or
aladdin_aljabali

للتواصل عبر الايميل ( الماسنجر )

aladdin2011@live.com

موبايل 1: 00966540873048 ( حاليا في السعودية)
موبايل 2: 00962798522832


اللهم لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم


#12 sky information

sky information

    عضو نشط

  • الأعضــاء
  • 337 مشاركة

تاريخ المشاركة 25 August 2007 - 01:56 PM

الأخ الجبالي أنا راجعت الفنكشن السابقة و لا كن فيها بعض الأخطاء و انا أعتذر عن هذه الأخطاء
الأن بعدد التصحيح جرب و عطني النتيجة .... أعتذر من جدي
د

ملفات مرفقة



#13 King Oracle

King Oracle

    مشرف قسم المشاريع

  • فريق الإشراف
  • 2,043 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 25 August 2007 - 02:39 PM

اخي العزيز sky information لا داعي بتاتا للاعتذار , انا نفذت الفنكشن ولاحظت عدم وجود
الفواصل في البراميتر وهذا لا مشكلة فيه

المشكلة لدي الان في تنفيذ هذا الفنكشن ... دائما يعترض على تنفيذه شاهد المرفقات

ملفات مرفقة

  • ملف مرفق  error.JPG   86.5كيلو   33 عدد مرات التحميل

[سبحان الله وبحمده ... سبحان الله العظيم]


م.علاء الدين الجبالي
Oracle APPS HCM Techno Functional Consultant


مدونتي الخاصة ... ( للتواصل معكم )
http://aljabali2010.blogspot.com/

التواصل عبر السكايبي

araboug.org
or
aladdin_aljabali

للتواصل عبر الايميل ( الماسنجر )

aladdin2011@live.com

موبايل 1: 00966540873048 ( حاليا في السعودية)
موبايل 2: 00962798522832


اللهم لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم


#14 sky information

sky information

    عضو نشط

  • الأعضــاء
  • 337 مشاركة

تاريخ المشاركة 25 August 2007 - 02:56 PM

الخطأ واضح من خلال الصورةعندك لأن أسم الجدول(emp ) موجود حاليا أتوقع انك استعملت
هذا المثال بواسطة المستخدم scott

لتفادي الخطأ فقط غير أسم الجدول و إن شاء الله كل شيء بيضبط معاك :

begin
execute immediate create_table2007('ahmed_2007', 'ename varchar2(10)',
' sal number(10)',
'comm number(10)',
'dept number(10)');
end;


#15 King Oracle

King Oracle

    مشرف قسم المشاريع

  • فريق الإشراف
  • 2,043 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 26 August 2007 - 12:10 AM

اخي العزيز sky information اشكرك من كل قلبي على متابعة الموضوع ,
فعلا انا استخدم scott وكلامك منطقي جدا انه في حالة تغيير اسم الجدول يجب ان يتم تنفيذ
الفنكشن كون ان الجدول emp موجود اصلا لدى scott .

صدق انها راحت من بالي .....هه هه هه ( اعتقد بوجود مشكلة كبيرة .............

على كل حال الامور تمام ولله الحمد تم تنفيذ الفنكشن بنجاح

بارك الله بك وبأمثالك ووفقك للخير ...........

[سبحان الله وبحمده ... سبحان الله العظيم]


م.علاء الدين الجبالي
Oracle APPS HCM Techno Functional Consultant


مدونتي الخاصة ... ( للتواصل معكم )
http://aljabali2010.blogspot.com/

التواصل عبر السكايبي

araboug.org
or
aladdin_aljabali

للتواصل عبر الايميل ( الماسنجر )

aladdin2011@live.com

موبايل 1: 00966540873048 ( حاليا في السعودية)
موبايل 2: 00962798522832


اللهم لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم