때때로 “AS”로 작성되고 “IS”키워드로 작성된 Oracle 프로 시저를 봅니다.
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...
대
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...
둘 사이에 차이점이 있습니까?
편집 : 분명히 둘 사이에는 기능적 차이가 없지만 일부 사람들은 SP가 패키지의 일부인 경우 “AS”를 사용하고 그렇지 않은 경우 “IS”를 사용하는 규칙을 따릅니다. 아니면 반대 방향으로. Meh.
답변
무슨 일이야. 코드를 더 쉽게 읽을 수 있도록 제공되는 동의어입니다.
기능 f IS …
보기 만들기 v 선택으로 …
답변
한 가지 사소한 차이 …
패키지 및 프로 시저의 동의어이지만 커서에는 해당되지 않습니다.
이것은 작동합니다 …
cursor test_cursor
is
select * from emp;
…하지만 그렇지 않습니다 :
cursor test_cursor
as
select * from emp;
답변
“IS”및 “AS”는 프로 시저 및 패키지를 작성하는 동안 동의어로 작동하지만 커서, 테이블 또는보기에 대해서는 작동하지 않습니다.
답변
여기에 또 다른 차이점이 있습니다 (어쨌든 10g에서)
느슨한 개체 유형이 주어지면 :
CREATE TYPE someRecordType AS OBJECT
(
SomeCol VARCHAR2(12 BYTE)
);
당신은 만들 수 loose
와이 오브젝트 유형의 테이블 유형 중 하나 AS
또는IS
CREATE OR REPLACE TYPE someTableType
IS {or AS} TABLE OF someRecordType;
그러나 패키지 내에서 이와 동일한 테이블 유형을 생성하는 경우 다음을 사용해야합니다 IS
.
CREATE OR REPLACE PACKAGE SomePackage IS
TYPE packageTableType IS TABLE OF someRecordType;
END SomePackage;
AS
패키지에서를 사용 하면 다음 오류가 발생합니다.
오류 (2,30) : PLS-00103 : 다음 중 하나를 예상 할 때 “TABLE”기호가 발생했습니다. 개체 불투명
답변
TutorialsPoint 에 따르면
독립형 프로 시저를 작성하기 위해 IS 키워드 대신 AS 키워드가 사용됩니다.
이전 답변을 고려하면
나는 추측한다
AS
독립형 (블록, 서브 프로그램, 패키지 외부) 엔티티 용입니다.
과
IS
임베디드 (블록, 서브 프로그램 또는 패키지 내) 엔티티 용입니다.
.
답변
AS의 키워드가 대신 사용된다 IS 만드는 키워드 독립 기능 .
[ 독립 실행 형 저장 함수는 데이터베이스에 저장된 함수 ( 단일 값을 반환하는 하위 프로그램 )입니다. 참고 : CREATE FUNCTION 문을 사용하여 생성하는 독립 실행 형 저장 함수 는 PL / SQL 블록 또는 패키지에서 선언하고 정의하는 함수 와 다릅니다 . ]
자세한 설명 은 이것을 읽으십시오 …