الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية ادخال التاريخ في sql وحذف عمود من جدول

مغلق
بدأه fsl في 19 أبريل 2001 · 9 رد · 5,749 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السؤال بسيط وهو كيفية ادخال التاريخ في sql بالنسق الذي أريد

فالطريقة الوحيدة التي أعرفها هي الأمر التالي

insert into table_1 values('10/oct/1999');

ولكن كيف ادخل التاريخ مثلاً كالتالي dd/mm/yyyy أي يتم كتابة الشهر كرقم

السؤال الثاني لم أستطع أن أحذف عمود من جدول فقد بحثت في quick reference عن الخيارات المتاحة في الأمر alter ولم أجد شيئاًوجربت ما ذكره الأخ كمال ولم أفلح

أتمنى منكم المساعدة وأن تكون في sql وليس في ديفلوبر فأنا مبتدئ في oracle

#2

لقد تمت مناقشة هذين الموضوعين سابقاً.

فبفرض أن الحقل هو حقل تاريخ، فيمكنك كتابته كالآتي:

INSERT INTO table_name

SELECT TO_DATE('12/31/2001','MM/DD/YYYY') FROM DUAL

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

أما عن موضوع حذف العمود، فيمكنك عمل ذلك في أوراكل 8 آى فما فوق فقط ، ولك أن ترجع الوصلة اتالية

http://arabteam.nicmatic.com/vb/showthread...p3?threadid=717

[عدلت بواسطة السني ت:19-04-2001 س: 12:44 AM]

#3

أنا شاكر لك على الرد ولكن بالنسبة لحذف عمود لم أتمكن من ذلك وقد أشرت في السؤال الى ماذكره الأخ كمال وهو كتابة الأمر التالي :

alter table table_name drop col_name cascade constraint;

ولكن لا يتنفذ هذا الأمر عندي

مع العلم أن لدي oracle8i

شكراً لك مرة أخرى

وأرجو ممن يعرف الحل أن يسعفنا به

#4

ممكن تكيب رقم الخطأ والرسالة؟

#5

بالنسبة لحذف عمود من جدول لم أجربه ولكن أتوقع أن تكون المشكلة مشكلة أمن معلومات ، كما هو الحال مع تغيير طول الحقل

جرب حذف عمود لم تسجل به بيانات ، وانظر هل تنجح ، فإذا نجحت فالسبب إذن هو وجود بيانات في العمود الذي تريد حذفه

#6

رسالة الخطأ هي :

ORA-00905: missing keyword

وتكون النجمة(التي تحدد عادة مكان الخطأ في الأمر) عند اسم العمود

عندما بحثت عن رقم الرسالة في ملف المساعدة أعطاني اوراكل هذه المعلومات القيمة (!!):

cause : A required Keyword is missing
Action : correct the syntax

أما بالنسبة لوجود بيانات فلا توجد أي بيانات في الجدول فماهي المشكلة ؟؟

#7

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

alter table table_name drop col_name cascade constraint;

بحيث

table_name = a valid table for the user in your database

filed = a valid field in your specified table

ولا علاقة لوجود بيانات من عدمه في هذه الحالة

نصيحة:

======

قبل عمل اي تغيير مثل هذا، تأكد من عمل نسخة إحتياطية للملف

[عدلت بواسطة السني ت:20-04-2001 س: 10:17 AM]

#8

عفواً أخي ولكن هل هناك فرق بين oracle8 و oracle8i فأنا لدي الاولى واذا كان هناك فرق فماهي طريقة الحذف في الاصدارات التي قبل 8i

وأتمنى ألا أكون قد أثقلت عليك

#9

نعم هناك فرق، وموضوع الحديث احد الفروقات. فعملية حذف لحقل لم تكن متوفرة قبل الإصدار 8i. لذا إذا راجعت الوصلة المذكورة آنفاً ستجد الطريقة وهي:

1. عمل ملف آخر مشابه ويحتوى على التعديل المطلوب.

2. تحويل بيانات الملف الأول في الملف الثاني

3. حذف الملف الأول

4. عمل نسخة من الملف الثاني تحمل نفس إسم الملف الأول

5. حذف الملف الثاني

#10

السلام عليكم ورحمة الله وبركاته

الاخ الفاضل السنى

الاخ الفاضل omar_s

الاخ الفاضل fsl

بالنسبه للكود الخاص بحذف عمود من جدول ما فان الكود صحيح ولكن

سقط سهو وضع اسم العمود المراد حذفه بين قوسين وذلك كالتالى :

;SQL>alter table table_name drop (col_name) cascade constraint

مثال توضيحي :

;SQL>alter table emp drop (sal) cascade constraint

وللتاكيد على كلام الاخوه الأفاضل فان هذا الكود لا ينفذ الا فى قاعدة بيانات Oracle 8i أوأعلى.

أما بالنسبه لطريقة إدخال تاريخ بصيغه غير المعرفه فى قاعدة البيانات مثل DD/MM/YYYY

فان المثال التالى سوف يوضح لكم الطريقة :

SQL>insert into emp

;(values(1111,'OMAR','MANAGER',7902,TO_DATE('31/12/2002','DD/MM/YYYY'),5000,NULL,10

وشكرا لكم

عمر محمد باعقيل

المدينه المنوره

هذا الموضوع مغلق.

مواضيع مشابهة