سؤال

نقوم بتقديم مشروع جديد في المنزل بينما في السابق كل ما لدينا من العمل على SQL Server المنتج الجديد يستخدم oracle النهاية الخلفية.

يمكن لأي شخص تقديم المشورة أي أوراق سرير أو مثل أن يعطي SQL Server شخص مثلي المتهدمة ما الاختلافات الرئيسية هي - أود أن تكون قادرة على الحصول على وتشغيلها في أقرب وقت ممكن.

هل كانت مفيدة؟

المحلول

@hamishcmcn

تزعمين بأن " == Null هو ببساطة ليس صحيحا.في العالم العلائقية فارغة فقط ينبغي أن يكون من أي وقت مضى قراءة يعني "أنا لا أعرف".النتيجة الوحيدة التي سوف تحصل عليها من أوراكل (و معظم لائق قواعد البيانات) عند مقارنة قيمة Null 'كاذبة'.

من على قمة رأسي الاختلافات الرئيسية بين SQL Server و Oracle هي:

  • تعلم أن تحب المعاملات ، فهي صديقك - السيارات ارتكاب هو لا.
  • قراءة الاتساق وعدم حجب يقرأ
  • قاعدة بيانات SQL Server == أوراكل المخطط
  • PL/SQL هو الكثير أكثر ميزة الغنية من T-SQL
  • تعلم الفرق بين مثيل قاعدة البيانات في أوراكل
  • هل يمكن أن يكون أكثر من واحد أوراكل المثيل على الملقم
  • لا مدبب كليكي ويزاردز (إلا إذا كنت حقا تريد منهم)

الجميع الرجاء مساعدتي و إضافة المزيد.

نصائح أخرى

الفرق الرئيسي لاحظت في الانتقال من SQL Server Oracle كان ذلك في أوراكل تحتاج إلى استخدام المؤشرات في تحديد البيانات.أيضا, الجداول المؤقتة يتم استخدامها بشكل مختلف.في SQL Server يمكنك إنشاء واحد في الإجراء ومن ثم إسقاط ذلك في النهاية ، ولكن في أوراكل كنت من المفترض أن يكون بالفعل جدول مؤقت تم إنشاؤه قبل الإجراء يتم تنفيذه.

كنت أنظر أنواع البيانات أيضا لأنها مختلفة تماما.

سلسلة سلسلة:
أوراكل:|| أو concat()
Sql Server:+

هذه الروابط يمكن أن تكون مثيرة للاهتمام:
http://www.dba-oracle.com/oracle_news/2005_12_16_sql_syntax_differences.htm
http://www.mssqlcity.com/Articles/Compare/sql_server_vs_oracle.htm (القديم:Ora9 مقابل Sql 2000)

@hamishmcn

عموما هذه فكرة سيئة..الجداول المؤقتة في أوراكل ينبغي أن يكون مجرد إنشاء اليسار (إلا لمرة واحدة/نادرا ما تستخدم).محتويات الجدول المؤقت المحلية إلى كل دورة اقتطاع عند إغلاق الجلسة.هناك نقطة صغيرة في دفع تكلفة إنشاء/إسقاط الجدول المؤقت ، قد يؤدي حتى في اشتباكات إن العمليتين محاولة إنشاء الجدول في نفس الوقت وغير متوقعة يرتكب من أداء DDL.

ما سألت هنا هو موضوع كبير خصوصا أنك لم تكن حقا قال ما كنت تستخدم قاعدة البيانات (على سبيل المثال ، هل ستكون من tsql ضمن -> PL/SQL أو مجرد تغيير الخلفية قاعدة البيانات الخاصة بك تطبيق جافا متصل؟)

إذا كنت جادا حول استخدام قاعدة البيانات الخاصة بك الخيارات potiential ، ثم أقترح عليك أن حفر أعمق قليلا و قراءة شيء من هذا القبيل خبير قاعدة بيانات أوراكل العمارة:9i و 10g تقنيات البرمجة والحلول توم كايت.

احترس من الفرق في طريقة سلسلة فارغة يتم علاجها.
INSERT INTO atable (a_varchar_column) VALUES ('');

هو نفس

INSERT INTO atable (a_varchar_column) VALUES (NULL);

لا sqlserver تجربة, ولكن أنا أفهم أنه يفرق بين اثنين

إذا كنت بحاجة إلى ذلك يمكنك إنشاء و إسقاط الجداول المؤقتة في الإجراءات باستخدام تنفيذ فوري الأوامر.

إلى andy47 ، أنا لم أقصد أنه يمكنك استخدام سلسلة فارغة في المقارنة ، ولكن أوراكل يعامل مثل فارغة إذا كنت تستخدم في إدراج.إعادة قراءة بلدي دخول ، ثم حاول SQL التالية:

CREATE TABLE atable (acol VARCHAR(10));
INsERT INTO atable VALUES( '' );
SELECT * FROM atable WHERE acol IS NULL;

وتجنب "نعم هو, أي أنها ليست" الوضع ، هنا رابط خارجي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top