CREATE TYPE 후에 SQL * PLUS에 슬래시가 필요한 이유는 무엇입니까?


14

방금 Type을 정의하고 TOAD에서 테스트했는데 문제가 없었습니다. 그러나 SQL * PLUS에서 실행하면 오류가 발생했습니다.

예:

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

어떤 이유로 나는 여기에 슬래시를 추가해야합니다

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

나에게 슬래시가 필요없는 Create Table 문과 비슷하게 보입니다. 다소 혼란 스럽습니다. 어떻게 작동 하는지 알지만 이 디자인 결정이 내려진 이유를 누구나 설명 할 수 있습니까?



2
질문 이 없습니다. 대답이 없습니다. sql * plus 팀의 임의의 디자인 결정 인 것 같습니다.
bernd_k

좋은 답변이 있습니다 : stackoverflow.com/a/10207695/1568658
Eric Wang

답변:


15

/SQL * Plus에서 PL / SQL 블록 이후가 필요합니다 .

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

PL/SQL procedure successfully completed

이것은 SQL * Plus가 당신이 당신의 문장으로 끝났음을 알고 있습니다 (이것은 중간이 아닌 종료를 포함 할 수 있습니다 ;).

SQL 유형에 PL / SQL 코드가 포함될 수 있으므로 SQL * Plus 개발자는 /CREATE TYPE 후에 모든 경우에 필요하다고 결정했습니다 .

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.