SQL * PLUS CREATE TYPE sonrasında neden eğik çizgiye ihtiyaç duyar?


14

Sadece bir tür tanımladım ve TOAD test etti sorun vardı ve hepsi Tamam. Ancak SQL * PLUS altında çalışırken bir hata attı.

Misal:

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

Nedense buraya eğik çizgi eklemem gerekiyor

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

Bana göre eğik çizgi gerektirmeyen bir Tablo Oluştur ifadesine benziyor. Çok kafa karıştırıcı buluyorum. Nasıl çalıştığını biliyorum , ama kimse bu tasarım kararının neden verildiğini açıklayabilir mi?



2
Soru yok Neden cevaplandırılmıyor orada. Bu, sql * plus ekibinin keyfi bir tasarım kararı gibi görünüyor.
bernd_k

Yanıtlar:


15

/SQL * Plus'ta bir PL / SQL bloğuna ihtiyacınız var :

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

PL/SQL procedure successfully completed

Bu, SQL * Plus'ın (ara, sonlandırma içermeyen) ifadenizle bittiğini bilir ;.

SQL türleri PL / SQL kodu içerebilir, bu nedenle SQL * Plus geliştiricileri /CREATE TYPE sonrasında her durumda bir gereksinim duymaya karar verdiler :

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

Not : /Bir prosedürü, paketi veya paket gövdesini tanımladıktan sonra da (aynı nedenden dolayı) ihtiyacınız vardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.