program story

Oracle 저장 프로 시저에서 "AS"와 "IS"의 차이점은 무엇입니까?

inputbox 2020. 9. 12. 09:59
반응형

Oracle 저장 프로 시저에서 "AS"와 "IS"의 차이점은 무엇입니까?


때때로 "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중 하나를 사용하여이 개체 유형 테이블 유형을 만들 수 있습니다.ASIS

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 임베디드 (블록, 서브 프로그램 또는 패키지 내) 엔티티 용입니다.

.


The AS keyword is used instead of the IS keyword for creating a standalone function.

[ A standalone stored function is a function (a subprogram that returns a single value) that is stored in the database. Note: A standalone stored function that you create with the CREATE FUNCTION statement is different from a function that you declare and define in a PL/SQL block or package. ]

For more explanation, read this...

참고URL : https://stackoverflow.com/questions/230348/what-is-the-difference-between-as-and-is-in-an-oracle-stored-procedure

반응형