এসকিউএল * প্লাসের তৈরি প্রকারের পরে কেন একটি স্ল্যাশ দরকার?


14

আমার কেবল সমস্যা ছিল যে আমি একটি প্রকারটি সংজ্ঞায়িত করেছি এবং এটি টোডে পরীক্ষা করেছি এবং সব ঠিক আছে। তবে এসকিউএল * প্লাসের অধীনে চলতে এটি একটি ত্রুটি ফেলেছিল।

উদাহরণ:

CREATE OR REPLACE TYPE MyType AS OBJECT (
    Item1 NUMBER,
    Item2 NUMBER
);

কিছু কারণে আমাকে এখানে একটি স্ল্যাশ যুক্ত করতে হবে

CREATE OR REPLACE TYPE MyType AS OBJECT (
    Item1 NUMBER,
    Item2 NUMBER
);
/

আমার কাছে এটি একটি সারণী বিবৃতি তৈরির অনুরূপ দেখাচ্ছে, যার জন্য স্ল্যাশ দরকার নেই। আমি এটি বরং বিভ্রান্ত মনে। আমি জানি এটি কীভাবে কাজ করে তবে এই ডিজাইনের সিদ্ধান্ত কেন নেওয়া হয়েছিল তা কি কেউ ব্যাখ্যা করতে পারেন?


জবাব দিয়েছেন: dba.stackexchange.com/questions/1305/…
জো

2
কেন সেখানে উত্তর দেওয়া হচ্ছে না এমন প্রশ্ন নেই। এটি স্কয়ার * প্লাস টিমের একটি স্বেচ্ছাসেবী নকশার সিদ্ধান্ত বলে মনে হচ্ছে।
bernd_k

একটি দুর্দান্ত উত্তর আছে: stackoverflow.com/a/10207695/1568658
এরিক ওয়াং

উত্তর:


15

/এসকিউএল * প্লাসে আপনার একটি পিএল / এসকিউএল ব্লকের পরে দরকার :

SQL> begin
  2     null;
  3  end;
  4  -- here you need a /
  5  /

PL/SQL procedure successfully completed

এটি তাই এসকিউএল * প্লাস জানেন যে আপনার বিবৃতিটি সম্পন্ন হয়েছে (যার মধ্যে অন্তর্বর্তী অন্তর্ভুক্ত থাকতে পারে ;)।

এসকিউএল প্রকারগুলিতে পিএল / এসকিউএল কোড অন্তর্ভুক্ত থাকতে পারে, সুতরাং এসকিউএল * প্লাস ডেভস সিদ্ধান্ত নিয়েছে যে একটি ক্রাইট টাইপের /পরে আপনার সব ক্ষেত্রেই একটি প্রয়োজন :

SQL> CREATE OR REPLACE TYPE t AS OBJECT (
  2     x NUMBER,
  3     MEMBER PROCEDURE setx(p_x NUMBER)
  4  );
  5  /

Type created

SQL> CREATE OR REPLACE TYPE BODY t AS
  2     MEMBER PROCEDURE setx (p_x NUMBER) IS
  3     BEGIN
  4        x := p_x;
  5     END;
  6  END;
  7  /

Type body created

দ্রষ্টব্য : আপনি /কোনও পদ্ধতি, প্যাকেজ বা প্যাকেজ বডি (একই কারণে) সংজ্ঞায়িত করার পরে আপনারও প্রয়োজন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.