Sự khác biệt giữa “AS” và “IS” trong một thủ tục được lưu trữ của Oracle là gì?


95

Tôi thấy các thủ tục Oracle đôi khi được viết bằng "AS" và đôi khi với từ khóa "IS".

CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...

so với

CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...

Có bất kỳ sự khác biệt giữa hai?


Chỉnh sửa: Rõ ràng, không có sự khác biệt về chức năng giữa cả hai, nhưng một số người tuân theo quy ước sử dụng "AS" khi SP là một phần của gói và "IS" khi nó không phải. Hoặc đường vòng khác. Meh.


1
Không phải thứ 2 luôn chỉ đơn giản là trỏ đến một thủ tục khác thực sự triển khai chức năng?
Joel Coehoorn 23/10/08

1
Trong thử nghiệm của tôi, cả hai dường như hoạt động với cùng một cơ thể. Dunno về việc chỉ đến một proc khác.
Ishmaeel 23/10/08

Câu trả lời:


66

Không có gì cả. Chúng là những từ đồng nghĩa được cung cấp để làm cho mã của bạn dễ đọc hơn:

CHỨC NĂNG f LÀ ...

TẠO CHẾ ĐỘ XEM v NHƯ CHỌN ...


54

Một sự khác biệt nhỏ ...

Chúng là từ đồng nghĩa với các gói và thủ tục, nhưng không phải cho con trỏ:

Những công việc này...

cursor test_cursor
is
select * from emp;

... nhưng điều này không:

cursor test_cursor
as
select * from emp;

4
Câu trả lời của Dileep Krishnamurthy hoàn thành điều này
Imad

21

"IS" và "AS" hoạt động như một từ đồng nghĩa trong khi tạo các thủ tục và gói nhưng không dùng cho con trỏ, bảng hoặc dạng xem.


11

Đây là một sự khác biệt khác (ở mức 10g, bất kỳ)

Cho một kiểu đối tượng rời:

CREATE TYPE someRecordType AS OBJECT
(
   SomeCol VARCHAR2(12 BYTE)
);

Bạn có thể tạo một looseloại Bảng của loại đối tượng này bằng AShoặcIS

CREATE OR REPLACE TYPE someTableType
        IS {or AS} TABLE OF someRecordType;

Tuy nhiên, nếu bạn tạo cùng một loại bảng này trong một gói, bạn phải sử dụng IS:

CREATE OR REPLACE PACKAGE SomePackage IS
    TYPE packageTableType IS TABLE OF someRecordType;
END SomePackage;

Việc sử dụng AStrong gói dẫn đến lỗi sau:

Lỗi (2,30): PLS-00103: Gặp phải biểu tượng "TABLE" khi mong đợi một trong những điều sau: vật thể không rõ ràng


1

Theo TutorialsPoint

Từ khóa AS được sử dụng thay cho từ khóa IS để tạo một quy trình độc lập.

và xem xét các câu trả lời trước đó,

tôi đoán

AS dành cho các thực thể độc lập (bên ngoài bất kỳ khối, chương trình con, gói nào)

IS dành cho các thực thể được nhúng (trong một khối, chương trình con hoặc gói).

.


1

Các AS từ khóa được sử dụng thay cho IS từ khóa để tạo ra một chức năng độc lập .

[Hàm được lưu trữ độc lập là một hàm ( chương trình con trả về một giá trị duy nhất ) được lưu trữ trong cơ sở dữ liệu. Lưu ý: Hàm được lưu trữ độc lập mà bạn tạo bằng câu lệnh CREATE FUNCTION khác với hàm mà bạn khai báo và xác định trong khối hoặc gói PL / SQL. ]

Để biết thêm giải thích, hãy đọc phần này ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.